Хабрахабр

[Из песочницы] Антисобеседования

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

Собеседование — это экзамен

Ведущий — строгий учитель, а кандидат — студент. Классический сеттинг. Обычно проходит так. Спросили откуда ты, что ты, и потом пошло техническое собеседование.

Используя аналитические функции?”
“В чем разница между хэш-контейнером и контейнером на основе дерева? Начинается с простых вопросов на раскачку, примерно таких:
“Как написать накопленную сумму на чистом sql? Может ли tree_map работать быстрее hash_map? Почему нельзя обойтись только одним? В каких случаях?”

Следующий вопрос. Вопрос. Студент-кандидат волнуется, потеет? Экзаменатор всегда прав и строг. Экзаменатор хмурится: “Ну вот же, тут вот так надо было, все просто”. Хорошо, так ему и надо. И так часа два. Так, все давайте дальше.

Для него важны вопросы и ответы. Ведущий собеседование фокусирует внимание на задавании относительно сложных и специфичных вопросов. Учитель по правилам игры всегда прав, всегда умнее и опытнее. Что за человек на них отвечает и как он встроится в команду волнует меньше. Что провоцирует задавать вопросы поумнее и интереснее. Поэтому часто присутствует страх оказаться глупее. Решение принимается по принципу “кто лучше ответил, того и берем”. И чем богаче опыт и знания в резюме, тем вычурнее и сложнее будут вопросы.

И часто ничего кроме вопросов не видит. Кандидат фокусирует внимание на том, чтобы ответить на сложные технические вопросы. Выходит с собеседования, прокручивает, что же он ответил, правильно ли ответил, и “какую оценку я получил”? Когда идет на собеседование готовится к ним, пытается узнать зараннее. Про место работы спрашивает немного, мало и сумбурно. Часто плывет и стрессует, потому что срабатывает модель поведения, знакомая со школы и университета: “на экзамене”. Главное сдать экзамен, а дальше разберемся. Не пытается узнать, особенно, если плохо ответил, подходят ли ему условия работы.

Но тень экзамена часто витает. В таком карикатурном виде собеседования редко проводятся. Собеседование должно отвечать на вопрос “А подходим ли мы другу другу?” и экзаменационный сеттинг этому мешает.

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

И за одно часовое свидание надо решить готовы ли вы будете жить вместе в горе и радости, если не оставшуюся жизнь, то хотя бы год. На самом деле собеседование — это свидание.

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

Пока ты собеседуешь кандидата, он — собеседует тебя

Собеседование — это обоюдный, взаимный процесс. Кандидат продает свои умения, компания продает свое место работы. И это же относится к испытательному сроку. Испытательный срок идет как для кандидата, так и для компании.

Продавать — одно, врать — совсем другое. Но когда продаете компанию и работу, не стоит переусердствовать.

Главное завлечь, а дальше хоть потоп? Зачем рассказывать про бигдату, интересные клевые задачи и свободу творчества, если когда человек выйдет на работу, этого всего не будет? Человек поработает несколько недель или даже месяц, поймет что все не так и уйдет. Это оборачивается сплошными минусами для компании. А потом на каждом следующем собеседовании он будет рассказывать, почему в компании “Рога и Копыта” он проработал всего пару месяцев и как эти мудаки его обманули. Это прямые потери на найм, вывод и обучение сотрудника.

Счастье происходит, когда компания адекватно оценивает кандидата, и когда кандидат адекватно оценивает компанию и место работы.

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

От честности и открытости выигрывают в конечном итоге все. Честность и открытость — необходимое условие как для счастливого брака, так и для собеседования.

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

Что кандидате проявит при решении лампочной/олимпиадной задачи про роботов? Узнаем ли мы, насколько подходит кандидат к выполнению той работы, которую мы можем или хотим ему предложить? Поймем ли мы, например, способность кандидата к написанию сервисов на golang? Или насколько подойдет человек для написания внутреннего интранета с нуля? Нет. Никак этот вопрос не проявляет способностей человека, кроме одной — способности решения лампочных вопросов. Умение решать олимпиадные задачи не переносится на умение разрабатывать промышленный код. К сожалению.

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

Быстрая сортировка является устойчивой? Что покажет ответ на вопрос ““Какие сортировки за линейное время знаешь? Как сделать из неустойчивой устойчивую?” Для человека, которому хотим поручить 90 процентов времени клепать формы? Какие алгоритмы устойчивые? Узнаем ли мы, насколько подходит кандидат для нас? Алгоритмическую эрудицию и хорошие базовые знания — да. В данном случае, это бесполезный для нас вопрос. Нет, не узнаем. И это прекрасный вопрос, если мы ищем системного разработчика для создания высокопроизводительного сервера со сложными алгоритмами.

Как работают метаклассы в питоне? “Что такое синглтон? Замечательные, восхитительные вопросы. А напишешь декоратор?”. Во всех остальных случаях, вы узнаете, подготовился человек к собесу или есть ли у человека недавний не релевантный опыт. Если вы хотите найти человека, который пишет синглтоны на метаклассах и оборачивает их в декораторы каждый день или хотя бы несколько раз в неделю.

Не так уж и много. Какие технические навыки и знания вскроет вопрос “В чем разница между select count(*), select count(1) и select count(column)”? Что либо человек уже отвечал на него на других собеседованиях или пару раз в своей разработческой жизни он сталкивался с этой разницей.

Удивительно, но лучший способ узнать — это дать ему задачи, максимально приближенные к тем, что ему придется решать 99% времени, каждый день. Как понять, что человек будет хорошо справляться с той работой?

Дайте задачу на реализацию простого алгоритма. Придется программировать? Дайте простую задачку на left join. Придется писать на SQL несложные запросы? Спросите, как устроен хотя бы примерно http. Придется разрабатывать веб приложение? Спросите центральную предельную теорему по Ляпунову и метод максимального правдоподобия (на самом деле, нет). Придется делать прогнозные модели?

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

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

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

Светлая голова важнее фреймворка, а работа в команде важнее хэш-таблицы

Вы наняли человека и вдруг оказалось, что он знает ваш любимый фреймворк не так хорошо. Ошиблись, бывает. Что стоит исправить? Разработчик по несколько часов в день посвящает работе с фреймворкам и программированию. Подучить фреймворк или еще один метод сортировки — это вопрос времени.

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

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

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

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

Общаться и представлять компанию должен тот, кто принимает решение

HR-ы, какие бы хорошие они ни были, не понимают специфику работы, а потому правильно продать разработчику компанию не смогут. Большинство не способны даже грамотно рассказать про компанию, так чтобы создать приятное впечатление.

Чаще всего они не смогут подобрать правильные слова, нужные аргументы и в правильном свете подать команду и компанию. Желательно, чтобы HR-ы не принимали участия в переговорном процессе в случае контроферов или сомнениях у кандидата. Если есть возможность, желательно эту часть собеседования брать в руки собеседующему. Потому что у них нет всего контекста — они хуже знают, как обстоят дела в команде, они хуже понимают мотивацию конкретного человека, по сравнению с человеком, который непосредственно работает в команде и который уже как минимум час пообщался. Только он сможет это лучше всего сделать.

В глазах кандидата больший вес будут иметь слова человека, который его собеседовал, который такой же как и он — разработчик, инженер, с которым можно поговорить на одном языке, который на самом деле знает, чем придется заниматься, а не девочки 25 лет от роду, которая как попугай повторяет “хайлоуд, блокчейн, бигдата, дмс, офис, плюшки, молодая динамично развивающаяся компания” и которая скажет все что угодно, лишь бы закрыть вакансию.

А то вдруг окажется, что половина кандидатов отсеивается, потому что “пирсинг и наколки, он скорее всего наркоман”, “девочка была одета слишком вызывающе”, “я не увидел у него желания работать в нашей компании” и т.д. Желательно исключить предварительные собеседования с HR-ами. А то вдруг окажется, что половину кандидатов отсеивают, потому что “работал 5 лет на одном месте — это звоночек!”, “старше 40 — наверное уже мозг старый и много денег захочет”, “студент — значит, нифига не знает, смотреть не будем”. А также минимизировать по возможности участие HR-ов в отборе резюме.

И к предубеждением ведущего добавят еще и свои. Это происходит, потому что HR-ы не могут правильно оценить культуру и специфику работы в команде, в которой они не работают 24 на 7.

Общаться и представлять компанию должен тот, кто принимает решение.

Есть ложь, наглая ложь, а есть — резюме

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

На конференциях выступал с докладом. “Он писал на PHP несколько лет, ну точно быдлокодер”
“10 лет на Си, а сейчас хочет писать на реакте, серьезно?”
“Работает в каких-то неизвестных госконторах, опыта никакого, не буду тратить время”
“О, ничего себе человек поработал Рамблере, Мейле, да еще и поруководить успел. Я таких даже смотреть не буду, мне нужны люди, которые умеют доделывать дела до конца”. Крутой должно быть чувак”
“Chief data scientist — неплохо, в яндексе поработал, и на кагле отметился, и гитхаб ведет, клевый, скорее всего нам подойдет”
“Не смог закончить высшее?

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

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

Жизнь намного интереснее, объемнее и неожиданней, чем текстовая выжимка с хх.ру.

Да и на собеседовани тоже. Не читайте резюме до собеседования. Если возможно фильтруйте людей на основе резюме как можно меньше. Любые выводы, сделанные на основе резюме — делите на 100, а то и на 1000.

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

Работаешь, уткнувшись в ноутбук, во время общения с кандидатом?

Знай, ты — не цезарь, ты — чмо, которое ведет себя неуважительно. Какой смысл приходить на собеседование и тупить в фейсбук, троллить в телеграмме или кодить? Выглядит это не очень красиво и не очень эффективно.

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

Только потом не удивляйтесь качеству набранного “материала”. Но, конечно, интереснее пообщаться с коллегами, покомментировать таски в жире, поревьюить джунов.

Никогда не перезванивайте кандидату

Просто давайте обратную связь по окончанию собеседования. Честную, открытую и сразу. Поняли, что человек подходит? Так сразу и скажите — “сегодня, завтра жди офер на почту”. Не подходит? Тоже скажите. Сомневаетесь? Скажите, что сомневаетесь и обсудите с кандидатом, как ваши и его сомнения разрешить. Только не надо вот этого “Наш hr с вами свяжется через неделю с решением”.

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

“Ты — дно, которое не умеет программировать, поэтому давай закончим собес” — не самая лучшая обратная связь. Да, это еще и уметь надо делать. Вообще, умение давать обратную связь — это необходимый навык для любого тимлида. Ты — лицо компании, оскорбления и грубость запомнятся надолго и отразятся на репутации.

Если тебе у нас понравилось, подтяни это и это, подтянешь — приходи.” Люди, у которых нормально с софт-скиллами, обычно позитивно воспринимают обратную связь в такой форме: “К сожалению, мы не готовы предложить тебе работу, потому что нам требуется человек с несколько другим набором навыков и умений.

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

Вполне вероятно, что мы ошибаемся на твой счет. Если человек начинает спорить, что он на самом деле “сеньор”, а не “джун”, то обычно лучше не вовлекаться, а просто сказать правду: “Час это слишком мало для того, чтобы хорошо узнать человека, его навыки и умения. И мы понимаем, что может быть совершаем ошибку, но эта ошибка будет на нашей совести”. Но такова жизнь, нам нужно за этот час принять решение.

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

Стоит сказать правду: “Ты — ок, но мы бы хотели посмотреть еще кандидатов. И да, если действительно хотелось бы еще посмотреть на другие варианты. Если да, то позвоним и скажем”. Если до конца недели не позвоним, значит, — нет.

Час — слишком мало

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

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

Человек обычно умнее собственного мозга. Стоит доверять и собственным субъективным ощущениям. И если интуиция говорит, что не стоит, значит, действительно не стоит.

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

Показать больше

Похожие публикации

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»