Руководство командой разработчиков программного обеспечения

         

Набор сотрудников


Девиз компании SouthWest Airlines: «Мы нанимаем жизненные позиции». Необходимо помнить, что мотивация разработчиков ПО начинается с приема на работу. В старой экономике людей нанимали за умения и обучали нужному отношению к делу. В новой экономике необходимо поступать с точностью до наоборот: нанимать за нужное отношение к делу и учить необходимым умениям. Не следует более нанимать людей, которые знают и умеют, а потом заниматься промыванием их мозгов и пытаться мотивировать их на эффективную работу. Нанимаем людей с правильным отношением к жизни, ищем тех, кто хочет работать, а затем, если необходимо, помогаем им получить требуемые технические навыки. Настоящий лидер предлагает не работу, а возможности.

В идеале, конечно, следует стараться привлечь и знающих, и умеющих, и подходящих по своим жизненным позициям. Но если приходится выбирать, то правильнее выбрать жизненную позицию. Рональд Рейган говорил: «Окружите себя самыми лучшими людьми, которых вы только сможете найти, передайте им в руки власть и не мешайте им». Этот подход не столько близок мне по характеру, сколько проверен опытом.

В настоящее время нет каких-либо достоверных формальных методик определения квалификации программиста. Мой опыт показывает достаточно значимую корреляцию хороших способностей к программированию и сверхвысокого значения IQ . Высокий балл диплома и престижное математическое или техническое образование свидетельствует об общих способностях кандидата успешно осваивать новый материал. Диплом о престижном высшем образовании немаловажен для хорошего программиста, хотя и не является необходимым условием. Я знаю программиста, который, не имея высшего образование, успешно руководит командой разработчиков в представительстве известной иностранной фирмы.

Отдельно остановлюсь на тестах и практических заданиях по специальности. Относительно их необходимости у меня имеются большие сомнения. Как правило, технические тесты ориентированы на проверку узкоспециальных знаний: структур данных, алгоритмов, конкретных стандартов и API, и т.д.
Правильный/неправильный ответ на вопрос: «i=1; i = i++ + ++i; чему равно i?», — мало о чем свидетельствует. Попытки давать кандидатам олимпиадные задачки по программированию, или задачки из книжки «Математические головоломки», у меня, как правило, ассоциируются со стремлением, возможно, не очень успешных вчерашних студентов к самоутверждению или с желанием продемонстрировать кандидату его несостоятельность, чтобы затем снизить предложение по зарплате. Я применял тесты по специальности — несколько десятков простых вопросов на 15–20 минут по базовым понятиям стека технологий J2EE таких, которые просто невозможно не знать, если ты имеешь практический опыт в данной области. Результаты этого теста использовались только для того, чтобы выяснить, в какой области кандидат более уверенно ориентируется и адекватнее позиционировать его среди имеющихся направлений разработки.

Технические тесты могут продемонстрировать уровень IQ и эффективность левого полушария, возможности которого подтверждены, как правило, дипломом о высшем образовании и всем успешным опытом предыдущей работы. Часто при обсуждении данного тезиса меня спрашивали: «А вдруг кандидат наврал о прошлом опыте?» На мой взгляд, одного двух вопросов с просьбой уточнить некоторые конкретные технические детали достаточно, чтобы рассеять или подтвердить подобные сомнения. И еще, если вы не в состоянии распознать то, что человек выдает себя не за того, кто он есть на самом деле, возможно, вам еще рано руководить людьми.

Креативность и эффективность человека в командной разработке зависят в первую очередь от уровня его эмоционального интеллекта, EQ и деятельности правого полушария: целеустремленность, воля, эмпатия, интуиция, способность к эвристическим суждениям. Я, к сожалению, пока не встретил достоверных тестов правого полушария. Поэтому слушаем, слушаем и еще раз слушаем. А главное слышим! При отборе кандидатов только очное интервью «глаза в глаза» и личный опыт работы с людьми позволят вам создать эффективную программистскую команду.


О практике проведения интервью могу рекомендовать работы [, , ], в которых изложены подходы, во многом совпадающие с моим опытом.

При проведении технического интервью следует придерживаться следующих основополагающих принципов:



  • Помните, вы ведете переговоры с потенциальным партнером по бизнесу, а не пытаетесь «купить на рынке товар подешевле».
  • Каждый человек уникален и ему присуща своя ценность. Если вам нечего предложить кандидату, то это не значит, что он «лузер».
  • Имейте в виду, что несправедливо обиженный кандидат — пятно на бренде компании. Сегодня это значит не меньше, чем несправедливо обиженный клиент.
  • Люди не рождаются победителями, они ими становятся. Кандидата стоит нанимать только в случае, если вы сумеете предоставить ему эту возможность.
  • «Программист — это не профессия, это образ мышления», (с) программисты.


Проводить интервью, желательно, вдвоем с человеком, который будет непосредственно руководить или работать с кандидатом. Это позволит быть более объективным, посмотреть на кандидата с «разных сторон» и лучше его понять.

Ваша задача при проведении интервью — получить ответ на 3 вопроса:


  1. Знает дело?
  2. Умеет его делать?
  3. Хочет его делать?


Обычно при проведении интервью я стараюсь придерживаться следующего сценария:


  1. Вступление.
  2. «Что Вы сделали?»
  3. «Что вы хотите делать?»
  4. «Какие у Вас есть вопросы?»
  5. «Я могу предложить Вам ...»



Содержание раздела