Про собеседования и найм сотрудников написано безумное количество книг, статей, блогов и прочих вместилищ информации. Да только информация эта до сих пор дошла не до всех в ней нуждающихся. Посему, хочется в очередной раз сказать пару слов о процессе найма.
Зачем всё это? Хочу перечислить основные косяки обеих сторон, вовлечённых в процесс трудоустройства в виде назиданий и советов не претендующих на истинность, а являющихся личным мнением автора. Все пункты опробованы на себе, то есть в большинство из них так или иначе вляпался по собственной дурости, либо по милости противоположной стороны. Плюс к этому, некоторые ситуации проходил с двух сторон: и как соискатель и как наниматель. Посему, есть с чем сравнить. Так же, некоторые пункты могут показаться читателю очевидными и «капитанскими», но, увы, многие до сих пор не знают о них и делают с точностью до наоборот. Как говорится: «то, что очевидно для вас, не очевидно для других».
В общем, если интересен чужой опыт и грабли — прошу под кат.
По ходу повествования упоминаются реально существующие компаний и личные наблюдения и ощущения от взаимодействия с ними. Я не имею никакого прямого отношения ни к одной из них и не имею целью рекламировать кого-либо.
TL;DR По моему мнению, собеседование/интервью (называйте как хотите) — это обмен информацией и никак иначе. Каждая из сторон дозировано рассказывает о себе в течение некоторого периода времени, при необходимости подкрепляя слова делом, и составляет свой образ в голове у собеседника. О взаимности частенько забывают и, кажется, именно из этого растут все проблемы процесса трудоустройства. Именно эта мысль будет являться основой всего ниженаписанного.
Обычно, оно проходит в форме переписки. И уже на этом этапе есть много моментов, на которые хочется обратить внимание.
Начинается с телефона/скайпа и, при взаимных чувствах перерастает в личную встречу.
Здесь начинаются личные встречи разной степени протяжённости и маразматичности.
Тестовые задания. К ним прибегают, когда хотят получить гарантии того, что человек так же хорош на деле, как и на словах, либо когда на словах всё плохо, но хочется дать ещё один шанс.
Очень холиварная тема, но всё-таки рискну затронуть. У нас, чаще всего получается одно очное интервью. Длительность ~3 часа. То есть иногда за час заканчивали, а иногда и 4+ общаемся. Да, это много, но я не представляю как можно узнать у человека все интересующие навыки, необходимые для веб-разработки за меньший срок. То есть цель такого общения — это не только ответ на вопрос «подходим ли мы друг другу?», но и приблизительная оценка того, какие задачи можно будет поручить человеку в случае успешного исхода, а так же сколько ему понадобится времени для достижения командного ритма разработки.
Напоследок приведу немного статистики. Все любят цифры, пропорции и проценты. Вот что было конкретно у нас.
Надеюсь, вы нашли для себя что-то полезное. Все замечания, пожелания, предложения, дополнения и, конечно же, собственные истории, мнения и подходы к собеседованиям прошу излагать в комментариях. Спасибо.
Продолжение следует…
Зачем всё это? Хочу перечислить основные косяки обеих сторон, вовлечённых в процесс трудоустройства в виде назиданий и советов не претендующих на истинность, а являющихся личным мнением автора. Все пункты опробованы на себе, то есть в большинство из них так или иначе вляпался по собственной дурости, либо по милости противоположной стороны. Плюс к этому, некоторые ситуации проходил с двух сторон: и как соискатель и как наниматель. Посему, есть с чем сравнить. Так же, некоторые пункты могут показаться читателю очевидными и «капитанскими», но, увы, многие до сих пор не знают о них и делают с точностью до наоборот. Как говорится: «то, что очевидно для вас, не очевидно для других».
В общем, если интересен чужой опыт и грабли — прошу под кат.
По ходу повествования упоминаются реально существующие компаний и личные наблюдения и ощущения от взаимодействия с ними. Я не имею никакого прямого отношения ни к одной из них и не имею целью рекламировать кого-либо.
TL;DR По моему мнению, собеседование/интервью (называйте как хотите) — это обмен информацией и никак иначе. Каждая из сторон дозировано рассказывает о себе в течение некоторого периода времени, при необходимости подкрепляя слова делом, и составляет свой образ в голове у собеседника. О взаимности частенько забывают и, кажется, именно из этого растут все проблемы процесса трудоустройства. Именно эта мысль будет являться основой всего ниженаписанного.
Первое знакомство
Обычно, оно проходит в форме переписки. И уже на этом этапе есть много моментов, на которые хочется обратить внимание.
- Резюме кандидата нужно читать полностью, мало того, хорошо бы запомнить основные моменты из него и не полениться перейти по ссылкам. Может обнаружиться много интересного: например, 100% недоступность всех линков, либо наоборот, интереснейшие проекты и необычные решения за авторством кандидата. Мало того, появится повод для разговора с кандидатом при последующих встречах.
- Как говорил один хороший человек: «билет на экзамене — это лишь повод пообщаться». Так и с резюме, оно лишь повод для дальнейшего общения. Если после прочтения повода не появилось и желания пообщаться и углубить знания о кандидате не образовалось — берите следующее.
- Если после прочтения никакое мнение не сформировалось — составьте список вопросов к кандидату, а так же список замечаний по резюме и отправьте ему вместе с описанием вакансии. При правильном подходе и человеку будет приятно, что резюме читали, чего-то там не нашли и предлагают дополнить/улучшить, и компания получит потенциального кандидата (спасибо за отличный пример общения и отзыва о резюме девушке-hr'у из Alytics). Таки да, этот вариант требует гораздо больше времени на обработку резюме и предполагает, что поток кандидатов маленький и каждый из них на счету.
- Если резюме было прислано целенаправленно именно вашей компании, то, чёрт возьми, ответьте на него в любом случае! Как говорится: «Не плюй в колодец...». Совсем хорошо, если ответ будет хоть сколько-нибудь человеческим, а в идеале с хоть каким-то обоснованием вашего решения. А то уж сколько примеров было о том, что компания продинамила соискателя или ответила шаблонным «извините, на текущий момент, мы не можем вам предложить эту вакансию», после чего человек обиделся, захватил мир и продолжает в тайне ненавидеть обидчика (ну вот например раз и два). А мог бы запомнить их адекватность и дружелюбность, заглянуть к ним на огонёк через год, успешно трудоустроиться и пользу приносить.
- Соискатели, если вы уверены в себе и в своих знаниях/навыках, а так же спокойно относитесь к критике, то не стесняйтесь задавать вопросы о причине отказа. В лучшем случае вы получите информацию для размышления и саморазвития, в худшем случае — не получите ничего и составите соответствующее мнение о компании. Из личного опыта: эксперименты на людях показали, что только около 10% не прошедших интересуются причиной отказа.
Первое свидание
Начинается с телефона/скайпа и, при взаимных чувствах перерастает в личную встречу.
- В начале любого личного общения нужно рассказать подробно о компании, о вакансии и о том, чем предстоит заниматься в случае трудоустройства, а так же ответить на основные вопросы соискателя, чтобы у него сложился более-менее целостный образ и он знал что его ждёт в случае успеха. Это же относится к многоэтапным собеседованиям с различными сотрудниками компании. Каждый должен делиться информацией и рассказывать что-то новое о компании. Повторюсь, основная концепция: не односторонний допрос, а обмен информацией.
- Не переспрашивайте то, что уже написано в резюме. Чаще всего вам вменят один из предыдущих пунктов о невнимательном изучении резюме. Лучше сошлитесь на него и попросите подробнее описать ту или иную его часть. Так получаем более выигрышную позиция для обеих сторон: вы удовлетворяете любопытство, а соискатель уверен, что резюме читали и извлекли оттуда всю информацию, которую он туда заложил.
- Скайп-беседа: самое адекватное и запомнившееся, что я встречал (привет, Mail.ru) — это 10 коротких вопросов по предметной области. Все остальные варианты кажутся не таким эффективным (а написание кода в риалтайме в редакторе так вообще издевательство). Вопросы эти позволяют проверить базовые знания, отсеять полных неадекватов, занимает около 10мин и не сильно напряжны для кандидата. Вот часть вопросов:
1. «Сколько будет 2^8?»
4: «Какое ключевое слово нужно использовать в MySQL, чтобы применить условие на сгруппированные строки?»
7: «Что означает „600“ в правах на файл в Linux?»
10: «В RSpec в чем разница между describe и context?»
В общем-то по 1-2 вопроса из каждой области, которая будет непосредственно связана с будущей работой (ОС, сети, Ruby, JS, тесты, БД), плюс вопросы на общую адекватность и на алгоритмы. Как узнал позже и сильно удивился: на первый же вопрос часть кандидатов не отвечает.
- Соискатель, будь терпелив, в самом начале никто не бросит на амбразуру технического директора, которые будет знать все подробности. До этого босса нужно добираться с боем. Так что на первых ступенях собеседования не пытай милых барышень (парни-hr'ы, простите, но на первых этапах девушек действительно большинство) технической стороной вакансии, собери список общих вопросов и задавай их в самом начале, чтобы в будущем не тратить время на них и всласть назадавать технических вопросов людям, приближенным к разработке.
Конфетно-букетный период
Здесь начинаются личные встречи разной степени протяжённости и маразматичности.
- В самом начале обрисовать план действий и ожидаемые временны́е рамки — хорошая идея. Ещё одна хорошая идея — следовать этому плану. Данное действо сродни сквозной нумерации в презентациях: «5 из 25 слайдов» выглядит гораздо лучше, чем просто «слайд №8». Сразу понятно сколько ещё осталось и можно прикинуть хватит ли сил добраться до конца.
- В начале первой личной встречи снова расскажите о компании. Про детализацию узнайте у соискателя. Если он уже наслушался вас на предыдущих этапах и всё нужное знает — переходите к сути, если нет — удовлетворите его любопытство по максимуму. А потом уже переходите к удовлетворению своих потребностей.
- Соискатель, не стесняйся задавать вопросы, пока тебе не станет предельно ясно чем люди занимаются, откуда деньги извлекают, да и вообще, задавай любые другие вопросы, которые тебе жизненно необходимы для принятия решения о том, хочешь ли ты работать с этими господами или нет.
- Не ходите толпами. По личному мнению, оптимальное количество собеседующих — двое. Первый — непосредственный руководитель, второй — hr. Первый оценивает знания и навыки, необходимые для работы, второй — оценивает человека в целом. Третьего-четвёртого можно привлечь если предметные области вакансии и кандидата не сильно пересекаются и нужен кто-либо для корректировки. Например, должность на RoR, а пришёл человек из PHP и нужен кто-нибудь, кто сможет выяснить уровень знаний в PHP. Больше четырёх — это что-то стрёмное и гнетущее.
- Как уже когда-то говорил Milfgard, не стесняйтесь сказать человеку что он не подходит через 5 минут общения. Да, такое бывает очень редко, но бывает. Лучше сказать всё как есть и сэкономить время и себе и соискателю, чем мариновать его пару часов, чтобы сообщить тот же результат.
- Это же справедливо и для соискателя: если вы поняли, что точно не хотите тут работать, просто скажите об этом и сэкономьте время. Если дополните своё решение некоторым количеством фидбэка, то вообще цены вам не будет. Конструктивную критику обязаны любить все. Если кто-то не любит — замолкайте, извиняйтесь, покидайте этих людей как можно скорее и никогда больше с ними не встречайтесь.
- Не пускайте на собеседование руководителей которые выше вакантного места на две и более ступеней. Они, обычно, только пугают кандидата. Был такой пример в Microsoft (привет, Skype), когда угораздило первым этапом общаться с каким-то из менеджеров всего подразделения в полторы сотни человек (то есть на 4-5 ступеней выше). В итоге час на английском обсуждали как на псевдоязыке (потому что общих языков программирования не нашлось) написать односвязные списки. Вакансия была вообще на Python и причём тут списки решительно непонятно. После этого часа думал они тут все упороты и уходить хотел, но дальше пришёл непосредственный руководитель и всё стало гораздо интереснее и приятнее.
- Совет соискателю: терпите высокое руководство и задавайте вопросы о том «а чего это за дядя был и зачем я с ним общался?» следующим собеседующим, которые, скорее всего, будут вашими будущими коллегами и доступно ответят на мучающие вас вопросы.
- Не давайте убогих задач на «скомпилируй в уме», «а что выдаст этот SQL-запрос по вот этим данным» и им подобные. Это же безумно уныло, проверяется исключительно внимание и в стрессовой ситуации (коей является собеседование) ошибаться будут почти всегда. Если нужно проверить какие-либо навыки, желательно придумать одну, но интересную задачу по каждому направлению. Например: для проверки знания английского, спросите перевод какой-нибудь хитровывернутой фразы вида «Уничтожениче человечества является первостепенной задачей для любого уважающего себя ИИ». Сразу же предупредите, что не нужно выдавать дословный перевод или сидеть и долго думать, что интересует сам процесс того, как человек будет пытаться перевести фразу, так же сказать, что если совсем мыслей нет — говори просто что знаешь, своими словами, чтобы передать смысл. В итоге либо человек выдаёт перевод сразу и вопросов к языку более не возникает, либо появляется повод немного поговорить об иностранном языке. Аналогичные задачи и для других областей можно придумать. Для SQL, у меня, например, есть задача, которая проверяет большинство основных принципов языка при помощи одной таблицы с одной колонкой. Людям нравится, особенно когда объяснишь назначение задачи.
- Ещё раз отдельно: объясняйте назначение задач. Если даёте задачу на логику, опишите цели, которые преследуете, давая такую задачу. Если даёте что-то из реального продакшена — скажите что это реальный трэш и угар, который у вас происходит. Тем самым вы успокоите кандидата и замотивируете его на выполнение задачи. Если человек потеряет связь между вакансией и задачей, то он и выполнять её будет посредственно, и результат будет так себе, и впечатление от собеседования будет негативным.
- Соискатель — не стесняйся спрашивать «а зачем вы такое спрашиваете?», «вы что, реально такое в проде делаете?!» и тому подобные вещи, которые тебя беспокоят и заставляют усомниться в адекватности работодателя.
- Собеседующие, будьте компетентны в вопросах, которые задаёте. Если вы спрашиваете у кандидата что-либо, то будьте добры знать ответ и уметь объяснить его человеку, если он не справится с заданием. Иначе получится эдакая форма издевательства и демотивации. Объясните человеку как нужно было решать задачу или просто скажите ответ, либо коротко опишите что хотели услышать и зачем. Если вы сами не знаете то, что спрашиваете, то не имеете морального права это спрашивать. Снова приведу аналогию с экзаменом: самые запоминающиеся и полезные экзамены — это те, с которых уходишь вместе с новыми знаниями (я таких помню всего 3), а не которые просто сдал и забыл. В личной практике было несколько случаев, когда соискатели хоть и не получили приглашение на работу, но уходили абсолютно довольными и честно говорили, что не ожидали в ходе собеседования узнать что-то новое.
- Соискатели, отвечайте за свои слова. Если вы говорите что что-то знаете, то будьте готовы к тому, что вас проверят, причём проверят глубоко и подробно. Вот пример: если вы говорите «я знаю SQL» то будьте готовы написать любые извращённые запросы, рассказать про все виды JOIN-ов и вообще знать синтаксис и операторы. Если не уверены, то скажите что был некоторый опыт, перечислите какие задачи решали с его помощью и предложите собеседующему самостоятельно выяснить ваш уровень. Это особенно относится к джуниорам. Многие из них совершают ошибку говоря «я знаю SQL» подразумевая, что знают как написать обычный SELECT.
- По возможности, воздержитесь от опросников по проф.направлению. Чаще всего это такая муть, что хочется встать и убежать. Лучше уж поговорите лишние 5мин вживую (человек уже добрался до очного этапа, раньше нужно было про тесты думать) и избавьте человека от тестов. Исключение: большие корпорации, которые могут творить всё что хотят; либо много джуниоров, которых нужно хоть как-то отсеять. Вот несколько самых запоминающихся вопросов из опросников по Ruby:
1. «Продемонстрируйте 5 способов создания цикла от 1 до 10, выводящего эти значения, за исключением нуля.» — до сих пор терзаюсь вопросом: зачем?!
2. «Как создать экземпляр модуля?» — мне в голову приходит только «никак», но, до сих пор кажется, что автор имел в виду что-то другое;
3. «В чём отличия между p и pp?» — это гуглится за 30сек, зачем это в бумажном опроснике?
4. «Что такое объект?» — тут хочется вопросов назадавать: вам определение из википедии, их там 13 и минимум 4 подходят? Класс Object из Ruby? Или вы сами не определились и хотите как можно больше вариантов? Ну и главный вопрос: зачем?
- Показывайте непосредственное руководство лицом. То есть если высокоуровневых руководителей на интервью пускать нежелательно, то первые две ступени руководства там быть просто обязаны. Как минимум в финальной части. Мало того, нужно чтобы они пообщались с кандидатом и с обеих сторон не осталось вопросов. Так как для руководителей это тот человек, с которым предстоит работать на протяжении долгого времени, а для соискателя — это люди, к образу которых он будет явно или неявно стремиться на протяжении всего времени работы в конкретном месте («45 татуировок менеджера» татуировка 14 «Стая копирует вожака»).
- Соискатель, смотри внимательно на непосредственных руководителей. Это те люди, которые будут оказывать на тебя и на твою жизнь наибольшее влияние в обозримом будущем (в случае успешного трудоустройства) и к образу которых ты будешь осознанно или неосознанно стремиться. Если руководство не показали, но дело идёт к успешному завершению — настойчиво проси аудиенции. Можно узнать много интересных вещей и сильно изменить взгляды на выбранное место работы.
- Общая адекватность и честность важна с обеих сторон. Причём важна не менее чем условия труда, оклад и профессиональные навыки. Если уже в ходе собеседования кто-то что-то недоговаривает или не отвечает явно, то дальше будет только хуже. Из личных примеров: ребята из Альфа-потока. Абсолютно честно говорят чем занимаются, что ожидают, что предлагают взамен и ожидают ровно того же самого от соискателя. Никаких иллюзий и недосказанности. Побольше бы таких людей и компаний.
- В конце собеседования, чётко описывайте результат и будущие действия. Либо так же чётко обозначайте временной промежуток, когда результат и цели станут известны. То есть если можете сказать результат сразу — скажите, если нужно время — сообщите сколько его нужно, когда ожидать результата и чем вызвана необходимость ожидания. Не держите человека в подвешенном состоянии.
- Соискатель, всё абсолютно симметрично. Если обещал дать результат в ближайшие два дня — сдержи обещание, обещал сделать тестовое задание за неделю — сделай, либо честно скажи что забил/неосилил/etc.
Домашняя работа
Тестовые задания. К ним прибегают, когда хотят получить гарантии того, что человек так же хорош на деле, как и на словах, либо когда на словах всё плохо, но хочется дать ещё один шанс.
- Имейте несколько вариантов тестового задания, рассчитанных на разную длительность и уровень исполнителя.
- Если собираетесь дать тестовое задание — сразу уточните готов ли на него соискатель и если готов, то сколько времени он готов выделить на него. По личному ощущению, задание должно занимать не более 8 часов. В идеале — меньше. При этом, задание имеет смысл давать только в том случае, если человек вакансией уже заинтересовался, иначе он посмотрит на него и забьёт. Самый удачный подход к этой области, как мне кажется, во фрилансе. Почти всегда можно договориться на небольшое задание, которое будет оплачиваться и по результатам которого вы либо продолжите взаимовыгодное сотрудничество, либо поймёте, что вам не по пути.
- Чётко оговаривайте сроки и способ презентации тестового задания. Так же, полезно явно просить кандидата сообщить, если он решит задание не выполнять. Из личного опыта: отмалчивается меньшинство, большинство сообщает что делать не будет, если явно попросить об этом.
- Огромные задания, например недельные, допустимы в единственном случае, когда человек на собеседовании ничего толком не показал, но рвётся в бой, стучит кулаком в грудь и хочет доказать что на самом деле он всё умеет (обычно это случается со студентами). В этом случае можно предложить следующий сценарий: «мы даём тебе большое задание и ожидаем что оно будет выполнено в такой-то срок. Таким образом ты доказываешь что на самом деле всё знаешь и умеешь, либо быстро учишься и можешь достичь результата в сжатые сроки.» Справедливости ради, стоит сказать, что личный опыт таких заданий плачевный. Наверное человек 5-6 я спрашивал о таком варианте после не совсем удачного интервью. Явно описывал что задание большое и что в случае успеха готовы сразу брать на работу. Большинство соглашались, но в итоге все забили на выполнение. Задание было довольно банальным: сделать веб-приложение с нуля: 5 таблиц, скафолды, базовый CRUD и немножко CSS. День работы для мидла и выше и неделя для джуниора.
Длительность собеседования
Очень холиварная тема, но всё-таки рискну затронуть. У нас, чаще всего получается одно очное интервью. Длительность ~3 часа. То есть иногда за час заканчивали, а иногда и 4+ общаемся. Да, это много, но я не представляю как можно узнать у человека все интересующие навыки, необходимые для веб-разработки за меньший срок. То есть цель такого общения — это не только ответ на вопрос «подходим ли мы друг другу?», но и приблизительная оценка того, какие задачи можно будет поручить человеку в случае успешного исхода, а так же сколько ему понадобится времени для достижения командного ритма разработки.
Ложь, наглая ложь и статистика
Напоследок приведу немного статистики. Все любят цифры, пропорции и проценты. Вот что было конкретно у нас.
- Выборка резюме небольшая. Около сотни за последний год. Из них треть — сразу отбрасывается по тем или иным причинам (язык разработки не тот, живёт не там, содержимое слабо похоже на резюме и тд). Из оставшихся примерно 2/3 так или иначе вызывает интерес. Из них ещё процентов 60-70 отваливается из-за неактуальности резюме, незаинтересованности в вакансии, невозможности достучаться до кандидата и тд. И остаётся человек 15-20 с которыми можно побеседовать. Из них ещё половина отваливается на этапе удалённого общения и до личной встречи дошли человек 10, то есть <10% от исходного объёма.
- В вышеозначенные расчёты не включены студенты, которые периодически появляются в обход сей процедуры. Их не считал, поэтому точной статистики нет. Есть только ощущение, что очень малый процент знает хоть что-нибудь сверх институтской программы. То есть с самообразованием всё грустно.
- За всё время был ровно один неадекватный господин, который всеми силами хотел хоть кем-нибудь устроиться. Судя по резюме он был нинзя и знал всё от асемблера и верилога до веб-серверов и ESB. Пришлось долго объяснять, что нельзя просто так перепрыгнуть часть этапов собеседования и заиметь оклад двух ведущих разработчиков.
- Выборка личных собеседований и того меньше. За всю жизнь полноценных было штук 10-15. Фриланс, а так же различные предложения и последующие переписки в почте, соцсетях, скайпе и им подобных — не в счёт.
Надеюсь, вы нашли для себя что-то полезное. Все замечания, пожелания, предложения, дополнения и, конечно же, собственные истории, мнения и подходы к собеседованиям прошу излагать в комментариях. Спасибо.
Продолжение следует…