Топ-7 способов быстрой проверки компетенций IT-специалистов до собеседования +3


Найм IT-специалистов – это непростая задача. Во-первых, сейчас на рынке наблюдается дефицит опытных кадров, они это понимают. Кандидаты часто не готовы тратить много времени на «отборочные мероприятия» работодателя, если их предварительно не заинтересовать. Ранее популярная практика «дадим тестовое на 8+ часов» сейчас уже не работает. Для первичной оценки знаний и отсева кандидатов до проведения полномасштабного технического собеседования приходится использовать другие, более быстрые способы. Во-вторых, для качественной оценки знаний и навыков необходимо самому обладать такими навыками или привлекать коллегу, обладающего такими навыками. Эти затруднения можно решить при помощи способов, о которых я расскажу в этой статье. Я сам применяю эти способы и составил для себя своего рода рейтинг.

Итак, мой топ-7 способов быстрой проверки компетенций IT-специалистов до собеседования:

7. Изучить портфолио, примеры кода, открытые репозитории кандидата.

6. Короткое тестовое задание на время (выполняется за 30-60 минут).

5. Короткое экспресс-собеседование про навыки по телефону/скайпу (как опросник, только онлайн и голосом).

4. Live-Doing (Coding) – решаем простую задачку в реальном времени с расшаренным экраном.

3. Опросники с открытыми вопросами про опыт.

2. Короткие тесты с вариантами ответов, ограниченные по времени прохождения.

1. Многоэтапное тестовое задание, первый этап выполняется до собеседования.

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

image

В предыдущей статье про воронку найма habr.com/ru/post/447826 я проводил опрос среди читателей про способы быстрой проверки навыков IT-специалистов. В этой статье я рассказываю о способах, которые нравятся лично мне, почему они мне нравятся и как я их применяю. Я начинаю с первого места и закончу седьмым.

1. Многоэтапное тестовое задание, первый этап выполняется до собеседования


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

В каких случаях я использую этот способ


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

Как реализовать


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

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

Это задание (одно и то же) раздается нескольким кандидатам. Ожидается, что ответы от кандидатов поступят на следующий день. Далее, через 2-3 дня, когда все ответы получены, анализируем что же нам прислали кандидаты и какие уточняющие вопросы они задавали, прежде чем приступить к выполнению задания. На основе этой информации можно пригласить на следующий этап любое нужное вам количество кандидатов.

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

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

Преимущества


Мы можем увидеть эрудицию кандидата, применимость его знаний к нашему проекту, развитость коммуникативных навыков. Также нам легко сравнить кандидатов между собой. Обычно я отбрасываю тех кандидатов, кто дал слишком оптимистичные и слишком пессимистичные оценки времени выполнения задачи. Разумеется, у меня есть собственная оценка времени. Малая оценка кандидата говорит скорее всего о том, что человек не вник в задачу должным образом и выполнил данное тестовое поверхностно. Слишком большая оценка времени обычно говорит о том, что кандидат плохо представляет себе предметную область, не имеет опыта в нужных мне темах. Я не отбрасываю кандидатов сразу на основе их оценки, а прошу мотивировать свою оценку, если оценка не была уже в достаточной степени мотивирована.

Кому-то этот способ может показаться сложным и затратным. Моя оценка трудоемкости применения этого способа такая – на описание тестового задания нужно 30-60 минут и затем на проверку ответа каждого кандидата – 15-20 минут. У кандидатов выполнение такого тестового задания обычно занимает не более 1-2 часов, при этом они погружаются с суть задач, которые им придется в дальнейшем решать. Уже на этом этапе кандидату может стать неинтересно, и он отказывается от общения с вами, потратив немного времени.

Недостатки


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

2. Короткие тесты с вариантами ответов, ограниченные по времени прохождения


Я нечасто применяю этот способ, хотя он мне очень нравится, и я считаю его одним из лучших способов быстрой проверки компетенций. Я напишу про этот способ отдельную статью в ближайшее время. Такие тесты широко применяется в разных областях знаний. Самый яркий и типичный пример – теоретический экзамен для получения водительского удостоверения. В России этот экзамен содержит 20 вопросов, на которые нужно ответить за 20 минут. Допускается одна ошибка. При двух ошибках необходимо безошибочно ответить на 10 дополнительных вопросов. Этот способ прекрасно автоматизируется.

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

Как реализовать


Я работал с самостоятельными реализациями подобных тестов работодателями при выполнении заказов в качестве рекрутера-аутсорсера. Реализовать такой тест вполне возможно. Например, с помощью Google Forms. Основная проблема – в составлении вопросов и вариантов ответов. Обычно фантазии работодателей хватает на 10 вопросов. К сожалению, в Google Forms невозможно реализовать ротацию вопросов из пула и ограничения по времени. Если вы знаете хороший онлайн-инструмент для создания своих тестов, где можно ограничить время прохождения теста и организовать выбор разных вопросов для разных кандидатов, то напишите, пожалуйста, про такие сервисы в комментариях.

В каких случаях я использую этот способ


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

Преимущества


При хорошей реализации этот способ автономен. Кандидат может выбрать удобное ему время на прохождение теста и вам не нужно тратить много своего времени.

Недостатки


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

3. Опросники с открытыми вопросами про опыт


Это набор открытых вопросов, предлагающих кандидату порассуждать на основе своего опыта. При этом мы не предлагаем варианты ответов. Открытые вопросы – это такие, на которые нельзя ответить просто и односложно. Например, вспомните самую трудную задачу, которую вы решали с помощью фреймворка такого-то? В чем заключалась основная сложность для вас? На такие вопросы нельзя ответить односложно. Точнее, единственный простой ответ – у меня нет такого опыта, не работал с этим инструментом.

Как реализовать


Легко реализуется с помощью Google Forms. Главное – придумать вопросы. Я использую несколько стандартных конструкций.
Расскажите про последний проект, который вы делали с помощью ХХХ, что было для вас самым трудным в этом проекте?

Какие главные достоинства технологии ХХХ для вас, приведите примеры из своего опыта?
Выбрав технологию ХХХ, какие еще альтернативы вы рассматривали и почему выбрали именно ХХХ?

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

В каких случаях я использую этот способ


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

Преимущества


Несложно реализовать с помощью Google Forms. Причем новый опрос можно сделать на основе предыдущего, заменив названия технологий и инструментов на другие. Например, опрос про опыт с React будет мало чем отличаться от опроса про опыт с Angular.

Составление такого опросника занимает 15-20 минут, а на ответы кандидаты обычно тратят 15-30 минут. Затраты времени небольшие, но мы получаем информацию про личный опыт кандидата, от которой можем оттолкнуться и сделать каждое собеседование с кандидатами уникальным и более интересным. Обычно продолжительность собеседования после такого опросника меньше, так как не приходится задавать простые однотипные вопросы.

Недостатки


Чтобы отличить собственный ответ кандидата от «нагугленного» нужно разбираться в тематике. Но это быстро приходит с опытом. После просмотра 10-20 ответов вы научитесь отличать собственные оригинальные ответы кандидатов от найденных в сети.

4. Live-Doing (Coding) – решаем простую задачку в реальном времени с расшаренным экраном


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

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

Как реализовать


Этот способ легко реализуется с помощью Skype или другой аналогичной системы видео-связи, позволяющей демонстрировать экран. Задачи можно придумать самостоятельно или воспользоваться площадками типа Code Wars, разнообразными готовыми тестами.

В каких случаях я использую этот способ


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

Преимущества


Несмотря на стресс и волнение кандидата, сразу и хорошо виден общий уровень навыков кандидата. Также становятся хорошо заметны коммуникативные навыки кандидата – как он рассуждает, как объясняет и мотивирует свое решение. Если нужно обсудить кандидата с коллегами, нетрудно сделать видеозапись со своего экрана и затем показать собеседование другим людям.

Недостатки


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

5. Короткое экспресс-собеседование про навыки по телефону/скайпу


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

Как реализовать


Договариваемся с кандидатом о беседе и звоним. Задаем вопросы, фиксируем ответы.

В каких случаях я использую этот способ


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

Преимущества


Без разговора голосом на профессиональные темы обычно невозможно определить, насколько хорошо кандидат умеет излагать свои мысли.

Недостатки


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

6. Короткое тестовое задание на время (выполняется за 30-60 минут)


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

Как реализовать


Договариваемся с кандидатом о времени выполнения тестового задания. В назначенное время отправляем кандидату условия задачи и выясняем понял ли он что от него требуется. Засекаем время, затраченное кандидатом на решение задачи. Анализируем решение и время.

В каких случаях я использую этот способ


В моей практике этот метод применялся для проверки компетенций специалистов технической поддержки, SQL-программистов и тестировщиков (QA). Задачи были типа «найди проблемные места и придумай как устранить проблему», «оптимизируй SQL-запрос, чтобы работало в 3 раза быстрее» и т.п. Разумеется, вы можете придумать свои задачи. Для начинающих разработчиков такой метод тоже можно применять.

Преимущества


Мы тратим свое время только на составление и проверку задания. Кандидат может выбрать удобное ему время выполнения задания.

Недостатки


Основной недостаток – в сети могут быть размещены решения ваших задач или подобных, поэтому нужно иметь некоторое количество вариантов и периодически придумывать новые задания. Если нужно протестировать скорость реакции и кругозор, лично я выбираю тесты на время (способ №2).

7. Изучить портфолио, примеры кода, открытые репозитории кандидата


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

Как реализовать


Изучаем резюме кандидатов. Если находим ссылки на портфолио, то изучаем. Если указаний на портфолио в резюме нет, то запрашиваем портфолио у кандидата.

В каких случаях я использую этот способ


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

Преимущества


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

Недостатки


Применять этот способ можно далеко не для всех IT-профессий. Для оценки портфолио нужно самому обладать развитыми навыками. Если вы – не специалист, то вы не сможете качественно оценить портфолио.

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




К сожалению, не доступен сервер mySQL