Как нанять веб-программиста

Как руководителю веб-студии, мне часто приходится нанимать программистов. Как нанять веб-программиста

Как не-программисту, бывает сложно оценить профессиональные качества кандидата, а надо. При этом, надо нанять такого специалиста, который выполнит поставленную задачу и не доведет до нервного срыва менеджера. Ниже, собственный опыт, что можно делать, чтобы нанять ответственного программиста, который выполнит свою работу в срок и по ТЗ.

Основная идея найма — нет плохих или хороших кандидатов, есть подходящие на эту вакансию и не подходящие. Чтобы правильно выбрать именно того, кто вам нужен, начнем с целей.

В первую очередь нужно сформировать список требований к программисту: кого мы ищем и для каких целей. Список требований обычно состоит из 2 частей: личностные характеристики (умение работать в команде, ответственность и т.д.) и профессиональные навыки (языки программирования, опыт, образование и т.д.).

Как правило, лучше сначала отобрать кандидатов с подходящими профессиональными навыками, а среди них уже определить тех, кто подходит по личностным характеристикам. С оценкой профессиональных качеств обычно сложностей не возникает, можно посмотреть портфолио ил попросить выполнить тестовое задание. Одно дело — если это разовый проект, другое — человек в офис. Но и в том и в другом случае, я делю задачи на 2 большие категории

1. Творческие задачи.
2. Формальные задачи.

При этом под «творческой» понимается задача, для которой нет готового решения (раньше никто не делал, или сочетание типовых задач, но как делать, тоже непонятно). Так было при разработке сервиса по конструированию мужских костюмов для американского заказчика. Пользователь выбирал в течении 22 шагов элементы мужского костюма — ткань, размеры, и в конце мог заказать пошив выбранного костюма. Как такое делать в Гугле на написано. Для выполнения такой задачи ищем  программиста с типом личности «возможности».

«Формальная» задача подразумевает выполнение однотипных действий по заранее определенному шаблону. Например — верстка. Или разработка сайта по крайне подробному техническому заданию, в котором прописан алгоритм действий на каждой странице. Если нужно поставить обычную фотогалерею на сайт, это задача к программисту с типом «процедуры».

Для выполнения творческих и формальных задач понадобятся программисты с разными личностными характеристиками.

Как определить личностные характеристики программиста?

Для оценки личностных качеств я использую методику Светланы Ивановой, описанной в книге «Мотивация на 100%».
Если кратко, то используется шкала оценки мета-программ «процедуры-возможности» и «процесс-результат».

процедуры_возможности

Это свойство личности называется метаповедение и не меняется в течении всей жизни. Каждый человек в большей степени склонен либо к использованию процедур, либо к поиску возможностей.

Программист с метаповедением «процедуры» работает по строго определенному алгоритму. Он любит и охотно использует инструкции, руководства. Выданные такому программисты стандарты программирования или верстки будут соблюдаться без дополнительного контроля. Недостаток такого типа — неспособность ориентироваться в нестандартных ситуациях. Люди процедур не переносят изменение технического задания в середине проекта. От них часто можно услышать «Выясните у заказчика ВСЕ, что нужно, я потом переделывать не буду!».

Программисты с метаповедением «возможности» не приемлют рамок, их вдохновляет неизвестное, им интересно находить такое решение задачи, которое до них еще никому не удавалось сделать.  Человек возможностей способен найти решение задачи в условиях ограниченных ресурсов, информации. Им постоянно необходимы новые сложные задачи, повторение одного и того же ввергает их в уныние. От менеджеров, которые работают с таким типом программистов, часто можно услышать: «Он уже вторую неделю не может такую-то фигню доделать, там работы на 20 минут всего!»
Программист такого типа не любит соблюдать регламенты и следовать общим правилам, он скорее найдет способ сделать то же самое по своему. Плюсом таких людей является способность быстро и легко переключаться с задачи на задачу. Изменение входящий условий проекта воспринимается как новая возможность.

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

 Как определить тип «процедуры/возможности» у кандидата?
Это довольно просто выявить в разговоре с кандидатом. Попросите программиста описать, каким образом он делал свой последний проект. Человек процедур обычно описывает порядок действий: первое, второе, третье. Человек возможностей скорее припомнит необычное решение, которое он нашел в ходе работы над проектом.
Можно еще спросить что нравится и что не нравится в своей работе. В ответе явно будет или упоминание понятных процедур или примеры нестандартного решения задач.

Естественно, не надо забывать, что тот или иной тип редко встречаются в чистом виде. Скорее это сочетание обоих типов, можно грубо прикинуть  соотношение 30% процедур/70% возможностей и наоборот. Бывает еще 50/50 — этих программистов часто называют any-кейщики.

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

Тестирование профессиональных знаний можно сделать при помощи теста на знание php http://www.quizful.net/test/php_5_mid

Итак, подведем итоги. Если нужно выполнять повторяющиеся задачи одинаковой сложности и со стабильным качеством, следует искать программиста с типом «процедуры». Если задача из серии «иди туда, не знаю куда, принеси то, не знаю что», с этим справится программист с типом «возможности».

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

Скорость работы этих двух типов так же отличается. Программист-возможностей может работать как очень быстро, так и медленно, если мотивации недостаточно. Он же может работать сутками напролет.

Для программиста процедур, круглосуточная работа в принципе невозможна. Условия работы и вознаграждение должны быть четко определены и редко меняться. В награду вы получите стабильную скорость работы и предсказуемый результат. Программисты процедур всегда сдают работу в назначенные сроки.

Еще один совет: при формировании команды разработчиков для работы над большим проектом эффективно собирать и программистов «возможности» и программистов с типом «процедуры». Тип «возможности» придумает способ как это сделать, а тип «процедуры» быстро доделает мелочевку и правки.

Успешных вам проектов!

2 комментария

  1. >>Бывает еще 50/50 — этих программистов часто называют any-кейщики.
    Эникейщик — это даже не системный администратор. Это мальчик на побегушках у пользователей, который должен нажимать за пользователей любую клавишу (Any Key). Произошло это от фразы «Press any key to continue» выданной программой и вызова системного администратора по этому поводу.

    1. спасибо, интересный факт.

Обсуждение закрыто.