Как нанимать разработчиков: инструкция по применению
Компании хотят закрыть свободные вакансии разработчиков как можно быстрее, однако найм «первого попавшегося» — это не выход. На поиск хорошего кандидата нужно закладывать месяцы. Алексей Панов, бывший руководитель службы в поиске Яндекса и Engineering Manager в международной bigtech компании рассказывает, как нужно проводить собеседования и испытательные сроки, чтобы привлекать идеальных кандидатов и не разочароваться в выборе.
Ошибки, которые часто допускают компании при найме разработчиков
За свою карьеру я прошел десятки и провел сотни интервью. В процессе этого опыта неоднократно сталкивался с ошибками, которые часто допускают компании при найме разработчиков. Поделюсь с вами некоторыми из них, чтобы помочь работодателям избежать этих ошибок в будущем.
Нереалистичные задания
Специфика собеседования разработчика состоит в том, что оно проходит в некотором смысле проще, чем у продуктовых или проектных менеджеров. Оценивать собеседования легче, так как секции более показательные. Основные ошибки, с которыми я сталкивался при найме разработчиков на своем опыте, происходят из-за того, что собеседующий может давать тестовые задания, никак не связанные с будущей работой кандидата. Например, он может предложить решить слишком «сложные» олимпиадные задачи и головоломки. Единственное, что такие задачи могут показать, это умение кандидата применить конкретный подход к их решению, так как они не отражают его способности работать в команде или организации.
- При этом прикладные задачи на собеседовании для программистов также могут быть неподходящими, поскольку они могут быть ограничены в своей специфичности и не отражать навыки кандидата в решении нестандартных задач. Идеальным для собеседования будет средний вариант между головоломкой и прикладной задачей, например написание некоторого варианта бинарного поиска. На собеседованиях подобное задание продемонстрирует уровень образованности кандидата и его способность решать нетривиальные задачи.
Недостаточное или отсутствующее внимание к soft skills кандидата
В российских компаниях на собеседованиях часто не выделяется отдельное время для оценки soft skills разработчиков. В таком случае важно уделить им внимание на других этапах собеседования: важно понять, что думает кандидат и какие цели он перед собой ставит.
Также нужно определить, совпадает ли рабочий подход кандидата с компанией: он может быть хорошим программистом, но не разделять корпоративные ценности компании. Если у вас появляются сомнения в разработчике, попытайтесь получить больше информации о нём: договоритесь о дополнительной секции или поговорите с предыдущим работодателем кандидата.
Игнорируется результат испытательного срока
Даже если кандидат во время испытательного срока показал плохие результаты, компания всё равно решается дать ему шанс и продолжает сотрудничество. Обычно это приводит к более сложному разрыву отношений через полгода или год работы. Для того чтобы получить максимальное количество информации о способностях кандидата, предоставьте ему на испытательный срок задание, которое соответствует дальнейшим обязанностям.
Например, в обязанности сотрудника может входить частая коммуникация с другими командами или менеджерами. Однако в рамках испытательного срока новичку даётся что-то изолированное, например, исправить программную ошибку. Затем на реальной задаче выясняется, что он не умеет общаться с людьми. Чтобы избежать подобной ситуации, важно ставить на испытательный срок задачи, которые максимально приближены к реальным и требуют разнообразных навыков.
Компания не рассказывает о своих проблемах
На собеседованиях иногда наблюдается тенденция компаний скрывать или искажать информацию о задачах и проблемах, существующих внутри команды. Однако для достижения успешных результатов требуется проявлять достаточную честность и прозрачность.
Рассказывайте про проблемы в компании: например, «мы работаем с legacy-кодами», «у нас сейчас проблемы с тестированием и devOps». Честность на собеседовании помогает нанять кандидата, а не отпугивает его. Ведь проблемы звучат более реалистично, чем идеальная картинка, которой нет в реальной жизни.
Этапы собеседования при приеме разработчика на работу
При поиске разработчиков компании используют различные методы, чтобы найти и привлечь лучших специалистов в этой области. Это включает публикацию вакансий на специализированных ресурсах, установление партнерства с университетами и техническими школами, а также сотрудничество с рекрутинговыми агентствами.
Однако поскольку это требует значительного времени и усилий, многие компании решают построить систему собеседования кандидатов, чтобы более эффективно оценить и выбрать подходящих специалистов. Найм разработчиков компании обычно разделяют на несколько этапов:
1. Скрининг: на этом этапе обычно проводятся секции с общими вопросами и задачами, которые помогают оценить базовые знания и навыки кандидата, чтобы быстро отсечь нерелевантных претендентов. Интервью на этом этапе необходимо проводить техническому специалисту, а не hr-менеджеру, так как он сможет оценить уровень знаний и навыков кандидата в конкретной области.
2. Техническое интервью: на этом этапе кандидату предлагается выполнить практическое задание или решить задачу, чтобы проверить его практические навыки. При этом, как правило, лучше иметь несколько секций с написанием кода и технической архитектурой, которые проводят разные собеседующие.
3. Behaviour секция или ее аналог: на этом этапе собеседующий может узнать про опыт участия кандидата в предыдущих проектах, включая выполненные KPI и стейкхолдеров, его ожидания от работы в компании, интересы. Можно попросить показать конкретные примеры из его опыта, например как он выходил из конфликтных ситуаций. Главная цель этой секции - понять, будет ли кандидату комфортно работать с командой, а команде с кандидатом.
4. Финальное интервью: в этой секции уже кандидат «собеседует» нанимающего менеджера. Собеседующий детально рассказывает про проект, команду, обязанности и отвечает на любые вопросы кандидата. Его главная задача - дополнительно «продать» вакансию кандидату.
После успешного прохождения всех четырех этапов собеседования разработчик получает job-offer, в котором будут прописаны его условия работы на ближайшие годы.
Вместо вывода: советы, как правильно выстроить процесс найма разработчика
Совет 1. Постройте комфортную среду для кандидатов
Собеседование не должно тратить много ресурсов кандидата:
-
Никаких тестовых заданий «на неделю»: в первую очередь они отсекут опытных специалистов, которые знают цену своему времени.
-
Возможность проходить интервью онлайн: если это возможно, встретьтесь с кандидатом в конференции. Хотя при желании кандидата его можно пригласить в офис компании.
-
Секций не должно быть много: обычно не больше 5-6. Количество и состав секций должны быть оговорены с кандидатом заранее.
Совет 2. Проводите секцию с кодом
На интервью с кандидатом обязательно делайте секцию с кодом. Часто для кандидатов на senior-позиции её опускают: «он должен архитектуру делать, а не код писать». Однако секция с кодом показывает навыки специалиста: задачи среднего уровня на LeetCode он должен уметь решать.
Также помните, что задача с кодом может считаться решенной, только если результат полностью рабочий с учётом всех возможных частных случаев. Не надо принимать решения вида «логика решения верная, немного доделать и будет работать».
Совет 3. Структурируйте собеседование
Если у вас в компании есть «пул собеседующих» — они должны быть синхронизированы — единый набор задач, критерии оценки, структура интервью. Особенно это важно для архитектурных секций, потому что каждый собеседующий может проводить и оценивать их по-разному.
Собеседование должно быть один на один, однако для объективности найма можно использовать технику кросс-интервью: интервьюер составляет отчёт по ходу собеседования, а его коллеги оставляют в нём свои заметки.
Совет 4. Доводите каждую секцию до конца
Если после 10 минут стало понятно, что у кандидата не получается выполнить задание, всё равно попытайтесь помочь ему с решением в отведенное время. Даже у кандидата, который не подходит на позицию, должно остаться (насколько это возможно) хорошее впечатление от прохождения собеседования: он может рассказать своим друзьям, как качественно и вежливо собеседуют в вашей компании, либо улучшит свои навыки и сам вернется к вам через год.