Slider Background

Как мы проводим собеседования

Как мы проводим собеседования

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

Основное правило, которое мы поняли, а потом и прочитали в одной хорошей книжке («Джоэл о программировании»), гласит: приглашая фокусника нужно просить его показать свои фокусы. У нас аналитики пишут ТЗ и описание вариантов использования, программисты строят структуру классов и реализуют многопоточное приложение, ведущие разработчики – архитектуру, а тестировщики – тестируют.
Кстати, эту практику для тестировщиков мы ввели только в прошлом году, это наша гордость. Наш руководитель отдела тестирования, Рита Сафарова, попросила написать приложение, содержащее 10 ошибок. Мы поручили разработку одному новому программисту и теперь даем его соискателям домой, а они присылают тест-кейсы и списки найденных ошибок. Что интересно, когда наше приложение стали тестить, то ошибок в нем нашли в полтора раза больше, чем мы специально посадили. Вот прямо не знаем, что и думать. Наверное, место такое проклятое.
Но вернемся к нашим баранам. Задание мы даем в самом конце собеседования или отправляем по почте уже после собеседования. А сначала мы разговариваем. Разговариваем о навыках человека, о его проектах, в том числе просим рассказать про самый большой из них. Любим спрашивать про книжки, которые человек читает (имеется в виду не труды Дарьи Донцовой, а другое). Очень радуемся, когда человек, например, прочитал “Совершенный код” (мы не все дочитали эту книжку до конца). И спрашиваем, что больше всего понравилось.
Кстати, сейчас мы не устраиваем череду собеседований, а собираемся сразу все вместе. В итоге в собеседовании участвуют 4-5 человек. Некоторых соискателей такое количество людей смущает.
После того, как человек рассказывает о себе и отвечает на наши всевозможные вопросы, мы устраиваем небольшой тест. Берется какая-нибудь логическая задачка, не имеющая отношения к программированию, тестированию или чему-либо полезному. И мы смотрим, как человек ее решает. При этом решение не так важно, как сам процесс решения.
Например, мы просим (я пообещал моим коллегам, никогда больше не задавать ее) решить следующую задачку.

Пусть у вас есть 8 биллиардных шаров, один из которых чуть тяжелее всех остальных. А остальные одинаковые. У вас также есть весы с двумя чашками, как на рынке, но без гирек. Какое минимальное количество взвешиваний вам нужно для того, чтобы найти самый тяжелый шар.
Если человек дает ответ больше трех, нам становится грустно. Если три - то мы начинаем его подталкивать к правильному ответу. И очень немногие сразу отвечают про два взвешивания. Кстати, мы приняли несколько человек, кто не ответил. Тем не менее, это важное задание.

Однажды мы получили ответ “несколько тысяч”. Оказалось, что товарищ услышал про “восемь миллиардов шаров”. C тех пор я стал говорить “восемь шаров для игры в бильярд”.
Неожиданно для себя я недавно нашел эту задачу в книжке Уильяма Паундстоуна “Как сдвинуть гору Фудзи”. А также множество других задач. Мне самому сложнее всего далась загадка про гномов. Мало того, что я ее не отгадал, так еще три раза прочитал ответ, прежде чем понял. Очаровательна книжка, всем рекомендую.
Продолжаем разговор. После расспросов и задачек мы спрашиваем, что человеку интересно узнать про нас. И отвечаем на все вопросы. Иногда нам говорят, что про нас всё прочитали на сайте. На всякий случай я всегда интересуюсь, что же про нас прочитали. Иногда оказывается, что прочитали про системы промышленной автоматизации, контроллеры и SCADA-системы. Это самый грустный момент собеседования. Это значит, что человек пришел к нам совершенно случайно. К счастью это бывает редко, и большинство переступающих наш порог знает, что мы делаем софт.
После ответов на вопросы мы выдаем задание и неделю времени. Это притом, что сделать его можно намного быстрее. Что мы смотрим, получая результаты? Скажу на примере задания для разработчиков. Нас интересует структура классов, оформление кода, правильные переменные и методы. Если мы видим таймер, то мы очень огорчаемся. А оператор goto повергает нас в ступор. К счастью, мы его никогда не видели.
Дальше - мы получаем задание, встречаем нового программиста, знакомим его с будущими коллегами, сажаем на последнее свободное место. Облегченно вздыхаем и тут неожиданно понимаем, что нам крайне необходим еще один внедренец. Но это уже другая история.
Следующий
Предыдущий