Как в Wix строят процесс собеседований и что изменили с переходом в онлайн
C начала карантина Wix перешел на удаленку. Вряд ли кого-то сейчас этим удивишь, правда? Что может показаться удивительным, так это то, что мы не привыкли к такому формату взаимодействия. Мы всегда были очень ориентированы на офлайн-общение, но в очень короткие сроки смогли пересмотреть и адаптировать свои процессы. Один из таких процессов — поиск новых разработчиков. За месяц карантина мы успели провести 32 интервью. Я руковожу Front-еnd гильдией в Киеве, и построение процесса отбора — одна из моих прямых обязанностей. В этой статье я вам расскажу, как эффективно и безопасно его построить.
Но давайте для начала откатимся назад, чтобы хорошо понять, кто мы и что делали раньше.
Wix — международная компания, известная как платформа для создания сайтов. На самом деле это платформа для полноценного управления бизнесом онлайн — начиная от AI для создания сайтов и заканчивая CRM, своей платежной системой, инструментами для написания кастомной логики и множеством специализированных приложений для разных видов бизнеса. Мы обслуживаем больше 180 миллионов пользователей, и во времена, когда малый бизнес по всему миру вынужден уходить онлайн, мы им нужнее чем когда-либо. А это значит, что нам нужно больше талантливых программистов.
Но есть проблема: в компании всегда был длительный процесс отбора — от недели до месяца, и все офлайн. Нам важно не только убедиться в способностях соискателя, но и показать наши преимущества. Все процессы у нас предполагают личное общение. И буквально за пару недель до карантина мы начали продумывать, как все это мигрировать в онлайн.
Цели интервью и что оцениваем
Для начала нужно понимать, чего мы хотим добиться в результате. Вообще не важно, онлайн это или офлайн. В нашем случае цели остались те же, но все равно такие глобальные перемены — хороший повод задуматься об их актуальности. Есть очевидные цели, например, проверить технический уровень. Но есть и другие:
- Дать пользу человеку. Он потратил свое время, и мы хотим дать ему качественный фидбек. В идеале кандидат должен узнать на собеседовании что-то новое.
- Рассказать о нас: кто мы, как работаем, какой продукт делаем, как подходим к разработке и так далее.
- Показать свою экспертизу. Мы хотим находиться в окружении крутых профессионалов, им обычно тоже важно, с кем работать.
Давайте обсудим то, что кажется очевидным. «Проверить технический уровень» — что это значит и как это оценить? Мой совет: разбить это на понятные, максимально изолированные составляющие, выделить, что для вас важно, и оценивать их отдельно.
Вполне возможно, этот набор будет разным для разных позиций. Наш список важных характеристик получился длинным. Например, для фронтенда мы оцениваем:
- ES/TS knowledge. Не надо объяснять весь ’JavaScript: WAT!’, но понимать особенности языка — нужно.
- FED-specific knowledge. Браузерные API, HTML/CSS, оптимизации, сборщики, линтеры и тому подобное.
- Passion for technology. Как человек «смотрит по сторонам», развивается, что изучал, а возможно, применял за пределами рабочей необходимости.
- Deep understanding of his technology. Знает ли соискатель особенности функционала, с которым работает, лучшие практики, экосистему и прочее.
- Algorithmic coding. Не обязательно знать 5 алгоритмов сортировки, но умение решать базовые задачи — обязательно.
- Real life coding. Как человек пишет код, приближенный к реальной жизни.
- Getting things done. Насколько важно добиться результата, выполнить все на максимум, довести дело до конца.
- Fundamentals. Как работает веб в целом, понимание работы с сетью, авторизации, серверной части, оптимизаций и так далее.
- System design and architecture. Умение спроектировать систему end-to-end, понимание преимуществ и недостатков разных решений, стратегий компенсаций этих недостатков.
- Product orientation. Как кандидат думает о продукте, важны ли ему детали того, над чем он работает, и как это будет влиять на пользователей и бизнес.
На самом деле нас интересует не только технический уровень. С этим человеком мы собираемся проводить большую часть своего дня. И крайне важно понимать его личные качества, например: соответствие ценностям Wix, командность, ответственность, отношение к работе и многие другие :)
Этапы
Составив такой список целей, мы понимаем, что добиться этого за одно интервью нереально. Потому разбили этот процесс на ряд этапов. И поскольку цели остались те же, то и структура этапов при переходе на онлайн не поменялась. Изменился процесс, но эти перемены мы разберем чуть позже. Давайте начнем со структуры.
Техническое интервью
Оно длится полтора часа, и его всегда проводят два разработчика — для более объективной картины. Первое интервью — это первое впечатление. Вероятно, это самый важный этап. Тут мы знакомимся со специалистом, рассказываем о компании, инжиниринговой культуре, технологиях и продукте. Узнаем опыт человека, с чем он работал, что считает самым интересным. Разбираемся в технологиях, с которыми кандидат имел опыт, как он их понимает, что знает об их экосистеме, что и зачем применял на практике. Затем мы, как правило, даем пару базовых задачек, чтобы посмотреть знание JS, его особенности и частые паттерны. А также несколько «алгоритмических» задач, чтобы оценить ход мышления: как человек подходит к решению, как может обсудить преимущества и недостатки этого подхода, написать тесты и так далее.
Код-тест
Мы спокойно даем его домой, затем обсуждаем, что и из каких соображений было сделано. У нас есть разные варианты — от двухчасового теста до открытых задач, над которыми можно просидеть выходные. В последних человек может проявить всю свою фантазию. Но цель — проверить, как разработчик пишет код в ± реальной жизни, на что обращает внимание и как расставляет приоритеты. Это может быть как «проект с нуля», так и уже готовый код с тестами, который нужно поправить и добавить функционал. Какое из них давать — мы решаем по результатам интервью. Иногда предлагаем кандидату на выбор — более развернутое задание, где он может проявить фантазию и получить фидбек, или лаконичное и ограниченное во времени.
В зависимости от задания — оцениваем разные критерии. Если это, например, короткое задание, посмотрим, что кандидат успел сделать за эти два часа, что выделил в приоритет. Как писал код и структурировал его, на сколько это решение масштабируемое.
Дизайн-интервью
Это так же полтора часа с двумя разработчиками. Самый творческий этап, на нем мы вместе проектируем какую-то систему: любой продукт, например, ленту в Фейсбуке. У соискателя совершенно развязаны руки, он может выбирать подходы и технологии. Мы же хотим понять, как он мыслит системно. Тут нет правильных и неправильных решений. Все имеет свои преимущества и недостатки, важно, как их взвешивают. Мы смотрим, как человек подходит к проблеме, какие альтернативы предлагает, как оценивает их в контексте конкретного продукта, понимает ли минусы, может ли придумать, как их компенсировать. Как ведет диалог с «менеджерами». В общем, вполне жизненная ситуация: продакт пришел к разработчику с новой фичей.
Знакомство с проектом
Обычно проводит R&D-менеджер и тимлид проекта. Зачастую это занимает не больше получаса. Если мы дошли до этого этапа — отлично, значит, технически мы вполне готовы взять кандидата в Wix. И тут пора определиться с конкретным проектом. Мы понимаем пожелания человека, его сильные и слабые стороны, свои приоритеты. Исходя из этого, можем предложить команду. Нам очень важно, чтобы кандидат и команда подошли друг другу. Будущие менеджеры общаются со специалистом, рассказывают про проект и его особенности. Тут нет никаких критериев. Нам важно, чтобы менеджер сказал: «Да, я хочу этого человека к себе в команду». И кандидат сказал: «Я понимаю, что это за проект, какие у него цели и проблемы. А еще мне нравятся эти ребята, хочу к ним в команду».
HR-интервью
Может показаться непривычным, что оно выделено в полноценный этап на полтора-два часа, тем более в конце рекрутинг-процесса. На этом шаге кандидат знакомится с HR-экспертом будущей команды. Нам очень важно быть максимально уверенными, что это наш человек личностно, понимать, что его истинно драйвит в работе и совпадают ли эти драйверы с целями компании и конкретной команды. Здесь мы не идем на компромисс, независимо от технического уровня специалиста.
Это очень индивидуальный этап. Он строится под каждого отдельного кандидата, в том числе, исходя из фидбеков по предыдущим интервью. И поэтому идет последним. Это не простой рекрутерский скрининг, с которым вы могли встречаться в начале процесса у многих других компаниях. Это один из самых ответственных моментов: тут мы пытаемся понять, подходим ли мы друг другу по ценностям.
Построение процесса онлайн
Переходя на онлайн-собеседования, мы задали себе вопрос: изменилось ли что-то глобально? Нет, мы ищем все тех же людей, нам важно все то же. Цели остаются на месте. Но поменялась форма. Мы начали использовать другие инструменты, к ним нужно привыкнуть. Сам процесс сильно изменился, его нужно отточить и перестроить.
Но помимо сложностей мы обнаружили и явные преимущества. Например, длительность процесса. Пять этапов... Честно говоря, раньше это часто затягивалось, изредка успевали за неделю, но в некоторых случаях могло длиться месяц. Зачастую человеку не так просто найти возможность вырваться со своей текущей работы, потратить время на дорогу в пробках и так далее. Сейчас стало значительно проще, обычно укладываемся в неделю. Возможно, нам выйдет сократить весь процесс до пары дней. Но тут все зависит от кандидата.
Пожалуй, начну с важного — с процесса. Все должны его знать и быть готовыми.
Со стороны компании это значит, что интервьюеры должны понимать, как проводить интервью в новых условиях. Мы регулярно проводили для них тренинги. После перехода в онлайн-режим подготовили несколько доков, в которых с разных сторон описали особенности онлайн-интервью. В частности, пожелания по технической части, описание инструментов... Все, вплоть до рекомендаций включать камеру и выбирать адекватный фон. В коммуникациях вообще не стоит бояться все разжевывать и говорить «очевидные вещи». Лишний раз их проговорив, вы страхуете себя от неприятностей. Нужен список инструментов. Все должно быть установлено, аккаунты зарегистрированы, люди обучены в них работать.
Соискателю должны заранее объяснить, как будет проходить интервью, чтобы не было сюрпризов. Это ему рассказывает HR, приглашая на встречу. Например: хотите видеосвязь — предупредите кандидата, чтобы он не оказался посреди кровати и в пижаме :). Хотите, чтобы человек показывал свой экран, — предупредите, чтобы он успел почистить вкладочки в браузере. В конце концов, расскажите, какой софт нужно установить: Zoom/BlueJeans/Skype... Да и самим интервьюерам не повредит лишний раз напомнить: держать фокус в онлайн-связи сложнее, надо подготовить место, надо быть постоянно активным и включенным.
Для нас очень важно настроить контакт с человеком. Мы не профессора в университете, Помочь максимально раскрыть сильные стороны, а для этого нужно создать доверие. Сделать это по видеосвязи сложно и непривычно, а значит, интервьюерам надо уделить больше внимания этому вопросу во время самого интервью.
Технически мы выбрали для себя BlueJeans для видеосвязи. Уверен, вы знаете аналоги) Для написания кода, решения задачек и прочее — CodePad. Крутой инструмент: тут и удобный collaborate-режим, и поддержки разных языков, и запись сессии. Очень рекомендую.
Сложнее с код-тестом, который мы предпочитали давать при личной встрече, чтобы подсказывать, сразу же проверять, давать обратную связь. Сейчас мы отправляем тест домой. Это значит, надо увеличить разнообразие заданий и убедиться в своевременной сдаче и проверке. На этот момент у нас есть
Качественно проверить задание — довольно затратно по времени. Это может занять несколько часов разработчика и, в отличие от интервью, воспринимается как несрочная задача. Важно сделать так, чтобы это не растянулось. Поэтому на проверку задач разработчики получают инвайт, как и на обычное интервью. Проверяют задания самостоятельно, иногда могут консультироваться, если возникают спорные моменты. Следующий нетривиальный вопрос: как добиться объективности, когда разные специалисты делают разные задания. Критерии проверки должны быть довольно четкими. Продолжаем над этим работать, тут мы еще далеки от идеала.
Краткий итог
Что из этого всего важно вынести:
- Точно знайте, чего вы хотите достичь, стройте процесс, исходя из этих целей. Не делайте что-то только потому, что «все так делают».
- Проанализируйте, как влияет смена формата. Какие появляются критические точки? Продумайте, как их решить, и донесите информацию тем, кто в этом задействован.
- В целом подобные моменты — хороший повод пересмотреть свои процессы. Точно ли все они нужны и работают правильно.
- Коммуникация — с ней всегда что-то идет не так. В онлайн-режиме это еще опаснее. Убедитесь, что вы предусмотрели этот риск. Что все стейкхолдеры понятны и все знают, что от них ожидают.
Оставайтесь здоровы. Ну и без паники, все будет хорошо.