Как найти хорошего программиста: 10 советов для HR

  • 22 oct. 2020, 14:43
  • 619

1. Определите потребности

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

  • Для проекта действительно нужен senior-разработчик? Возможно, вы добьетесь лучших результатов с любопытным, трудолюбивым и замотивированным middle-разработчиком.
  • Нужен ли разработчик прямо сейчас или позже?
  • Будет ли он заниматься конкретным проектом или сразу несколькими? Если он будет закреплен за одним проектом, что его ждет после завершения?
  • Какие навыки необходимы для проекта?
  • Какие еще навыки/знания было бы неплохо иметь разработчику?
  • Какова специфика проекта (сроки и т.д.)?
  • Уверены ли вы, что ваши ожидания реалистичны?
  • Кто из существующего коллектива будет участвовать в оценке нового разработчика (например, собеседовании, квалификационном экзамене и т.д.)?

2. Используйте контакты ваших сотрудников для поиска новых

Помимо обычных ресурсов (сайтов вакансий, LinkedIn и т.д.), потенциальных кандидатов можно найти в сообществе разработчиков, например, StackOverflow, или среди знакомых ваших нынешних сотрудников.

Сеть контактов — очень эффективный инструмент для поиска, и по мере развития компании она разрастается.

Для сотрудников можно организовать реферальную программу, но для этого необходимо предоставить им нужные инструменты. Например, устроить тренинг и рассказать, как правильно представить ваш бренд.

3. Просматривайте резюме, но не придавайте им слишком большого значения

Ищите в резюме соответствие вашим требованиям, а не описанию вакансии.

Обращайте внимание на детали: описанный в резюме опыт должен отражать реальные навыки кандидата.

Иногда сфера применения упомянутых инструментов слишком широка, и важно понять, какой реальный опыт есть у соискателя. Например, JavaScript. Многие разработчики знают JQuery, но не все понимают сам язык. Тем не менее они без колебаний укажут JavaScript в качестве своего основного инструмента.

Далеко не все резюме отражают навыки и личность. Скорее всего, в некоторых будут плохие описания, неточности, преувеличения, пропуски, а иногда и откровенная ложь. Если резюме не показывает огромное несоответствие между тем, что вы ищете, и тем, что может предложить кандидат, лучше пообщаться с ним лично.

4. Никогда не отказывайтесь от личных собеседований

Одна из задач при найме сотрудника — быстро определить, подходит ли он вашей компании и подходит ли она ему. Лучший способ оценить это — личное собеседование. Вот какие возможности оно дает:

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

5. Проверяйте информацию из резюме соискателей

Некоторые пункты резюме стоит проверить.

  • Сертификаты. Запросите подтверждение сертификатов владения языками программирования и инструментами, указанными в резюме. Убедитесь, что их выдало настоящее, зарегистрированное образовательное учреждение.
  • Прошлые проекты и рекомендации. Сравните инструменты и языки программирования, указанные в резюме, с проектами, над которыми они работали.
  • Слишком расплывчатые описания. Возможно, кандидат указал неполную информацию, потому что что-то скрывает.

6. Тестируйте навыки кандидатов в реальных условиях

Ничто не показывает способности разработчика, чем проверка в реальной ситуации. Однако ее надо правильно организовать и оценить.

Подготовка

Не используйте простые тесты с готовыми вариантами ответа. Вместо этого подготвьте экзамен, на котором потребуется объяснить концепцию, технологию или проблему.

Оценка результатов

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

Практический подход к экзамену

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

  • Кандидат должен выбрать технологию, которую хочет протестировать.
  • Экзамен начинается с нескольких логических вопросов, как в тесте IQ. Они не должны быть связаны с выбранной технологией.
  • Затем следуют несколько вопросов с вариантами ответа, посвященных выбранному языку и связанным с ним инструментам (например, если выбран Angular, тест также касается Javascript).
  • После этого есть несколько вопросов с развернутыми ответами, где нужно объяснить конкретную ситуацию. Это одно из самых важных заданий, потому что оно показывает способность заявителя объяснить и решить проблему.
  • Последнее задание посвящено программированию. Соискателю предлагается следовать инструкциям и внести изменения в небольшое приложение. Изменения тестируются автоматически, а затем код проверяется вручную.

7. Пригласите сотрудников участвовать в собеседованиях

В идеале собеседование должны проводить senior- и middle-разработчики, которые, вероятно, и будут постоянно взаимодействовать с кандидатом. Очень важно убедиться, что команда сработается с новым специалистом.

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

8. Организуйте встречу с CEO или учредителем

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

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

9. Будьте полезным для каждого кандидата

Даже если соискатель не получит работу, то расскажет о своем опыте знакомым.

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

10. Давайте второй шанс

  • Бывает, что талантливые специалисты плохо показывают себя на собеседовании, потому что нервничают или недостаточно подготовились. Но это не значит, что они не станут отличным дополнением к вашему коллективу. Что произойдет, если кандидат не справится с тестом или собеседованием? Предоставляйте подробную обратную связь и поощряйте кандидатов возвращаться к вам после того, как они подготовятся получше.
  • Будьте открыты к тем, кто когда-то работал с вами. Люди решают оставить работу по ряду причин. Но когда они захотят вернуться в компанию, будьте готовы принять их. Если в прошлом отношения складывались удачно, нет никаких причин, почему бы не продолжить их. Не разрывайте отношения с бывшими сотрудниками. Удержание талантов так же важно, как поиск и наем.

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