|
||||
|
Подбор персонала Создание команды, способной внедрить систему, – это искусство, а не ремесло. Можно дать определенные рекомендации, можно с большой долей уверенности сказать, когда команда работать не будет, но я не могу обещать, что, выполнив все рекомендации, вы получите работоспособный коллектив. Даже призыв «Делай как я» и подробное описание способов, которыми пользовался я, чтобы заставить эффективно работать своих и чужих сотрудников, здесь не помогают. Прежде всего потому, что этот коллектив начинается с вас и является вашим продолжением. То, что вы должны подобрать, – это не бригада программистов, хотя в каком-то виде она в вашу команду, по всей видимости, войдет, но не с нее начинается и не ею заканчивается. Группа, занятая разработкой и внедрением, состоит из трех частей: собственно специалисты отдела автоматизации, прикомандированные сотрудники других подразделений вашей фирмы и сотрудники, ведущие ваш проект со стороны разработчика (когда есть внешний разработчик). Пользоваться прикомандированными сотрудниками иногда может оказаться удобнее, чем перетаскивать их со скандалом к себе в отдел: умного вам никто не отдаст, а дурак в отделе автоматизации обладает гигантской разрушительной силой. Сейчас любая относительно крупная организация уже имеет какие-то элементы автоматизированного учета (есть хотя бы компьютер, какая-нибудь бухгалтерская программа; если как-то автоматизирован складской учет, то обычно есть и локальная сеть). Персонал, который все это обслуживает, почему-то обычно называют мальчиками или программистами, хотя, как правило, эти люди программируют разве что bat-файлы. Американцы называют таких сотрудников ИТ-person, не отличая тех, кто больше нажимает на кнопки, от тех, кто больше крутит отверткой. В последнее десятилетие и в российских ИТ-кругах для таких людей появилось название «эникейщик». Квалификация этих специалистов слабо связана с зарплатой и варьируется от уровня advanced lamer до вполне серьезного. В более крупных фирмах разделяются функции системного инженера (специалиста по железу и операционным системам), системного (сетевого) администратора, администратора баз данных и, может быть, программиста для доводки и текущих модификаций программного обеспечения. Эти функции в разных сочетаниях распределяются по имеющимся людям. Для создания и внедрения новой автоматизированной системы или ее частей потребуются и новые функции, хотя до определенных пределов их можно возлагать и на тех же сотрудников. Во-первых, вам потребуются квалифицированные постановщики. Первый и главный из них – это вы сами. Однако будь вы хоть семи пядей во лбу, вряд ли вам удастся описать все задачи вплоть до уровня, доступного программисту-кодировщику или внешнему разработчику (во втором случае подробность проработки должна быть еще выше, чем в первом). Кроме того, как я уже говорил, для получения хорошего результата постановщик должен знать предмет лучше сотрудников, работающих в соответствующем направлении, что практически невозможно для одного человека. Я, например, вполне прилично разбираюсь в технологиях склада, магазина и оптовых продаж, то есть свободно владею менеджерским, складским, программистским и русским языками. На этих языках я понимаю их носителей, могу сформулировать свои мысли и, самое главное, думать сам. А вот бухгалтерский язык для меня – иностранный. Я понимаю написанное на нем другими, если напрягусь, и сам могу написать шаблоны проводок для хозяйственной операции, но у меня не могут появиться идеи на этом языке. И я счастлив, что со мной много раз работали люди, мозги которых повернуты на некоторый угол по отношению к моим: понимая и складские, и торговые технологии, и даже что такое алгоритм, они умеют мыслить по-бухгалтерски. Мало их… Я за свою жизнь встретил только трех, и все – женщины: две – великолепные бухгалтеры, одна – исполнительный директор, которая за своих бухгалтеров думает. Знаю я и мужчин, отлично ориентирующихся в бухучете, но они все почему-то занимаются не самим учетом, а его автоматизацией. Впрочем, «за свою жизнь» – это слишком сильно. Просто лет восемь назад я сам в бухучете ничего не понимал, а чтобы осознать величие бухгалтера, надо в его деле хоть что-то смыслить. Теперь я смыслю, но именно что-то. Креатив в этой области мне по-прежнему недоступен. «Нам не нужна отдельная система контроля исполнения поручений, все можно сделать в модуле „Бухгалтерия“ нашей системы: когда поручение дается, датой отчета по поручению делается проводка на штраф ответственному, а если он поручение случайно выполнит, то проводка сторнируется». Без комментариев. Квалифицированные постановщики ныне редкость. Как ни странно, тяжелее всего найти людей, владеющих русским языком, что в результате приводит и к косноязычию на уровне программных кодов.
Бригада программистов обычно бывает нужна, при этом роль главного программиста можете играть и вы, если вам удастся разумно ограничивать себя на этом поприще. Соотношение между численностью своих программистов и программистов разработчика, занимающихся вашими задачами, зависит от наличия, качества и стоимости сопровождения, а также от ваших возможностей и желания сопровождать систему самостоятельно. Зачастую вам было бы и дешевле, и удобнее программировать какие-то куски системы самим, но разработчик отказывается их поддерживать в следующих релизах системы. Два типа программистов и особенно их соединение в одном лице категорически противопоказаны при разработке и сопровождении любых систем – это интерпретаторы и исследователи. Интерпретаторы Они люди по-своему талантливые, хотя часто еще и абсолютно невежественные. Главной их особенностью является бурное воображение, не позволяющее адекватно воспринимать окружающий мир. В голове у таких полная картинка возникает сразу после поступления первых битов информации. Дальше попыток согласовать появившуюся картинку с информацией, продолжающей поступать извне, не происходит. Их заменяет придумывание предметной области и придумывание пользователей системы вместе с их потребностями. Интерпретаторы практически никогда не понимают, но и не уточняют поставленную задачу, поскольку заранее знают, что вам нужно, гораздо лучше вас. Письменная формулировка задания дела не спасает, поскольку они не дочитывают написанного. Следующий диалог отражает суть проблемы и практически не утрирован: – Дима, закрась, пожалуйста, этот рисунок красным. Это срочно. – Я уже сделал. – Дима, а почему все зеленое, я же просил красным? – Но ты же сказал «закрась», а с буквы «з» начинается именно зеленый… Наиболее печальный результат получается при попытке использовать интерпретатора для сопровождения существующий системы. В самых тяжелых случаях его не удается заставить прочесть и понять чужой программный код. Мне пришлось некоторое время просуществовать в одном подразделении с индивидом, считавшим себя крутым программистом и искренне уверенным, что чужой программный код вообще невозможно изучить. Разуверить его у меня не получилось, но получилось уволить. Интерпретаторов более раннего возраста удается убедить посмотреть чужие коды, но эффект от этого не совпадает с ожидаемым: «понимание» функционала, реализованного изучаемым текстом, приходит к ним после прочтения первых трех строк. После этого, если не удается принять специальных мер, код правится и внедряется в программное обеспечение действующей системы. Система сразу начинает плясать краковяк, а на вопрос «Что произошло?» следует ответ: «Оказывается, эта процедура кроме того, что я думал, делает то-то и то-то. Но мне об этом никто не сказал». Исследователи Эти постоянно хотят осваивать что-то новое, что само по себе совсем не плохо. Но, в отличие от адекватных программистов, немедленно применяют изученное при решении текущей задачи. Собственно, выражение «колоть орехи микроскопом» уже отпраздновало свое столетие. Но если раньше от таких действий страдал только микроскоп, а орехи еще можно было съесть, то после аналогичных воздействий программиста еды может не получиться совсем. То есть по эффекту получается уже гораздо ближе к «стрелять из пушки по воробьям». Таким приходит в голову прикрутить к разрабатываемому электронному калькулятору оракловую базу данных для хранения промежуточных результатов вычислений, хотя в основном проекте используется MS SQL-сервер, который был интересен исследователю в прошлый раз, пару месяцев назад. Из достижений исследователей за последние годы больше всего порадовали запись настроек и протоколов прикладной программы в реестр Windows и хранение информации внутри базы данных MS SQL в формате xml. Для эксплуатации некоторых систем (пальцами не показываю) необходима новая разновидность сотрудников: бухгалтерские программисты. В идеале это люди, знающие и понимающие бухучет (зачастую в отличие от бухгалтеров организации) и умеющие записывать алгоритмы на специальном языке, который разработчики почему-то называют параметрической настройкой. Кроме того, потребуется технический персонал для закупки и настройки компьютеров, генерации общесистемного софта, организации локальных сетей и интранета, кодировщики для работы в генераторах отчетов и печатных форм и программирования простейших отчетов и функций и сотрудники для работы в качестве дополнительных операторов и обучения штатного персонала при запуске системы или ее новых функций. Для выполнения всех функций последнего абзаца я обычно набираю «на временную работу» однородный штат ребят со средним техническим образованием или студентов последних курсов – молодых, холостых и относительно дешевых, без комплекса старухи из «Сказки о рыбаке и рыбке». Они последовательно выполняют все задачи проекта, но до следующего проекта добираются немногие: большая часть остается по дороге сисадминами, администраторами баз данных и начальниками службы подготовки данных. Меня это как человека радует, но персонал приходится снова добирать и обучать. Только осторожней с кнопкодавами. Кнопкодавы Этот тип сотрудников мне в прошлом веке практически не встречался. Может быть, просто везло, или это следствие нашего приближения к Западу с помощью всеобщего отупения. Сейчас им несть числа. Поэтому, когда неизвестный мне «системный инженер», получив информацию, что какое-то приложение работает не так, как следует, предлагает мне прежде всего переустановить операционную систему, я начинаю смотреть на него с опаской.[3] Дураки, конечно, и раньше встречались. Они всегда были, есть и будут. И непрофессионалов всегда было сколько угодно: «Сотрудники уносили перфоленты домой, чтобы использовать их в туалете» – это известный в 1970-х писатель-фантаст, который, наверное, сам дуршлаг использовал для тех же целей; «Я напечатал вопрос на пишущей машинке и прочел ответ на перфоленте» – это журналист образца 1976 года. Но сейчас появилось множество людей, работающих в области вычислительной техники и информационных технологий профессионально (в смысле за деньги) и не понимающих в этой области ничего. То есть абсолютно ничего. Как они появляются, приблизительно понятно. Вера в чудеса неистребима, хотя сейчас вряд ли кто-то допускает мысль о существовании гаррипоттерных волшебников с седой бородой и волшебной палочкой. Для многих главным источником чудес стал компьютер, а главным волшебником – человек, который умеет с ним общаться. Желание тоже стать волшебником подсказывает самый доступный способ его осуществления: выучить заклинания. Заклинаний они действительно знают много, гораздо больше меня, и пальцами шевелят с поразительной быстротой. Полное незнание английского помехой не является: заклинаниям положено быть непонятными. То, что сейчас виндоусы в большинстве случаев русифицированы, тоже почти не помогает: они не понимают смысла и по-русски. Главное – в правильной последовательности надавить кнопки. Объяснить, что они делают и, самое главное, зачем, они не могут: для этого нужно хоть немного понимать, как функционирует компьютер, что такое процесс операционной системы и т. д. Заклинания бывают специальные (приворот, вызов демонов… простите, подключение к принтеру или к локальной сети, установка скринсейвера или машущего хвостика вместо курсора мыши) и общие, на все случаи жизни (простое: Ctrl+Alt+Del, крутое: переустановка виндоуса). К общим заклинаниям относятся Заклинание Счастья (установка найденного в Интернете дефрагментатора памяти под операционной системой, которая имеет свой дефрагментатор), и разгон процессора. Компьютер начинает глючить, виснуть. Истинный кнопкодав при этом причинно-следственной связи со своими же действиями не замечает и меняет материнскую плату. Или повторяет заклинание. Попытки выяснить, для каких задач ему не хватило штатной тактовой частоты, для каких целей установлен дефрагментатор, приводят лишь к недоуменному взгляду: вопрос непонятен. Для заклинаний существует общее правило: если заклинание не помогло, то его надо повторить. Я лично наблюдал пять переустановок Windows XP на одном из компьютеров, у которого перед этим был разогнан процессор. Появление новых версий любых программ вызывает у кнопкодава неустранимый зуд от желания ее немедленно установить. Зуд усиливается в тех случаях, когда установка новой версии уничтожит всю информацию, накопленную с помощью старой. Удовлетворение наступает лишь в случае установки новой неотлаженной версии на всех доступных компьютерах. Опять-таки совершенно бесполезно спрашивать, какие дополнительные функции в новой версии почтовой программы были настолько необходимы хотя бы ему, что он мне эту версию установил, загубив мою переписку за два года. В ответ вы получите лишь искреннее непонимание, зачем шефу нужны старые письма… «Когда у человека есть только молоток, весь мир кажется ему гвоздем». Абрахам Маслоу, кажется.[4] Сэмпл-программеры Дальнейшее развитие кнопкодавов. Люди, изучившие какой-то язык программирования, но не умеющие составлять алгоритмы. Что существуют инвалиды, лишенные соответствующей способности, я обнаружил, еще преподавая в институте. Но в те давние времена, даже получив вузовский диплом соответствующего профиля, они старались программ не писать. Теперь пишут, благо языковые средства сейчас алгоритм успешно маскируют. Делается это с помощью образца программы, выполняющей похожие действия (отсюда и название подвида: sample-programmer). В такую готовую программу добавляются заклинания с указанием необходимых полей базы данных или переменных. Если не получилось, то добавляются другие заклинания. Как ни странно, результат иногда достигается и таким способом. Только взглянув на текст, вы неожиданно обнаруживаете, к примеру, что из базы данных информацию получали тремя последовательными запросами, после чего были использованы только результаты второго. Шаловливые Ручки (ШР) В отличие от предыдущих подвидов этот известен мне с молодости. В 70-х такой персонаж выдергивал перфокарту из середины ненадписанной колоды перфокарт полуметровой толщины, «чтобы посмотреть качество работы выходного перфоратора», и зачищал надфилем посеребренные контакты. Со временем действия менялись, и к концу 90-х ШР новой генерации уже форматировал заполненный информацией жесткий диск на компьютере директора, переданном для апгрейда. Парадокс состоит в том, что ШР не является кнопкодавом. Вне состояния умопомрачения он прилично знает свою специальность и в состоянии рассказать и как функционируют компьютер и система, и что нужно сделать для правильного решения поставленной перед ним задачи. Конечно, таких людей специально никто на работу не берет, но со временем ШР заводится почти в каждом отделе соответствующего профиля. Еще быль. Шаловливые Ручки в очередной раз уложил новеловский сервер. Когда сотрудники отдела в мыле возвращаются на свои места, перезапустив сервер, бежать до которого нужно было около полукилометра, и восстановив работоспособность всех крутящихся под ним задач и систем, я в сердцах говорю: – Ну что мне с тобой делать? Остальные сотрудники наперебой начинают предлагать, что с ним нужно сделать. – И ведь это не лечится… Хотя… Есть у Босха такая картина – «Операция на глупости»… После пятиминутной паузы ШР робко спрашивает: – А Босх – это из PowerPoint? HR – звук, издаваемый во снеСовершенно не понимаю, чем термин «подбор персонала» хуже, чем «human resources». Наверное, импортные слова всегда звучат красивше, поэтому люди, которые этим делом занимаются, выбрали для самоназвания именно второе, после чего немедленно раздулись от гордости. Лучшие представители этой профессии действительно в состоянии отобрать резюме кандидатов из доступных баз данных по ключевым словам и после собеседования дать толковую психологическую характеристику интервьюируемого. Но и они обычно не разбираются в ИТ и, если даже понимают, что программисты чем-то отличаются от сисадминов, совершенно не в состоянии определить квалификацию ни тех ни других. Так что это тоже будете делать вы. В одной из компаний я отвечал и за набор операторов, которые круглосуточно вводили информацию по товародвижению в систему. Операторы работали в помещении склада, который, в свою очередь, располагался на территории железнодорожной станции. Каждый раз, объяснив кандидату, как добраться до места, я очень переживал, что моих объяснений недостаточно и бедняга обязательно заблудится. А потом до меня дошло, что если этот бедняга заблудится после моих объяснений, то это не очень страшно, во всяком случае для меня и для фирмы: ведь он точно так же не поймет и моих объяснений его обязанностей, правил и технологии работы и т. д. И очень может быть, что это не вина кандидата, может быть, это я не умею понятно объяснять, но в любом случае толка от нашей совместной работы будет мало. Значит, мне нужен другой оператор. Так умение разыскать офис, а в нем меня стало первым отборочным испытанием. Вторым было заполнение анкеты: если я не мог прочесть, что в ней написано, кандидату отказывали. Я отдавал себе отчет, что таким образом отвергаю гениев. Но если нужны операторы, то гениев набирать не стоит. Для сотрудников более высокого уровня первым тестом является резюме. Если оно составлено с существенными нарушениями существующих традиций, то причин этому могло быть много: – человек не слишком заинтересован в работе и поэтому не выяснил, как составляют резюме (нет достаточной мотивации); – человек выяснял, как составлять резюме, но не смог этого понять (нет способности обучаться); – человек понял, как составлять резюме, но не смог его составить (недостаточные интеллектуальные способности); – человек знал, как составлять резюме, мог его составить, но не стал этого делать (косит под гения). Но в любом из перечисленных случаев кандидат не нужен мне в качестве сотрудника. Основное время собеседования я посвящаю ровно двум вопросам: 1. Расскажите, чем вы занимались на предыдущем месте работы; 2. Расскажите о проекте, который вам больше всего запомнился. Вас не должно смущать, что на предыдущем месте кандидат занимался совсем не тем, чем должен заниматься у вас. Я все больше убеждаюсь, что человек, понимающий, что он делал раньше, и способный об этом рассказать сейчас, имеет больше шансов понять свои нынешние обязанности, даже если у него таких не было. Конечно, из того, что кандидат был хорошим художником, не следует, что он станет у вас хорошим виолончелистом. Но если кандидат говорит, что писал программы для рабочего места менеджера издательства, но не может ответить на вопрос, чем же занимается менеджер издательства, потом добавляет, что разрабатывал сайт, но впадает в ступор от вопроса, про что был сайт, пожелайте ему успехов в поисках работы, но не у вас. И если кандидат на должность администратора информационной системы говорит, что у него были в системе два территориально разделенных склада, между которыми перемещали товар, но не помнит, каким способом достигалось соответствие расходной накладной склада-источника приходной накладной склада-приемника, то про него тоже многое становится ясным. Еще одно общее наблюдение. Если в процессе решения предложенных задач кандидат принимает позу роденовского «Мыслителя», брать его на работу не следует: он не умеет думать, он только изображает процесс мышления. Знаете ли вы, что Роден эту скульптуру в первом варианте поместил в композицию «Врата ада»? И был абсолютно прав: человек автоматически принимает такую позу в те моменты, когда думать уже поздно. Уж какой умник впоследствии убедил Родена, что это «мыслитель», я не знаю. Но если вы случайно встречали в жизни людей задумавшихся, то, наверное, заметили, что они застывают ровно в том положении, в котором их застала мысль: кто с открытым ртом, кто с приподнятой рукой. Глаза при этом зафиксированы на произвольном предмете, желательно неподвижном, но предмета этого не видят. А «приняв позу», думать не получается: вся энергия уходит на поддержание позы. Отбор программистовОтдельную главку хотелось бы посвятить отбору программистов в связи с особой важностью этого процесса. Квалифицированные ИТ-специалисты сейчас вообще в дефиците, а поиски программистов в непрофильную фирму становятся занятием почти безнадежным. При практически одинаковом уровне зарплат работа в компании – разработчике софта или у ИТ-консалтера психологически намного приятнее: гораздо ближе к нетленке и дополнительным знаниям при гораздо меньшей ответственности. Одно дело – прочесть о своей ошибке на экране системы сопровождения проектов, и совсем другое – наблюдать, как весь офис не встает из-за компов до часу ночи, потому что ты поставил конец цикла на строчку ниже, чем нужно, даже если тебе никто ничего по этому поводу не говорит. А бывает, что и говорят, много и цветисто. Один из моих сотрудников, которого удалось переманить у фирмы, поставившей нам информационную систему, через полгода сбежал обратно, хотя мы холили его и лелеяли, да и зарплату были готовы платить в 2,5 раза больше той, на которую он вернулся. Особенно приятно программировать в организациях с круглосуточным режимом работы, когда тебе звонят в четыре утра и сообщают, что в накладных перестала подставляться цена, а их уже нужно печатать, чтобы развезти товар по магазинам. В итоге к такой работе стремятся в основном только желающие быть «самым крутым программером ликероводочного завода», но именно такие не слишком нужны вам. Вам нужны хорошие программисты. Хорошие программисты встречаются редко, поэтому им много что прощается. Но я бы хотел предостеречь молодых читателей от стандартной логической ошибки: хороший программист – это не тот, кто опаздывает на работу и на любую встречу, в какое бы время она ни происходила, не тот, кто не меняет носки и не принимает душ, и не тот, у которого последствия насморка свисают на небритый подбородок. Хороший программист – это тот, кто адекватно понимает задачи и в состоянии их решить с помощью программных средств быстро и без ошибок. Поверьте, среди хороших программистов встречаются и аккуратные, и чистоплотные. Я встречал даже таких, которые свою кофейную кружку моют каждый день. Поэтому, чтобы стать хорошим программистом, не нужно отпускать бороду, переставать мыться и регулярно портить воздух в помещении, а нужно: 1) учиться понимать, что в отличие от языка программирования внешний мир нельзя узнать и описать полностью; 2) учиться понимать задачи, даже когда их формулируют на неформальном языке, даже когда их формулируют не совсем корректно: внешний мир сам не всегда корректен; 3) учиться придумывать и описывать алгоритмы, желательно оптимальные; 4) учиться работать в команде; 5) учиться работать внутри ПО больших эксплуатируемых систем, не напоминая слона в посудной лавке. Отбор программистов для работы всегда напоминает лотерею. Что и как ни проверяй, понять, в состоянии ли работать программист в вашей команде, удастся в лучшем случае через полгода. Зато тех, кто точно не будет в состоянии работать, можно отсеять на стадии собеседования. В резюме программистов я сразу же смотрю раздел специальных знаний. И если в качестве языков программирования перечислены Word, Excel и html, резюме отправляется в корзину незамедлительно. Просьба принести на собеседование несколько страниц исходных текстов своих программ на любом носителе почему-то сразу отсеивает процентов десять кандидатов. Ясно, что у вас нет никакой возможности проверить, написан ли исходник самим кандидатом, но вы можете понять, какой текст программы кандидат считает годным для предъявления новому работодателю, то есть качественным. Кстати, совершенно не обязательно, чтобы кандидат в программисты очаровал вас во время интервью. Программист – не сейл, поэтому может быть и стеснительным, даже слегка аутичным, и свои успехи совершенно не обязан уметь рекламировать. Более того, к тем, кто себя умеет хорошо продать, следует относиться настороженно: совмещение профессий (а особенно, таких как сейл и программист) встречается редко. Конечно, на интервью надо поверять уровень знания кандидатом программных средств, которые он продекларировал как использовавшиеся. Даже если работать придется с другими языками программирования и СУБД. Любой квалифицированный программист хоть какие-то языковые средства должен знать хорошо. Людей, поклоняющихся языку программирования как божеству, на работу стараюсь не брать. Кандидатов, которые начинают петь песни «Си рулит, Паскаль отстой», «Слава Юниксу» и т. п., даже когда их не просят петь вовсе, я отсеиваю. Они обычно не понимают, что язык – всего лишь рабочий инструмент, а не волшебная палочка. Я до сих пор убежден, что человек, который в состоянии формулировать алгоритмы на одном языке программирования, достаточно быстро и без проблем освоит любой язык. Но вот отсутствие алгоритмического мышления не может заменить даже знание всех языков мира.
Конечно, посмотреть, как кандидат решает задачи, которые вы даете, интересно и познавательно. И некоторую информацию вам это даст. Однако не забывайте, что результат любых тестов объективно оценивает только способность испытуемого проходить тесты соответствующего вида. Вам нужен стайер, который должен бегать кроссы по пересеченной местности в составе команды, а вы пытаетесь его оценить по тому, как он бегает спринтерские дистанции в одиночку. ПодрядЧасть работ может быть возложена на внешних подрядчиков. Основным критерием для возможности передачи работ служит одновременное выполнение перечисленных ниже требований: – возможность четко сформулировать задачу; – возможность выполнить эту задачу независимо от остальных задач; – возможность быстро проверить результат и принять работу. Таким образом, вполне годятся для передачи в подряд организация локальной сети, написание отчета по заранее описанной базе данных, но не вставка куска в чужой код. Не забывайте, что оговоренные с подрядчиком сроки должны быть как минимум в два раза меньше тех, которые вам реально необходимы. Впрочем, это не сильно помогает. |
|
||
Главная | Контакты | Нашёл ошибку | Прислать материал | Добавить в избранное |
||||
|