Буткемп в Яндексе, или как разработчику выбрать себе команду
Большие IT-компании часто предлагают прошедшим все собеседования разработчикам выбрать между несколькими командами. Сделать такой выбор непросто: пришедший специалист ещё не знает ни процессов, ни специфики этих команд. Чтобы решить эту проблему и помочь разработчикам, в Яндексе придумали Буткемп — особый способ прохождения испытательного срока. В течение восьми недель новый сотрудник успевает попробовать себя в разных подразделениях и на основе этого опыта сделать осознанный выбор дальнейшего места работы. Руководитель группы Буткемпа Жанна Круглова рассказывает, как организован проект, какие возможности он даёт и как предыдущие участники выбирали команду после Буткемпа.
Через Буткемп прошло уже больше 80 человек. Программа доступна разработчикам всех уровней. Это не стажировка, а полноценная оплачиваемая работа. С каждым участником заключается трудовой договор.
Для специалистов по фронтенду этот формат действует в семи офисах: в Москве, Санкт-Петербурге, Екатеринбурге, Минске, Симферополе, Казани и Иннополисе. Для бэкендеров Буткемп пока доступен только в Москве. Программа будет расширяться на другие офисы и специальности.
Буткемп изнутри
Сроки и число команд
Буткемп, в отличие от традиционного испытательного срока в Яндексе, длится не три месяца, а два. Рабочее время участника распределено по нескольким командам. Три недели в первой команде (из них неделя уходит на «акклиматизацию» в компании), дальше — по две недели еще в двух командах. Последнюю неделю участники проводят по-разному: иногда разработчик успевает поработать в четвёртой команде (это относится только к фронтендерам), иногда задерживается на пару дней в предыдущей команде, чтобы завершить задачу, а иногда он может закончить Буткемп на неделю раньше.
Выбор команды и возможные командировки
Первые две команды для участника выбираем мы, руководители Буткемпа, третью — он сам, опираясь на описания вакансий в нашем внутреннем сервисе. С каждой приглянувшейся командой можно провести получасовое интервью и уточнить детали работы. Если команда находится в нескольких офисах, то участник может поехать в командировку, поработать сначала в одном городе, потом в другом.
Поддержка и руководство
У любого участника есть ментор, а в каждой команде еще есть техлид. Кроме того, на протяжении всего времени разработчика курирует руководитель Буткемпа, к которому можно обращаться с любыми вопросами.
Техлид вводит в курс дела, ставит задачи, проводит ревью кода, знакомит с командой — в общем, делает всё, чтобы участник почувствовал себя частью команды и за пару недель максимально погрузился в её процессы. С руководителем Буткемпа в течение испытательного срока проходит минимум три встречи: на первой обсуждается весь процесс — что и как будет происходить в эти восемь недель, на второй происходит обмен фидбеком и оценка промежуточных результатов, в финале подводятся итоги, обсуждается выбор команды и план действий после окончания Буткемпа.
Система обратной связи
После завершения работы в каждой команде проводится встреча, где команда и участник проговаривают, стоит ли дальше идти вместе. Команда может быть готова оставить у себя разработчика, может отложить это решение или отказать. Если ответ отрицательный, то техлид команды подробно объясняет причину отказа. Таким образом участник сразу узнаёт, над чем ему стоит поработать, и в следующих командах может исправить свои слабые места. Со своей стороны разработчик говорит, что ему понравилось и что не понравилось в работе.
Возможный отказ — со стороны участника или со стороны команды — не означает, что это плохое подразделение или недостаточно квалифицированный разработчик. Это означает лишь, что человек и команда не подошли друг другу. И очень хорошо, что это удаётся выявить на такой ранней стадии. Так одного участника первые две команды не стали приглашать остаться у них. Дело было в том, что в его предыдущей компании не приветствовалась (и даже наказывалась) инициативность. Он не сразу понял, что в Яндексе всё наоборот. Но после очень конструктивного и подробного фидбека, полученного от команд, он сумел изменить принципы своей работы. В итоге обе следующие команды конкурировали за него: каждая стремилась оставить его у себя.
Преимущества для кандидатов
Осознанный выбор команды
Раньше у разработчика в Яндексе было четыре финальных собеседования с разными командами. Выбор нужно было сделать на основании часового разговора. Теперь есть возможность сначала поработать с командами и уже потом определиться.
Возможность попробовать разное
В Яндексе много разных продуктов и команд. Разработчики к нам приходят тоже очень разные. Участник может прийти в любую команду, и в проект промышленного масштаба, и в маленький экспериментальный стартап, познакомиться там с конкретными людьми, изучить изнутри все процессы, попробовать себя в разных технологиях, подходах и задачах. Можно посмотреть на код разных сервисов, увидеть, как в разных частях компании устроена публикация кода, как происходит тестирование, какие есть подходы к планированию задач. Дополнительно можно оценить неформальную сторону: как коллеги общаются, как часто встречаются, какие ценности у команды.
Мощное развитие за короткий срок
Восемь недель проходят в довольно интенсивном режиме, нужно делать много нового в сжатые сроки. В участника вкладываются несколько команд, то, что он узнал в одной, можно затем применить в другой. Все навыки и знания навсегда остаются с ним.
Буткемп включает в себя обучающий курс — можно изучить основные технологии, которые пригодятся в будущем. Речь как про базовые инструменты (системы управления версиями, системы сборки), так и про то, что может не потребоваться прямо сейчас, но что стоит знать каждому разработчику Яндекса. Сюда входят правила разработки, общие библиотеки, инструменты, системы и т. п.
Нетворкинг
На старте участник знакомится с разными сервисами и людьми в Яндексе. В дальнейшем он уже знает, что и как устроено, кто чем занимается, к кому с каким вопросом можно обратиться. Разработчик взаимодействует с большим количеством коллег из разных подразделений, и здорово, когда он с самого начала уже со многими знаком.
Чем отличаются команды в Яндексе
— Процессы. В одних командах сотрудники встречаются каждый день, в других — раз в неделю. У кого-то есть встречи для обмена фидбэком (так называемые ретроспективы), у кого-то нет. Некоторые команды не работают в одном офисе, а распределены по нескольким городам.
— Технологии. Где-то отправкой кода в «боевой» проект занимается отдельная команда, где-то можно опубликовать код самому. Есть команды, в которых проводятся долгие тестирования, а у других тестовая среда устроена гораздо проще. Кто-то пишет инфраструктуру почти с нуля. Кто-то строит фронтенд на фреймворке React, кто-то на БЭМ, кто-то на Vue.js.
— Задачи. В одной команде могут быть задачи на уровне глубокой инфраструктуры, во второй нужно реализовать часть функциональности с нуля, третья непрерывно создаёт быстрые прототипы и проверяет гипотезы, а в четвёртой люди переписывают весь сервис.
— Масштабы. Что вам больше по душе: промышленная разработка или небольшой стартап? В первом случае несколько человек одновременно работают над маленьким кусочком проекта, во втором — один человек может успевать работать над пятью разными проектами.
— Атмосфера. Кто-то спешит по вечерам домой к детям. Кто-то, наоборот, предпочитает активно проводить время с коллегами вне работы. В некоторых командах общаются больше, в некоторых — меньше.
Окончательный выбор
Момент выбора — интересный момент для разработчика. Бывает так, что человеку понравились две или даже все команды и он не знает, как между ними выбрать. Тут начинается самое интересное: разработчик старается понять, что для него действительно важно, много рефлексирует.
Кто-то составляет списки критериев для оценки команды, в которых может быть что угодно: локация, руководитель, процессы, сложность задач, условия развития лично для него, наличие подходящего ему ментора или задач. Разработчик может осознать, что продукт для него важнее технологий, или наоборот, что ему хочется развиваться до уровня архитектора. Буткемп служит поводом проанализировать свои цели и желания.
У нас был разработчик, который мучительно выбирал между двумя командами и в последние дни работы в последней команде попал на ретроспективу. Это встреча, которая проводится после завершения крупного этапа проекта, с разбором ошибок и обсуждением того, как их избежать. И он сказал: «Я был поражён тем, как глубоко они анализируют свои процессы, поступки, решения и какие выводы делают. Меня настолько удивил такой процесс роста, что я понял, что хочу быть именно с этой командой».
Или другой пример: на собеседованиях участник говорил, что хочет делать проект на многомиллионную аудиторию, а после Буткемпа остался в небольшом внутреннем стартапе. С тех пор прошёл уже год, разработчик по-прежнему в этой команде и доволен своим выбором.