March 9, 2020

Как собеседовать разработчика?Ч.2.

В книге Константина Борисова “Брать или не брать? Как собеседовать разработчика?” подробно рассказывается об этапах собеседования с IT специалистами, но она будет полезна рекрутерам, менеджерам, работающим не только в сфере IT. Сегодня делимся кратким содержанием третьей главы.

Глава 3. Менеджерское собеседование

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

3.1. Дедуктивный метод.

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

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

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

3.2 Анализ коннотаций

В живом разговоре всегда есть два слоя: фактический и эмоциональный. Эти слои тесно связаны. Мы говорим о том, что происходит и параллельно выражаем своё отношение к этому. Эмоциональный слой содержит гораздо больше информации, чем фактический. Эти дополнительные, "эмоциональные" значения используемых человеком слов называются коннотациями, необходимо уметь их слышать, видеть и учитывать. Если же вы не уверены в своих возможностях к анализу, то для тренировки делайте такой анализ письменно. Можете для тренировки взять какое-нибудь обсуждение на форуме, вроде «iOS против Android» и подчёркивать одной чертой все слова с положительными коннотациями и двумя с отрицательными. Обратите внимание, что слова с негативными коннотациями сами по себе не являются чем-то плохим. Важно, на что обращены эти негативные эмоции и как кандидат с этими тревожащими его ситуациями привык справляться.

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

Если вы просто спросите кандидата: «Расскажите про проекты, на которых вы работали», то получите протокольное перечисление проектов и использованных технологий. Совсем другой результат будет, если вы спросите: «Расскажите про самый любимый ваш проект. Не важно, недавний или совсем старый. Просто проект, на котором вы бы с радостью поработали ещё раз». Используйте эмоционально окрашенные слова сами, чтобы кандидату было легче проявлять свои эмоции. Вот вопросы, которые могут помочь выяснить отношение кандидата к работе:

  • Почему вы хотите сменить работу?
  • Что для вас интересный проект?
  • Что для вас неинтересный проект?
  • Какой ваш проект был самым интересным?
  • С какими людьми вам тяжело общаться?
  • Почему вам нравится программировать?
  • Вспомните самого лучшего вашего начальника. Почему он лучший?

3.3. Технические вопросы от менеджера

На менеджерских собеседованиях я задаю вопрос: «Заказчик пишет вам гневное письмо, утверждая, что ваше приложение работает медленно. Что вы будете делать?» Даже если кандидат прекрасно умеет оптимизировать приложения, в реальной жизни задачи не приходят готовыми, «на блюдечке с голубой каёмочкой». Перевести задачу из практической, неформальной формы в форму, пригодную для решения - это часто тоже задача разработчика.
Я беру случаи из своей практики, выкидываю из них ненужные подробности и получаю ситуации для обсуждения: «Заказчик просит ускорить приложение», «Вам нужно исправлять баги в большом legacy проекте с кучей технического долга», «Вы делаете ревью кода и заметили, что вся команда делает одни и те же ошибки». Когда кандидат будет описывать, что он будет делать в этих ситуациях, он должен будет использовать свои знания из разных технических областей и свои soft skills. 3.4. Вопросы на собеседовании:

Изучение нового

Лучшим способом определить, может ли кандидат быстро учиться, будет просто задать прямой кандидату: «Предположим вам нужно выучить совершенно новую область для вас (библиотеку распознавания образов, например). Как вы подойдёте к этому?» Хороший ответ звучит примерно так: «Я попробую найти коллегу, который знает эту область, и спрошу его, как лучше всего её изучать и на что стоит обратить внимание. Если такого коллеги нет, то я могу найти специалиста в интернете. Например, задать вопрос какому-нибудь эксперту на форуме. Обычно стоит начать изучение с каких-нибудь tutorials, чтобы реализовать что-то реально работающее. В процессе обязательно возникнут какие-то вопросы и проблемы. Их решение можно найти в Google или с помощью знакомых экспертов. Когда уже будут какие-то навыки, лучше начать писать реальный проект. Реализация будет неоптимальный и, наверняка, придётся много переписывать, но зато выучишь именно то, что тебе надо, и будет виден прогресс. Чтобы глубоко изучить эту нужную область, можно найти какую-нибудь обстоятельную книгу. А ещё сейчас много обучающих сайтов, вроде Coursera, где можно найти нужный курс».

В таком ответе мне нравится сразу несколько моментов:

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


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

3.5. Вопросы на собеседовании:

Сложная задача

Один из обязательных вопросов на моём собеседовании звучит так: «Представьте, что вы работаете над какой-то задачей и она оказалась очень трудной. Вы не знаете, как двигаться дальше и не уверены, что вообще её решите. Что вы будете делать?»

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

  • есть неочевидные решения (вроде варианта не решать эту задачу).
  • кандидат учитывает нетривиальные проблемы, связанные с этими вариантами. Например, просить помощи на форуме можно, только если проблемный код не содержит значимой интеллектуальной собственности (чтобы можно было его разместить в общем доступе).
  • у кандидата в ответе варианты попросить у кого-то помощи (у менеджера, у коллег, у экспертов в интернете). Если этого нет, то у кандидата проблемы с коммуникацией.
  • кандидат говорит, что о проблеме нужно сообщить менеджеру или лиду. Если кандидат работал в команде с нормальными процессами, то он проблему обязательно озвучит, чтобы вся команда знала о ней.

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

3.6. Вопросы на собеседовании:

Болевые точки в коммуникациях


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

Здесь, как и во всех других ситуациях, лучше всего работает прямой и открытый подход. Я просто спрашиваю кандидатов: «С какими людьми вам тяжело общаться?» Примерно в трети случаев в ответ вы получаете рассказ о прошлом менеджере или заказчике, с которым у кандидата были проблемы. И дальше уточняющими вопросами вы проясняете, что мешало кандидату нормально общаться в такой ситуации.
Люди не считают своё поведение чем-то плохим, поэтому и говорят, что думают, ваша задача - разговорить их. 3.7. Никто не считает себя плохим

Ни один кандидат не считает свой образ мыслей и действий неправильным. Это очень помогает при собеседовании, так как кандидат готов давать честные ответы. Например, я как-то собеседовал менеджера, который считал, что он может уволить любого члена команды просто за то, что тот не нравится. «Да, можно тратить время, пытаясь понять, что именно не нравится, и потом выискивая поводы для увольнения. Но зачем это всё? Мне с ним не нравится работать, я начальник — можно увольнять».
Почему он должен был мне отвечать не так, как он думает? Как он может предугадать, что я отношусь плохо к та- кому подходу? Никак. Поэтому кандидат просто будет отвечать то, что думает. И это прекрасно.


Худшее, что интервьюер может сделать, это показать своё негативное отношение к словам кандидата - вам начнут говорить “нужные” ответы. Причём скрыть своё неодобрение вам будет очень сложно. У людей богатые невербальные средства выражения эмоций, и кандидат поймёт, что сказал что-то не то по вашему молчанию, приподнятой брови или нервному постукиванию пальцами по столу. Поэтому вам не просто нужно не показывать вашего неодобрения, вам надо всей душой поддерживать кандидата, проникнуться его отношением и относиться к его ответам нейтрально, а лучше позитивно. В конце концов он делает вашу работу гораздо проще, открыто выражая своё мнение. Не стоит платить за это презрением.

Тренируйте безоценочность!

3.8. Социальное одобрение

Необходимо учитывать, что есть так называемые социально одобряемые ответы. И все кандидаты знают «правильные» ответы. Если вы спросите кандидата, нравится ли ему заниматься саморазвитием, то он ответит «Да» без размышлений.
Задавая вопросы, тщательно продумывайте, не испортит ли ваш вопрос готовая установка, внедрённая в мозг кандидата обществом.

Если вы хотите узнать, насколько кандидата мотивируют деньги, то не стоит спрашивать: «Хотите ли вы зарабатывать больше?» Ответ очевиден. Намного результативней спросить: «Согласны ли вы работать на 15% больше, чтоб получать зарплату на 15% выше?»Спрашивать, нравится ли кандидату изучать английский язык, тоже смысла нет. Лучше спросить, какие методы изучениия он считает оптимальным для себя, а потом спросить, когда он ими пользовался в последний раз и чего добился.

полная версия книги здесь: https://www.litres.ru/konstantin-evgenevich-b/brat-ili-ne-brat-ili-kak-sobesedovat-razrabotchika/