Всем привет! Меня зовут Катя Юдина, и я IT-рекрутмент менеджер в Авито. В этой статье расскажу, почему мы не боимся нанимать джуниоров, как мы к этому пришли и какую пользу мы с ними приносим друг другу. Статья будет полезна компаниям, которые хотят нанимать джуниоров, но пока боятся это сделать, а также HR'ам, которые готовы продрайвить процесс пополнения кадрового резерва.
Подбор младших разработчиков и внедрение стажерских программ — тема не новая. Вокруг неё много предостережений, лайфхаков и готовых кейсов. Каждая (ну или почти каждая) более-менее большая IT-компания стремится привлекать начинающих специалистов. Теперь пришло время и нам рассказать о нашей практике.
С 2015 количество сотрудников Авито растет на ~20% год к году. Рано или поздно мы должны были столкнуться с проблемами найма. Рынок не успевает растить мидлов и сеньоров, бизнесу они нужны «здесь и сейчас», а нам важно оставаться эффективными и оперативными в закрытии вакансий, так, чтобы не страдали качество и скорость разработки.
Виталий Леонов, директор по разработке B2B: «Мы не нанимали джуниоров лет шесть-семь с момента основания компании в 2007 году. Потом потихоньку стали их брать, но это были скорее исключения из правил. Это получилась очень хорошая история и для новичков, и для наших разработчиков. Они выступали в роли наставников, обучали джунов, а новички приходили в большую компанию на стартовые позиции и на ряде задач обучались под надзором старших коллег. И мы решили эту практику продолжать и развивать».
Подготовка
В подборе мы давно не ограничиваем себя Москвой, ищем кандидатов в разных городах РФ и других странах. (О программе релокации можно почитать тут). Однако проблему подбора мидлов и сеньоров релокация до конца не решает: не все к ней готовы (кому-то не нравится Москва, кто-то привык работать удаленно или part-time). Тогда мы решили пойти в сторону найма джуниоров и запуска стажерской программы в техническом департаменте Авито.
В первую очередь мы задали себе несколько простых вопросов.
- Есть ли действительно потребность в джуниорах?
- Какие задачи они смогут решать?
- Есть ли у нас ресурсы (как материальные, так и время наставников) на их развитие?
- Как будет выглядеть их развитие в компании через полгода-год?
Собрав информацию, мы поняли, что бизнес-потребность есть, задач у нас много и мы точно понимаем, как будем заниматься развитием джуниоров. Каждый джун и стажёр, приходя в Авито, знает, как может выглядеть его карьера в перспективе.
Дальше нужно было убедить менеджеров в том, что время, которое мы тратим на поиск готовых «единорогов», мы сможем куда более эффективно проинвестировать в обучение младших коллег и через полгода-год у нас появятся уже самостоятельные инженеры.
Мне повезло работать в команде, которая готова меняться и смотреть более широко на различные вопросы, в том числе и на вопросы найма. Да, при внедрении таких ставок надо быть готовым к тому, что не все будут «за». Убедить коллег поможет чётко сформированный план по работе с начинающими специалистами, показ реальных кейсов, когда нанять джуниора — это плюс, освещение всех положительных сторон этой программы.
И конечно, мы пообещали техлидам, что будем набирать только самых хардовых джуниоров, в которых увидим потенциал для развития. Подбор у нас — это двухсторонний процесс, в который вовлечены и HR, и инженеры.
Запуск
Пришло время определить портрет джуниора, решить, под какие задачи мы будем их набирать и описать, как будет проходить их адаптация. Кто такой джуниор для нас? Это кандидат, который сможет показать развитие в перспективе 6-12 месяцев. Это человек, который разделяет наши ценности (подробнее о них — здесь), который может и хочет учиться.
Виталий Леонов, директор по разработке B2B: «Мы хотим видеть у себя тех, кто хорошо знает теорию, в идеале тех, кто уже попробовал себя в коммерческой разработке. Но основное требование — это хорошие технические знания. А всем процессам и практическим навыкам мы их научим».
Процесс подбора джуниор-разработчика не сильно отличается от интервью на уровень мидл. У них мы так же проверяем знания алгоритмов, архитектуры и платформы. У стажёров на первом этапе появляется техническое задание (потому что кандидату может быть ещё нечего показывать). Можем дать задачку на разработку API. Мы смотрим, как человек подойдет к делу, как оформит README.md и прочее. Далее идет HR-интервью. Нам нужно понять, будет ли именно этому кандидату комфортно работать в этой команде и с этим наставником. Иногда бывает, что кандидат не подходит под продуктовую разработку в нашей компании и есть смысл направить его в платформенную команду, или наоборот. После HR-интервью проводим финальную встречу с техлидом или наставником. Она даёт возможность более детально погрузиться в технические аспекты и понять свою зону ответственности. После успешного прохождения этапов интервью кандидат получает оффер и в случае положительного решения выходит к нам в компанию.
Адаптация
Виталий Леонов, директор по разработке B2B: «Когда я только начал работать в моей первой компании, мне очень не хватало наставника, человека, который показывал бы мои ошибки, подсказывал пути развития, говорил, как сделать правильнее и быстрее. Я по факту был единственным разработчиком и учился на собственных ошибках. Это было не очень хорошо: я долго развивался, а компания долго растила хорошего разработчика. Если бы был человек, который регулярно бы со мной занимался, смотрел на ошибки и помогал, подсказывал паттерны и подходы, было бы сильно лучше».
За каждым начинающим коллегой закрепляется наставник. Это человек, которому можно и нужно задавать разные вопросы и от которого ты всегда получишь ответ. При выборе наставника мы обращаем внимание, сколько у него действительно будет времени на джуниора/стажера и насколько он сможет правильно и грамотно начать процесс обучения.
Старший коллега ставит задачи. На начальном этапе джуниор может начать с разбора багов, далее постепенно идет погружение в разработку продуктовых задач. Наставник отслеживает их выполнение, проводит код-ревью или участвует в парном программировании. Также в нашей компании распространена практика 1:1, которая дает нам возможность держать руку на пульсе и максимально оперативно решать различные вопросы.
Я, как HR, смотрю за процессом адаптации сотрудника, руководитель — за процессом развития и «погружения» в задачи. При необходимости мы ставим индивидуальный план развития на время испытательного срока и после его завершения определяем области для дальнейшего развития.
Выводы
Какие выводы мы сделали по итогам работы программы?
- Джуниор обычно не может работать автономно и самостоятельно решать все рабочие задачи. Наставники должны уделять им достаточно времени для быстрой адаптации. Это нужно планировать с техлидами и командой.
- Нужно быть готовым к тому, что младшие инженеры будут делать ошибки. И это нормально.
Виталий Леонов, директор по разработке B2B: «Ошибки допускают все — и джуны, и мидлы, и сеньоры. Но ошибки быстро находятся или не допускаются вовсе — у нас хорошо выстроен процесс тестирования, все продукты покрыты автотестами, есть code review. Ну и, конечно, у каждого джуна есть наставник, который тоже смотрит все коммиты».
Программа подбора начинающих специалистов дала нам возможность решить сразу несколько задач.
- Растить кадровый резерв лояльных сотрудников, которые будут подходить под наш стек.
- Развивать у наших старших сотрудников навыки управления командой и её развития.
- Прививать любовь к современным технологиям и качественной разработке молодым специалистам.
И это был тот самый win-win. Вот отзывы моих коллег, которые пришли в Авито на позиции джуниоров и стажёров.
Давидэ Згьятти, младший бэкенд-разработчик: «Первое время вообще не понимал что происходит, в меня входила тонна полезной информации, но наставник и команда меня сильно поддерживали. За счет этого через две недели я уже начал работать с бэклогом, а через три месяца постепенно влился в продуктовую разработку. За полгода стажировки получил безмерный объем опыта и всегда старался приложить максимум усилий, чтобы вынести из программы всё и остаться в команде на постоянной основе. Я пришёл в Авито стажёром, сейчас уже джуниор».
Александр Сивцов, фронтенд-разработчик: «Я работаю в Авито уже чуть больше года. Приходил я джуном, сейчас уже вырос до мидла. Это было очень интересное и насыщенное событиями время. Если говорить о выполняемых задачах, могу сказать, что правил баги (как и все недавно пришедшие) я не долго и получил первую полноценную продуктовую задачу в разработку в первый месяц работы.
Джуном я поучаствовал в крупном запуске обновления тарифов. Кроме того, ребятами в команде приветствуются, поддерживаются и развиваются разные инициативы, которые я привносил.
Ребята в команде стараются помочь не только в развитии хард-скилов, но и подтянуть софты. Регулярные встречи с руководителем помогают в этом очень сильно (раньше у меня такого опыта не было и мне оставалось только догадываться, где я проседаю или на что сейчас стоит обратить внимание).
Работать тут очень комфортно, куча разных возможностей развиваться как внутри компании, посещая всякие тренинги, так и вне её: начиная от поездок на конференции, заканчивая всякими плюшками в компаниях-партнерах. Задачи в основном интересные, нежели рутинные. Могу сказать, что в Авито и джунам доверяют сложные и интересные задачи».
Дима Афанасьев, бэкенд-разработчик: «Я знал, что хочу попасть в большую компанию, и с Авито это была любовь с первого взгляда: прочитал почти весь блог на Хабре, смотрел доклады, ковырял гитхаб avito-tech. Понравилось всё: атмосфера, технологии (== стек), подход к решению проблем, культура компании, офис. Знал, что хочу попасть в Авито и решил, что не буду пробовать что-то ещё, пока не узнаю точно, получилось ли.
Я ожидал, что задачи будут сложные. Если делать сайт для трёх человек, то он может работать час в день, и пользователи будут довольны. Если на 30 миллионов человек, то простая необходимость хранения данных становится огромной и захватывающей проблемой. Ожидания оправдались, не могу представить ситуацию, в которой я учился бы быстрее.
Сейчас меня уже повысили до мидла. В целом я стал увереннее и меньше валидирую свои решения, это помогает делать штуки быстрее. Ведь в любой команде скорость доставки очень важна, и я чаще постфактум сообщаю о всех принятых решениях в моей зоне ответственности (сейчас это два сервиса). Обсуждений стало меньше, но и сложность обсуждаемого в целом выросла, и проблемы стали менее очевидными. Но ещё я хочу сказать вот что: хорошие решения можно продвигать на любом уровне, вне зависимости от должности».
Сергей Баранов, фронтенд-разработчик: «Так получилось, что на джуниора в Авито я пришел с более высокой позиции, но из небольшой компании. Я всегда пытался сначала впитать побольше информации, а потом начинать что-либо делать. Здесь же пришлось начинать делать небольшие задачи, просто чтобы разобраться в том, какие продукты существуют и как взаимодействуют между собой. На то, чтобы полностью разобраться во всем, чем занимается мой юнит, ушло около полугода, но к этому моменту я уже вовсю самостоятельно делал задачи среднего объема без какой-либо помощи. Отдельно хочется отметить, что вне зависимости от должности ты полноценный член команды, со всей ответственностью, доверием тебе как профессионалу. Все взаимодействия происходят абсолютно на равных. Также у меня был план развития, выработанный совместно с моим руководителем и я прекрасно знал, что мне надо делать для развития и повышения. Сейчас я уже middle разработчик и отвечаю за весь фронтенд в моей команде. Цели стали другими, прибавилось ответственности, как и прибавилось возможностей для дальнейшего роста».
Спустя почти год мы видим, какую пользу ребята приносят бизнесу и конкретным командам. За это время несколько джуниоров стали мидлами. А некоторые стажеры показали отличные результаты и пополнили ряды джуниоров — они пишут код и решают сложные технические задачи, у них горят глаза, а мы предоставляем им профессиональное развитие, отличную атмосферу внутри и всячески поддерживаем в их начинаниях.
Автор: KatyaYu