Найм 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-профессий. Для оценки портфолио нужно самому обладать развитыми навыками. Если вы – не специалист, то вы не сможете качественно оценить портфолио.

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

Комментарии (75)


  1. argamidon
    07.05.2019 11:03
    +2

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

    А они должны быть в обязательном порядке, да? Например мой enterprise код не является моей собственностью => никаких открытых репозиториев.
    Или каждый разраб должен уметь бесплатно «работать за идею»?
    А если вас, как собеседующего, попросят показать свой код, вы покажете? Собеседования уже давно идут в две стророны, я бы даже что сказал кандидат собеседует работодателя.

    В 2018 году я проходил цикл собеседований и нигде меня не спрашивали «примеры кода». Совпадение? Не думаю.


    1. RPG18
      07.05.2019 11:21

      Лично я тестовое задание передаю через GitHub, как говориться с паршивой овцы хоть шерсти клок.


    1. igor-sheludko Автор
      07.05.2019 11:23

      Поэтому этот пункт на 7-м месте :) Потому что нечасто у кого есть :) И да — все тестовые, что вы делали — можно туда, если работодатели не будут бурно возражать :)


      1. RPG18
        07.05.2019 11:33

        если работодатели не будут бурно возражать

        Если тестовое задание не оплачивается, то:


        Ничего личного, это просто бизнес. Аль Капоне.


        1. alex-ivanovich
          07.05.2019 16:10

          Бывает, что тестовое выдаётся под NDA


          1. RPG18
            07.05.2019 16:17

            Это где выдаётся под NDA?


            1. GCU
              07.05.2019 17:45
              +3

              Согласно NDA соискатель не может об этом говорить :)


            1. igor-sheludko Автор
              07.05.2019 18:31

              Прямо вот под NDA — не доводилось встречать. Поэтому мне тоже интересно. Конечно же небольшим работодателям не нравится когда их оригинальное тестовое задание гуляет по сети.


              1. Stas911
                07.05.2019 21:20

                Все конторы FAANG


            1. alex-ivanovich
              07.05.2019 22:23

              В конторках, выполняющих заказы всяких там гос-корпораций и минобороны


              1. RPG18
                07.05.2019 23:24

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


          1. VolCh
            07.05.2019 19:35

            Тогда 100% оплаты под минимум 1,5 ожидаемого часового рейта


        1. igor-sheludko Автор
          07.05.2019 18:33

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


    1. artem_se
      07.05.2019 12:01

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


    1. alex-ivanovich
      07.05.2019 16:09

      А что спрашивали? Неужели не было ничего про «покажи как ты пишешь код»?


    1. 0xd34df00d
      07.05.2019 16:11
      +1

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


      Ну и да. Это правда зачастую отменяет всякие тестовые задания и упрощает остальные этапы собеседования.


      1. Lexicon
        07.05.2019 20:06
        +1

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


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


        Хорош ли мой код?
        Определённо он достаточно хорош для задачи.


        Готов ли я дать этот код черт знает кому, чтобы он "оценил, как я мыслю", даже не представляя как мыслит он сам?
        Да я скорее сброшусь с моста.


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


        Ну и в конце-концов, даже не будь nda, часто в проектах код или архитектура ну очень далеки от того идеально вылизанного чудовища, которое можно воплотить в задании.


        1. igor-sheludko Автор
          07.05.2019 21:22

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


        1. VolCh
          08.05.2019 09:46

          Я обычно, когда сдаю тестовое, если уточнение задачи не предполагалось, делаю README (и дублирую его в письме) с перечнем сделанных предположений, допущений и ограничений. Начиная с банального "задача реализована в "лоб", любые значимые изменения требований потребуют большого рефакторинга" или "задача реализована с учётом изменения требований в стороны такие-то"


    1. rjhdby
      08.05.2019 10:11
      +1

      Репа на гитхабе — это, по сути, портфолио разработчика. Лебедев (как бы кто к нему не относился) в свое время дал крайне грамотный совет — если вам нечего показать в своем портфолио, то сами придумайте себе заказчика, задание и требования и сделайте его так, как будто вам платят за это хорошие деньги.


  1. faoriu
    07.05.2019 11:37

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


  1. red_perez
    07.05.2019 11:39

    1. Многоэтапное тестовое задание

    На одном из этих «многих» этапов кандидата уведет конкурент, у которого этапов меньше

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

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


    1. igor-sheludko Автор
      07.05.2019 12:02

      На одном из этих «многих» этапов кандидата уведет конкурент, у которого этапов меньше

      Интересно, вы суть прочитали или только заголовок?


      1. red_perez
        07.05.2019 12:19

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


        1. alex-ivanovich
          07.05.2019 16:16

          Ну так почитать о проекте и потом собеседование. Это же лучше чем собес про ваше видение себя через 5 лет :)


          1. red_perez
            07.05.2019 16:54

            Ну так почитать о проекте и потом собеседование

            На мгновение мне показалось что речь шла о выполнении «Многоэтапного тестового задания». «Почитать» никто не предлагал.


            1. igor-sheludko Автор
              07.05.2019 18:38

              Цитирую

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


              Ознакомиться с задачей и задать вопросы, описать план действий — это выполнение первого этапа. Занимает 20-60 минут, если проект заинтересовал. Программировать не требуется.


              1. red_perez
                07.05.2019 18:50

                К этому этапу вопросов нет, а дальше то что?


                1. igor-sheludko Автор
                  07.05.2019 19:04

                  Опять цитирую

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

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


                  Задача первого этапа — откинуть самых неадекватных кандидатов. Общаться голосом в кандидатами имеет смысл всегда. Вопрос — о чем? В Яндексе первая беседа голосом — с HR про жизнь и планы на будущее. Я же предлагаю в первой беседе голосом уже обсуждать будущий проект и тестовое задание.


                  1. red_perez
                    07.05.2019 19:06

                    Ну не издевайтесь надо мной уже.
                    Следующий этап то какой?


                    1. igor-sheludko Автор
                      07.05.2019 19:27

                      Следующий после какого?
                      1. Знакомитесь с задачей, присылаете план и оценку времени выполнения.
                      2. Созваниваемся и беседуем про проект и ТЗ (30 мин примерно).
                      3. Если вы заинтересованы, вы делаете кусок ТЗ, который вам интересен (или нам интересен) — на 1-3 часа работы.
                      4. Смотрим ваш код и делаем предложение или отказываем.
                      Все.


                      1. red_perez
                        07.05.2019 20:20

                        3. Если вы заинтересованы, вы делаете кусок ТЗ

                        Да, вот это.
                        То есть просто «почитав» проскочить не выйдет?


                        1. igor-sheludko Автор
                          07.05.2019 21:24

                          Проскочить на следующий этап отбора — собеседование. На вакансию откликнулось 10 человек. Задача побеседовать с самыми заинтересованными и подходящими. Даём почитать и смотрим на вопросы и оценку. Беседуем с 3-4. Теперь понятно?


    1. alex-ivanovich
      07.05.2019 16:14

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


  1. vlreshet
    07.05.2019 11:41

    Live Coding… Из-за волнения кандидат может начать тупить.
    О, знакомая ерунда. Завалил так начисто собеседование. 5 лет опыта работы, а в режиме «реши вот такую задачку при мне, код пишем в гугл доке» затупил на… цикле. На банальном, мать его, «for» цикле. И докажи потом что ты не идиот, просто волнуешься) В жизни то никто над душой не стоит, когда код пишешь


    1. igor-sheludko Автор
      07.05.2019 12:03

      Ну в доке — это тупость :) в своей удобной и настроенной среде — нормально


      1. Lexicon
        07.05.2019 21:01

        Тоже отличился однажды тем, что забыл в какую сторону делать "<", не думаю что ide бы помогла.


        Помогло бы выполнение кода и 0.5сек на исправление, но на собеседованиях "у нас так не принято! [утрируем] вас просят сделать не так, как вы будете делать работая, а просто угадать" [/наутрировались]


        1. alex-ivanovich
          07.05.2019 22:26

          Мне кажется, что если не в ide, то там скорее алгоритм обсуждается, а не код, который будет стопроцентно работать.


    1. alex-ivanovich
      07.05.2019 16:18
      +1

      Буквально сегодня тут статья про отбор в яндексе — они просят на бумажке или доске писать при личной встрече. Это же маразм, но народ к ним идёт.


    1. s0x90
      07.05.2019 18:39
      +2

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


      1. igor-sheludko Автор
        07.05.2019 18:41

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


      1. alex-ivanovich
        07.05.2019 22:27

        Не поверите, но у каменщиков именно этот проверяют — покажи как будешь выкладывать тот или иной элемент


      1. vlreshet
        08.05.2019 09:33

        Это даже на работе работает, при чём почти у всех: стоит позвать кого-то мол «посмотри свежим взглядом какая тут у меня херня» — и начинают пальцы промахиваться, какой-нибудь простейший dd($data); вбить не можешь.


  1. suntexnik
    07.05.2019 11:58

    Название статьи не соответствует описанию.
    В статье больше про программиста, а не IT-специалиста. Ведь к ним относятся и сисадмины, и DBA.


    1. igor-sheludko Автор
      07.05.2019 12:04

      Большинство способов можно применить и для админов. Примеры про программистов. Проявите фантазию.


      1. paranoya_prod
        07.05.2019 12:43

        Из всех предложенных вариантов для сисдамина подходят только три: 5,3,2. И то, второй с большой натяжкой.


        1. InChaos
          07.05.2019 14:02

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


          1. alex-ivanovich
            07.05.2019 16:23

            Ну нет же. Тестовые задания вполне возможны. Тесты с вариантами.


            1. InChaos
              08.05.2019 09:36

              А кто их составлять будет? Если работодатель скачает с инета, там будут вопросы на все случаи жизни )) и 100500 вопросов не относящихся ни к фирме ни к предполагаемой работе, если кто на них и ответит, то только такой гуру, которые и так нарасхват. Так они админа никогда не найдут, а отсеивать эти вопросы некому.
              Ну опять же я утрирую, я же не сказал про всех админов, но про многих. Просто сам уже который раз так устраиваюсь. ))


              1. VolCh
                08.05.2019 09:49

                Не задавать фиксированный "проходной балл", а, например, на следующий этап пустить 10 лучших или 10% лучших.


              1. igor-sheludko Автор
                08.05.2019 10:13
                +1

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


        1. alex-ivanovich
          07.05.2019 16:21

          На хабре читал про компанию, которая как раз админов тестирует следующим образом — скачиваешь образ виртуальной машины с поломанными сервисами, ищешь причины проблем и чинишь. Свой прогресс документируешь и сдаёшь отчёт — что и где починил. Чем не тестовое задание?


          1. paranoya_prod
            07.05.2019 16:57

            Хм. А если я через десять минут им скажу, что такую систему проще убить, чем восстанавливать? То есть, зная время развертывания каждого сервиса и время требуемое для их восстановления, можно прийти к выводу, что переустановка быстрее вернёт сервисы в работу, меня возьмут на работу? :)
            PS. Просто прикольно скачивать несколько десятков гигов образа, если это Винда, на своём не всегда быстром домашнем канале в Интернет.


            1. igor-sheludko Автор
              07.05.2019 18:47

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


              1. paranoya_prod
                08.05.2019 10:04

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


                1. igor-sheludko Автор
                  08.05.2019 10:16
                  +1

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


            1. VolCh
              07.05.2019 19:42

              Ну вариант: последний бэкап был 59 минут назад, данные в образе критические для бизнеса.


              1. igor-sheludko Автор
                07.05.2019 21:26
                +1

                Часто бывает так — все годами работает, потом раз — взломали и что-то повредили. Бэкап вернёт вас в систему до взлома, которую опять можно взломать. Задача — исправить систему, устранив уязвимости.


  1. Koyanisqatsi
    07.05.2019 13:08
    +1

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


    1. alex-ivanovich
      07.05.2019 16:24
      -1

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


      1. aknew
        07.05.2019 17:55

        Так убегает-то не сотрудник, а всего лишь человек который подумывал пойти к ним (причем еще большой вопрос кто инициировал контакт) и который вполне может посчитать что ему не интересно тратить столько времени на эту вакансию.


        1. igor-sheludko Автор
          07.05.2019 18:58
          +1

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


          1. aknew
            07.05.2019 19:19

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


            1. igor-sheludko Автор
              07.05.2019 21:29

              Конечно не так как вы описали. Вначале выясняется ваша заинтересованность в вакансии. Потом предлагается ознакомиться с тестовым заданием. Если вы желаете — будет созвон перед тестовым. Или созвон после того как вы познакомились с тестовым и вам что-то непонятно.


    1. igor-sheludko Автор
      07.05.2019 18:49

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


      1. White_Scorpion
        08.05.2019 11:29
        +1

        Первым этапом для кандидата должно быть — не "познакомитсья с задачей", а объяснение того, зачем ему вообще хотя бы пытаться проходить эти этапы.


        1. VolCh
          08.05.2019 12:10

          Ну, видимо, предполагается, что тестовое проходят те, кто или сам откликнулся на публичную вакансию или те, кого рекрутёры уже как-то заинтересовали. Не "холодная продажа".


          1. White_Scorpion
            08.05.2019 16:55

            Если соискатель уже проходил какие-то этапы то вот это "Первый этап — познакомиться с задачей и определить план действий по выполнению задачи" — уж точно НЕ первый этап.


  1. alex-ivanovich
    07.05.2019 16:27
    -1

    Про многоэтапное тестовое задание — мне очень понравилось. Я очень был бы рад, если бы меня так собеседовали — показали задачу из будущего проекта, над которым работать, дали возможность выбрать ту часть, которая интересна.


  1. Stas911
    07.05.2019 21:23

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


  1. Vikati
    08.05.2019 09:06

    Интересная статья. Возьму некоторые способы на заметку!


  1. White_Scorpion
    08.05.2019 10:22
    -1

    Многоэтапное тестовое задание

    Зачем мне выполнять его? Какой профит? Если интересное — ещё может быть возможно, но в свободное время и когда я это решу делать. А если нет — нафиг мне проходить этап за этапом имея потенциальный риск на любом из этапов равновероятно получить "вы нам не подходите"? Ради тех самых "у нас страховка, и бонусы, и плюшки, и бла-бла-бла"? Ребята, хватит из себя строить Google (который, кстати, по словам некоторых — уже не торт), в который все прям бегут и мечтают попасть.
    Когда же до HR дойдёт, что разработчик с опытом — уже давно всем и всё доказал. Посмотри на портфолио разработчика — если он не прыгал по компаниям каждые полгода туда-сюда (потенциальная угроза того, что его увольняли), а достаточно продолжительно работал в 2-3 местах — ОН УЖЕ ПИСАЛ КОД И РЕШАЛ ЗАДАЧИ. Достаточно опроса что он делал и звонка в соответствующие компании, для подтверждения квалификации. Во ВСЕ компании — мало ли он на последнем месте работы поругался с каким нибудь манагером? Вам же не нужно выяснять кто из них адекватный, а кто нет — поэтому чем больше точек обзвонишь — тем объективнее ситуация.


    Тесты

    Серьёзно? Чтобы получить работу я должен не показать знания и навыки, а сдать тест? А если я знаю ответ на тест шире, чем ответ поставленный в тесте? Допустим на вопрос "что такое PDF" лично я вместо ответа "Portable Document Format", если поднапрягусь — могу вспомнить внутреннюю структуру и требования к оформлению смещений ссылок на страницы внутри PDF как минимум по спецификации 1.5. А как это в тесте показать? Короткой скромной подписью — "знаю чуть больше, но нет места куда вписать ответ"?
    На такие тесты очень хочется заявить ответное: А давайте я проверю HR на ошибки — как он нанимает людей? Тест проведу — умеет ли он вообще нанимать? Достоин ли он — нанимать меня? И нет ли рядом какого-нибудь более компетентного HR?


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

    Единственное что более менее разумное, но… "Чтобы отличить собственный ответ кандидата от «нагугленного» нужно разбираться в тематике" — иди ты? Реально? Вот мы и дошли до ситуации, что чтобы нанять разработчика — нужен… другой разработчик. И вся эта катавасия с "опросами, тестами и т.д." это какая-то отсебятина, чтобы… Для чего она? Чтобы показать собственную значимость? Как то сразу становится очевидно, что роль HR на самом деле начинается и заканчивается на "встретить человека и препроводить к компетентному специалисту для профессиональной беседы", а не то, что они себе понапридумывали. Но кушать то — HRам тоже хочется. А за просто "препровождение" — много не заплатят.


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

    Ладно так и быть — это тоже разумная вещь, если бы не одно но: терпеть не могу, когда кто-то смотрит в мой экран из-за спины.


    По моему опыту – примерно 90% разработчиков не возражают. Им приятно, что с первого же собеседования начинается общение про программирование

    Ну так для этого надо в теме — шарить, а много ли найдётся "шарящих в теме программирования HR"? Я вот за всю свою (с 2004 нанимаюсь) карьеру — не встречал шарящих HR. В лучшем случае — слова знакомые слышали. И единственный реальный профессионализм, который HR показывали — скорость препровождения к нужному лицу для беседы.


  1. rjhdby
    08.05.2019 15:08

    Как то сразу становится очевидно, что роль HR на самом деле начинается и заканчивается на "встретить человека и препроводить к компетентному специалисту для профессиональной беседы"

    Вот нет. Роль HR(при личной встрече) как минимум:
    а) Убедиться, что соискатель не буйный псих/тихий говнюк и не пришел собеседоваться с торчащим из засаленных трусов чебуреком. Т.е. определить общую адекватность человека.
    б) Ответить на вопросы по специфике работы в компании. Ну вот те самые фишки про режим работы, премии, штрафы, отпуска, печеньки и прочую хренотень. Т.е. дать человеку возможность сразу соскочить, не мучая себя и других, если что-то не нравится.
    в) Ненавязчиво поспрашивать про предыдущие места работы, почему решил уйти. Т.е. прикинуть, не уйдет ли он через пол года, рассказывая другому HR-овцу, какое говно его бывшая компания.


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


    1. White_Scorpion
      08.05.2019 15:38

      Поправка принимается. Пункты "а" и "в" у вас — можно в принципе объединить…


      1. rjhdby
        08.05.2019 15:52

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