Последнее время мне приходится проводить много технических собеседований как в свою команду, так и целом для компании, в которой я работаю. Хочется записать некоторые мысли, идеи и советы для тех, кому это только предстоит.
Я постараюсь абстрагироваться от деталей технических задач, которые я спрашиваю, а оставлю только общие части.
Существует много книг и интернет ресурсов о том как проходить техническое собеседование. Гораздо реже можно узнать как его проводить. Этот пост лишь личное мнение и процессы в разных компаниях могут сильно отличаться. Хорошо, если у вас был специальный тренинг для проведения интервью или до этого была возможность походить просто наблюдателем на такие встречи коллег.
Цель
Очевидно, что сформулировать цель это самое главное. Звучит банально, но нужно понять для чего вы проводите интервью. Первое, что приходит в голову - найти нужного человека, чтобы закрыть вакансию. Благодаря этому компания сможет сделать быстрее и качественнее свой "продукт", а значит получить больше прибыли.
Но вся суть в этом слове нужного. Попытаемся сформулировать, кто нам нужен:
- он/она профессионалы своего дела
- знают стандартные пути решения, но кроме того умеют мыслить креативно
- могут быстро и без ошибок выполнять поставленные задачи
- самостоятельные, соблюдает баланс между "попросить помощи" и "принять решение самостоятельно"
- социализированы, знают как работать в команде, получать новый опыт и делиться своим с коллегами
Но это лишь идеал 😕 А ещё для всех пунктов можно сделать поправку на требуемый уровень того, кого мы ищем junior, middle или senior.
В книге Работа рулит была сформулировано очень интересная мысль о том, что самое сложное в собеседовании это не оценить текущий технический уровень кандидата, а понять какой его уровень будет именно на том месте, для которого вы проводите интервью.
Человек может быть очень крутым специалистом сейчас, но после выхода на работу, не сможет или не захочет её выполнять и использовать свои возможности в полной мере. Или у него не получится работать в той команде или с теми людьми, куда его взяли. Обратное тоже верно, если у кандидата не хватает знаний сейчас, то это не значит, что он не сможет вырасти в будущем.
В идеальном варианте, вакансия и кандидат должны подходить друг к другу как кусочки LEGO, чтобы человек мог раскрыться и максимально проявить свои лучшие качества. Цель интервьюера - попытаться за короткое время сравнить эти "кусочки" и понять насколько они будут разными.
Кандидат
Есть несколько вещей которые нужно знать, начиная собеседование:
- Интервью это стресс для кандидата. Поведение человека на собеседовании будет отличаться от его обычного процесса работы, иногда даже очень сильно. А еще часто это изменение видно прямо за время разговора. Я встречал людей, которые начинали панически смеяться или замыкались и плохо шли на контакт или наоборот были чересчур расслаблены. Как это понять, когда видишь человека первый раз в жизни? Часто это бросается в глаза, но все-таки общего решения нет, просто надо учитывать, что стресс есть всегда. Но это можно и использовать. Большую часть рабочего времени сотрудник будет работать в нормальном режими, но когда-нибудь ему точно придется столкнуться со стрессом, вот тогда скорее всего его поведение будет близким к тому, что вы видите на собеседовании.
- Кандидат чаще всего готовится к собеседованию. Нельзя забывать про это, когда вы получаете слишком быстрый и отточенный ответ на сложный, как вам казалось, вопрос. Попробуйте задать его позже чуть иначе, добиваясь того, чтобы кандидат применил уже имеющиеся у него знания. Другой подход - уйти в глубь вопроса, если это возможно и хватает ваших собственных знаний 😉 В одном из выпуском подкаста YaTalks было интересное сравнение собеседования со свиданием, обе стороны готовятся и это не является обманом, а скорее взаимоуважением.
- Кандидат не обязан говорить вам всю правду. Звучит странно, но это так) Иногда, прочитав очередное резюме человека с 1-2 годами опыта, ловишь себя на мысли "когда он успел освоить все эти технологии?". Но это обманчиво. Ни резюме, ни сам кандидат не скажут вам всей правды, это можно проверить лишь своими вопросами или отзывами людей, которым вы доверяете.
- Откровенность за откровенность. Это уже немного психологический подход. Не значит, что вы должны рассказать о себе всё, но не надо юлить и утаивать то, что не является секретом. Даже если что-то может оттолкнуть человека от текущей вакансии, лучше сказать все прямо, чем через несколько недель или месяцев подписывать его заявление об увольнении по собственному желанию. А если вам показалось что-то странным и можно спросить об этом корректно, не упускайте такую возможность. Не надо манипулировать и противопоставлять себя кандидату, вы в равных позициях, на открытое поведение человек открывается в ответ.
Процесс
Не вдаваясь в конкретику опишу как для меня выглядит общий процесс собеседования.
- Знакомство. Краткий рассказ кандидату о вакансии, для которой проводится интервью. Его ознакомление с общим процессом и планом на эту беседу. Здесь стоит оценить первичный уровень стресса при беседе и по возможности снизить его.
- Прошлый опыт. Рассказ кандидата о своем опыте, чем уже занимался и с чем планирует работать. Это важный этап, чтобы понять мотивацию человека, оценить привлекательные и отталкивающие для него вещи.
- Практическая часть. Здесь мы чаще всего просим кандидата решить задачу прямо при нас.
- Уровень задания должен соответствовать знаниям кандидата.
- Формулировка задачи не должна быть очень сложной. На прочтение и понимание должно хватать 2-3 минут.
- Решение задачи не должно занимать дольше 20-30 минут. Если вы сами в спокойной остановке справляетесь с ней за полчаса, то значит нужно что-то сократить, иначе взволнованному человеку уложиться в отведенное время точно не получится. Засекайте время начала решения.
- Хорошо, если задача близка к тому, с чем будет работать кандидат, если пройдет собеседование. Не надо давать сложных алгоритмов, если в работе это не используется, лучше взять что-то реальное и адаптировать.
- Задача должна проверять конкретные знания. Решение не должно быть слишком тривиальным или наоборот - очень специальным.
- Хорошо, если у задания есть автоматические тесты. Это ускоряет проверку и дает её более объективную оценку.
- Если задача была решена слишком быстро, значит вы неверно оценили уровень кандидата или ваши вопросы "утекли" в интернет и решение уже общеизвестно. На этот случай надо иметь всегда несколько разных заданий примерно одной и той же сложности.
- Теоретическая часть. Это время для проверки теоретических знаний. Можно начать со слабых мест, которые вы увидели на практике. Конкретно для моей секции backend разработки мы обязательно спрашиваем про язык на котором пишет кандидат, базы данных, сети, unix, git и общие вопросы про безопасность.
- Заключение. Время для вопросов от кандидата. Он или она могут задавать любые вопросы, если их будет мало, то сами расскажите что-нибудь, чтобы развить интерес. Кроме того нужно проверить, что за п.1-4 нашли для себя ответы на следующие вопросы (а если нет, то тут последний шанс это сделать):
- кандидату понятно, чем он будет заниматься, если пройдет собеседование?
- вам понятно его мнение о будущей работе?
- по каким критериям кандидат будет выбирать место работы между несколькими предложениями?
- вам понятно, что в работе нравится и не нравится кандидату?
- на какую зарплату рассчитывает кандидат?
- чем кандидат интересуется в свободное время (книги, хобби, статьи и др.)?
Упустил момент про деньги. Но тут все не так однозначно. Часто получается так, что это обсуждают в самом конце разговора, но есть и другая точка зрения - уточнить ожидаемый уровень зарплаты как можно раньше, чтобы сразу сопоставить это со своими ожиданиями и возможно сэкономить время и себе и кандидату.
Ещё важный момент - всегда ведите личные заметки сразу по ходу собеседования. И как только оно закончится, напиши все, что думаете про это. В потоке постоянных интервью вы точно забудете какие-то моменты конкретной беседы и тогда, эти записи станут бесценным напоминанием.
Книги
Книги, которые хотелось бы порекомендовать тем, кто проводит собеседование: