Собеседование — лучший способ нанять программиста!

Собеседование — лучший способ нанять программиста!

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

Но такой подход может и работает хорошо при определенных условиях

  1. Когда вы нанимаете первых 20 программистов – скорее всего вы наймете всех по знакомству или опираясь на чутье вашего тех директора.
  2. Команда скорее всего будет гомогенная. Т.е. у всех будут примерно одинаковые интересы, возраст, пол и тд.
  3. Если вы вписываетесь в такую команду, то работать будет очень комфортно.
  4. Такая команда будет замечательно работать до определенного момента.
  5. Как пишет Harward Busines Review в гетерогенных командах работать менее комфортно и именно по этому такие команды более производительны.

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

Что же происходит, когда найм нужно масштабировать?

Есть такой ученый Даниел Канеман, который в свое время трансформировал отбор людей в израильскую армию. Подход очень простой.

  1. Определите список ключевых параметров, которые влияют на успех. Желательно не больше шести.
  2. Оцените кандидата по этим параметрам от 1 до 5
  3. Если сумма баллов выше определенного порога – нанимайте. Нанимайте вне зависимости от вашего чутья.

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

Здесь стоит заметить, что после 60 лет использования, израильская армия модифицирует систему. Потому что изменились профессии в армии и пул кандидатов. 1 из 6 нанятых по системе Канемана не оканчивал службу и они решили это исправить.

Так вот, с наймом часто допускают ряд ошибок

  1. Считается, что программист должен только программировать поэтому первая ошибка – это проверять только навыки программирования. На самом деле работа в команде – это работа с людьми. Кроме программирования не плохо бы еще оценить мировоззрение кандидата. И насколько мировоззрение совпадает с ценностями компании. Для этого, конечно, сперва надо эти ценности определить.
  2. Тем не менее умение программировать – это определенно один из ключевых параметров, но как этот навык оценить? 4 задачи с литкод – плохой способ. С другой стороны если вы решите все четыре – значит вы готовы задрачивать любую бессмысленную фигню, которую вам скажут задрачивать. А это тоже ценный навык. Возможно под этот навык компания и оптимизирует найм. Я вообще где-то слышал, что программисты постоянно учатся и любят это делать. Так почему бы не выучить то, что позволит устроиться на хорошую работу? Задачи на программирование можно разделить на несколько видов: алгоритмы и структуры данных, решение проблем через программирование, умение структурировать код, чтобы он был поддерживаем. Не стоит проверять все три на одном этапе. Лучше сделать три этапа, где проверить каждый навык отдельно.
  3. Третья ошибка – это желание нанять, пусть даже кандидата, который не подходит. С одной стороны ты уберешь все эти собеседования из своего календаря, с другой, чем быстрее наймешь – тем быстрее новый человек начнет делать часть твоей работы. Вообще идеально если ты не знаешь, в какую команду попадет человек. Ты нанимаешь для компании, а человек уже потом выбирает команду или еще как. Шкура твоей команды не на кону. Вернее ты не знаешь попадет этот человек именно в твою команду или нет. Поэтому ты максимально беспристрастен. Ты проверяешь кандидата, а не закрываешь место в своей команде.
  4. Четвертая ошибка вытекает из первых трех. Часто собеседуют всего 1-2 человека. Еще хуже, когда первый сливает свое мнение второму еще до того, как второе собеседование началось. Тем самым программируя мнение второго собеседующего заранее. Все мы подвержены каким-то внутренним загонам. Нужна система активного противодействия им. Нужна группа собеседующих, нужны тренинги, как нанимать, нужно постоянно калибровать людей, чтобы не сбивался прицел. Нужно чтобы люди выставляли оценки кандидату до того, как они увидят оценки других. Нужно чтобы люди не делились своим мнением до момента выставления оценок.
  5. Последняя ошибка – отсутствие культуры собеседований в компании. Некоторые люди ненавидят собеседовать. Просто тяжело из-за особенностей характера. И, конечно, это отнимает время от созидательной деятельности. Нужно планировать собеседования как часть работы. Нужно распределять нагрузку найма равномерно. Нужно работать с людьми.

Если есть такая замечательная система, почему все так плохо?

Не все знают про такую систему. Не каждая компания может позволить отвлекать 4 человека на каждое собеседование. Нет соответствующих тренингов. В итоге вы попадаете на собеседование, где человек, который ненавидит проводить собеседования дает вам 4 задачи с литкода, а сам в это время чинит продакшен. Его никто никогда не проверяет. Если он сказал, что человек провалил собес — значит так и было. А человек не нанимает вас, потому что вы учились в университете Х, который обыграл его университет в чемпионат по контер страйку.