Успех проектов во многом зависит от тех, кто над ними работает. Основатель венчурной компании Y Combinator Пол Грэм считает, что плохие разработчики могут погубить любой проект. Он рассказывает, как не ошибиться при выборе сотрудников.
1. Определите потребности
Прежде, чем нанимать специалиста, решите, кто вам именно нужен в плане навыков, доступности, рабочих смен, временных ограничений, динамики команды, квалификации и т.д. Для этого полезно задать себе следующие вопросы.
- Для проекта действительно нужен senior-разработчик? Возможно, вы добьетесь лучших результатов с любопытным, трудолюбивым и замотивированным middle-разработчиком.
- Нужен ли разработчик прямо сейчас или позже?
- Будет ли он заниматься конкретным проектом или сразу несколькими? Если он будет закреплен за одним проектом, что его ждет после завершения?
- Какие навыки необходимы для проекта?
- Какие еще навыки/знания было бы неплохо иметь разработчику?
- Какова специфика проекта (сроки и т.д.)?
- Уверены ли вы, что ваши ожидания реалистичны?
- Кто из существующего коллектива будет участвовать в оценке нового разработчика (например, собеседовании, квалификационном экзамене и т.д.)?
2. Используйте контакты ваших сотрудников для поиска новых
Помимо обычных ресурсов (сайтов вакансий, LinkedIn и т.д.), потенциальных кандидатов можно найти в сообществе разработчиков, например, StackOverflow, или среди знакомых ваших нынешних сотрудников.
Сеть контактов — очень эффективный инструмент для поиска, и по мере развития компании она разрастается.
Для сотрудников можно организовать реферальную программу, но для этого необходимо предоставить им нужные инструменты. Например, устроить тренинг и рассказать, как правильно представить ваш бренд.
3. Просматривайте резюме, но не придавайте им слишком большого значения
Ищите в резюме соответствие вашим требованиям, а не описанию вакансии.
Обращайте внимание на детали: описанный в резюме опыт должен отражать реальные навыки кандидата.
Иногда сфера применения упомянутых инструментов слишком широка, и важно понять, какой реальный опыт есть у соискателя. Например, JavaScript. Многие разработчики знают JQuery, но не все понимают сам язык. Тем не менее они без колебаний укажут JavaScript в качестве своего основного инструмента.
Далеко не все резюме отражают навыки и личность. Скорее всего, в некоторых будут плохие описания, неточности, преувеличения, пропуски, а иногда и откровенная ложь. Если резюме не показывает огромное несоответствие между тем, что вы ищете, и тем, что может предложить кандидат, лучше пообщаться с ним лично.
4. Никогда не отказывайтесь от личных собеседований
Одна из задач при найме сотрудника — быстро определить, подходит ли он вашей компании и подходит ли она ему. Лучший способ оценить это — личное собеседование. Вот какие возможности оно дает:
- узнать побольше об опыте соискателя и уточнить сведения, недостаточно подробно описанные в резюме;
- оценить подход кандидата и его соответствие культуре компании;
- увидеть, насколько ясно кандидат может выражать свои мысли — это способствует командной работе и указывает на уровень понимания кандидата;
- выяснить, насколько хорошо разработчик понимает, в чем будет заключаться его работа (возможно, он много лет работал внештатно, и ему будет сложно приспособиться к вашей компании или офисной работе);
- оценить, насколько кандидату интересна компания, в которую он обращается. Искал ли он информацию о потенциальном работодателе? Есть ли у него вопросы о вашей компании?.
5. Проверяйте информацию из резюме соискателей
Некоторые пункты резюме стоит проверить.
- Сертификаты. Запросите подтверждение сертификатов владения языками программирования и инструментами, указанными в резюме. Убедитесь, что их выдало настоящее, зарегистрированное образовательное учреждение.
- Прошлые проекты и рекомендации. Сравните инструменты и языки программирования, указанные в резюме, с проектами, над которыми они работали.
- Слишком расплывчатые описания. Возможно, кандидат указал неполную информацию, потому что что-то скрывает.
6. Тестируйте навыки кандидатов в реальных условиях
Ничто не показывает способности разработчика, чем проверка в реальной ситуации. Однако ее надо правильно организовать и оценить.
Подготовка
Не используйте простые тесты с готовыми вариантами ответа. Вместо этого подготвьте экзамен, на котором потребуется объяснить концепцию, технологию или проблему.
Оценка результатов
В первую очередь уделите внимание мыслительному процессу, а не результату. Интерпретируйте тест как потенциал развития, а не фактические возможности кандидата. Пусть он объяснит, почему у него что-то не получилось, и оцените его ход мысли.
Практический подход к экзамену
Вот образец реального тестирования, которое устраивают для соискателей на должность разработчика.
- Кандидат должен выбрать технологию, которую хочет протестировать.
- Экзамен начинается с нескольких логических вопросов, как в тесте IQ. Они не должны быть связаны с выбранной технологией.
- Затем следуют несколько вопросов с вариантами ответа, посвященных выбранному языку и связанным с ним инструментам (например, если выбран Angular, тест также касается Javascript).
- После этого есть несколько вопросов с развернутыми ответами, где нужно объяснить конкретную ситуацию. Это одно из самых важных заданий, потому что оно показывает способность заявителя объяснить и решить проблему.
- Последнее задание посвящено программированию. Соискателю предлагается следовать инструкциям и внести изменения в небольшое приложение. Изменения тестируются автоматически, а затем код проверяется вручную.
7. Пригласите сотрудников участвовать в собеседованиях
В идеале собеседование должны проводить senior- и middle-разработчики, которые, вероятно, и будут постоянно взаимодействовать с кандидатом. Очень важно убедиться, что команда сработается с новым специалистом.
Действующие сотрудники точнее всего представляют корпоративную культуру и лучше всего могут определить, подходит ли кандидат. При этом он получит полное представление о том, что от него ожидают, а также о проекте, в котором он будет участвовать.
8. Организуйте встречу с CEO или учредителем
Пусть каждый кандидат, одобренный сотрудниками, пройдет заключительное собеседование с соучредителем, CEO или одним из руководителей, прежде чем подписать трудовой договор.
Это показывает кандидату, насколько он ценен, что в новой компании он становится частью семьи, а также насколько важно для основателей знать, кто устраивается в компанию.
9. Будьте полезным для каждого кандидата
Даже если соискатель не получит работу, то расскажет о своем опыте знакомым.
Большинство компаний делают все возможное, чтобы создать отличную рабочую среду, хорошие льготы и достойную оплату. Но создавать ценность для разработчиков, которые просто пришли на собеседование, — это признак того, что компания действительно заботится о людях. Поэтому будьте открыты для разговора и сообщите кандидату, почему он не прошел, покажите ему результаты теста и дайте профессиональный совет. Возможно, через несколько месяцев он повторно свяжется с вами.
10. Давайте второй шанс
- Бывает, что талантливые специалисты плохо показывают себя на собеседовании, потому что нервничают или недостаточно подготовились. Но это не значит, что они не станут отличным дополнением к вашему коллективу. Что произойдет, если кандидат не справится с тестом или собеседованием? Предоставляйте подробную обратную связь и поощряйте кандидатов возвращаться к вам после того, как они подготовятся получше.
- Будьте открыты к тем, кто когда-то работал с вами. Люди решают оставить работу по ряду причин. Но когда они захотят вернуться в компанию, будьте готовы принять их. Если в прошлом отношения складывались удачно, нет никаких причин, почему бы не продолжить их. Не разрывайте отношения с бывшими сотрудниками. Удержание талантов так же важно, как поиск и наем.
Найти первоклассного программиста очень сложно. Но помните, что люди — это самый важный ресурс. Вот почему важно оценивать ваши возможности и использовать время для анализа откликов, неважно, хотите ли вы закрыть одну позицию или набрать целую команду.
Фото на обложке: Pressmaster / Shutterstock
Нашли опечатку? Выделите текст и нажмите Ctrl + Enter
Материалы по теме
-
Пройти курс «Генерируем идеи для бизнеса: курс-практикум»
- 1 Портрет идеального программиста: кого ищут IT-компании
- 2 Азартный кодинг: кто такой спортивный программист и зачем он нужен вашему бизнесу
- 3 «Стоит дороже, а знает меньше»: 6 мифов о спортивных программистах
- 4 В чем разница между junior-, middle- и senior-разработчиками