Deep Dive — новая программа стажировки в «Яндекс.Маркете» по системе bootcamp

Официальной датой запуска буткемпа для стажеров Deep Dive можно считать 17 апреля 2019 года, когда к нам вышла первая группа стажёров. На сегодняшний день стажировку в Deep Dive завершили около 40 человек.

В закладки

Две трети из них получили работу в «Маркете» и других подразделениях «Яндекса». Около 15 человек были студентами младших курсов и после окончания Deep Dive вернулись к учёбе в вузах. Ещё 15 стажёров проходят нашу программу сейчас.

Меня зовут Дмитрий, я руковожу техническими проектными менеджерами «Яндекс.Маркета», а с 2019 года также являюсь руководителем Deep Dive.

В этой статье я расскажу о том, как устроен Deep Dive, опишу ключевые процессы и то, как они помогают нам обучать и нанимать специалистов с лучшим потенциалом на рынке. Я надеюсь, эта статья будет полезна широкому кругу читателей: от студентов вузов, определяющихся с местом стажировки, до менеджеров по работе с персоналом и их руководителей.

Цели и задачи Deep Dive

Для начала представим себе классическую программу стажировки. Обычно команда разработчиков сама определяет требования к кандидату и принимает решение о его найме. После выхода стажёра она также самостоятельно следит за его адаптацией и погружением в рабочие задачи и технологии.

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

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

Одной из ключевых задач Deep Dive является трудоустройство успешных стажёров на постоянные позиции в компании.

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

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

Как работает Deep Dive

Сейчас мы нанимаем стажёров в московский кампус компании по трём направлениям: бэкенд- (С++, Java), фронтенд- (JavaScript) и мобильная (Android, iOS) разработка.

Продумывая концепцию Deep Dive, мы учли как наш собственный опыт классических стажировок, так и опыт стажировок в других подразделениях «Яндекса», и решили организовать буткемп по принципу обучения в западной высшей школе. Сначала идут общие дисциплины, затем основная специализация — major, и вторая — minor.

Отбор кандидатов

Чтобы попасть в нашу программу, кандидату нужно сначала решить несколько онлайн-задач в «Яндекс.Контесте». Если кандидат успешно проходит задание, с ним связывается рекрутёр и предлагает пройти две технические секции на написание кода и знание алгоритмов — очно или по скайпу.

После этого остаётся лишь финальный этап — интервью с администратором Deep Dive. Он рассказывает кандидату о формате нашей стажёрской программы и отвечает на вопросы.

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

Начало стажировки и тренировочное задание

Единым днём выхода стажёров в «Яндексе» является среда. Всё начинается с традиционного welcome-мероприятия, которое организует HR-департамент «Яндекса». После этого мы проводим небольшую экскурсию по кампусу для наших стажёров.

Затем администратор Deep Dive рассказывает нашим будущим коллегам про основные положения программы, её этапы, сроки и знакомит стажёров с их наставниками на первый этап стажировки — мастерами Deep Dive.

Первый день пролетает незаметно, а со следующего дня стартует 10-дневный марафон погружения в технологический стек и инженерные практики компании.

Для каждого направления — С++, Java, JS, мобильной разработки — существует своя адаптационная программа, но в целом она сводится к тому, что каждый стажёр должен написать и довести до рабочего состояния небольшой сервис.

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

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

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

За каждой группой из нескольких человек на адаптационном этапе закреплён один ментор из пула мастеров Deep Dive. Все 10 дней наши сотрудники сопровождают свою команду новобранцев: отвечают на вопросы, рассказывают о технологиях, инструментах для выполнения тренировочного задания и о базовых навыках, необходимых для работы в производственных командах.

Стажировка в первой команде

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

Они также поработали с базовыми технологиями и фреймворками под капотом наших ключевых продуктов. Бэкенд-разработчики уже могут развернуть небольшой сервис во внутреннем облаке «Яндекса» и имеют базовое представление о системе мониторингов за здоровьем онлайн-сервисов.

А фронтендеры на базовом уровне понимают, как интегрироваться с некоторыми сервисами из экосистемы «Яндекса» через API. Теперь начинается следующий этап: 7-недельная стажировка в производственной команде по основной специализации.

Первую команду стажёру всегда подбираем мы. Как правило, недостатка в предложениях со стороны команд у нас нет. 15–20 групп разработки в «Яндекс.Маркете», в маркетплейсе «Беру», в сервисе «Суперчек», в отделах подготовки контента и инфраструктуры и в отделе производства продукта для магазинов готовы принимать новых стажёров практически постоянно.

У каждой команды разработки существует внутренний рейтинг, на который мы ориентируемся, когда планируем распределение стажёров по командам. Этот рейтинг определяется количеством открытых вакансий для младших специалистов, текущим соотношением senior-, middle- и junior-разработчиков в отделах, под управлением которых находятся данные команды.

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

Промежуточное интервью

После стажировки в первой команде мы обычно проводим промежуточное интервью с каждым стажёром Deep Dive: собираем обратную связь о программе, командах, которые принимают у себя наших стажёров, и о том, какого типа задачи стажёрам ближе.

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

Стажировка во второй команде

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

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

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

Альтернативные схемы стажировок в Deep Dive

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

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

В другом варианте в одном из отделов был создан специальный контур для стажёров Deep Dive, где они оставались все три месяца. «Контурами» мы называем команды, которые развивают какую-то одну фичу в сервисе или улучшают какой-то один KPI.

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

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

Мы пришли к выводу, что исходный формат с двумя последовательными командами отлично работает и органично встраивается в производственные процессы лишь тогда, когда число стажирующихся в Deep Dive не превышает пары десятков человек.

Если же стажёров 30 человек и больше, то экономически выгоднее становится подключать к основному формату альтернативные модели.

Рейтинговая система оценок и другая бюрократия Deep Dive

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

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

Эту работу мы организовали с помощью трекера задач «Яндекса» — «Стартрека». Для каждого стажёра мы заводим тикет с «личным делом» в специальной очереди трекера задач. В полях тикета фиксируется срок стажировки и информация о том, в каких командах будет стажёр, кто будет его наставником.

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

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

Первую оценку и отзыв стажёр получает от мастера Deep Dive после адаптации. Затем наставники из первой и второй команды стажёра оценивают его компетенции каждые две недели. Все промежуточные баллы суммируются и формируют рейтинг стажёра.

Если стажёр набирает определённую сумму баллов, он попадает в пул перспективных кандидатов в младшие специалисты — junior pool, и мы начинаем подбирать ему команду для работы на полную ставку. Чем раньше стажёр попадёт в junior pool, тем быстрее начнётся подбор.

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

Подбор вакансий на полную ставку

На последнем этапе стажировки у нас уже есть достаточно информации о стажёрах, чтобы подобрать им команду для работы на полную ставку. Сначала мы рассматриваем вакансии в тех командах, в которых они проходили стажировку.

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

Наряду с подбором команды внутри «Яндекс.Маркета», после первого этапа стажировки мы также запускаем цикл собеседований в команды разработки «Яндекс.Поиска» и в другие бизнес-юниты «Яндекса».

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

Итоги и планы

Самый лучший наш результат — это 20 новых специалистов, которые пополнили ряды «Маркета» и других подразделений «Яндекса». Каждый второй стажёр, прошедший программу Deep Dive, получил работу на полную ставку в группе компаний «Яндекс».

40% наших выпускников вернулись в вузы для продолжения учёбы, но команды, в которых они проходили стажировки, были готовы предложить им работу на постоянной основе. Этих ребят мы хорошо помним и будем рады видеть их в следующих Deep Dive или в качестве кандидатов на full-time-вакансии.

Кроме того, 10-дневный адаптационный этап доказал свою жизнеспособность в рамках Deep Dive, и у нас есть планы использовать его при адаптации специалистов, выходящих к нам на полную ставку.

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

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

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

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

В этом году нам удалось организовать большую встречу стажёров c CTO «Яндекс.Маркета». Общение проходило в свободном формате. Ребята задавали совершенно разные вопросы, как чисто бытовые о текущей стажировке, так и более общие, связанные с построением карьеры. Мы планируем регулярно проводить такие встречи в будущем, в том числе и с другими руководителями «Маркета».

В завершение могу сказать, что создание таких структур, как Deep Dive, решает не только тактические задачи, связанные с сиюминутными кадровыми вопросами, но и позволяет в целом переосмыслить то, как происходит развитие сотрудников внутри компании.

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

Материал опубликован пользователем.
Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

Написать
{ "author_name": "Дмитрий Борискин", "author_type": "self", "tags": [], "comments": 0, "likes": 10, "favorites": 22, "is_advertisement": false, "subsite_label": "hr", "id": 98946, "is_wide": false, "is_ugc": true, "date": "Tue, 24 Dec 2019 19:53:34 +0300", "is_special": false }
Создать объявление на vc.ru
Еда
4 лайфхака для повышения продаж маржинальных блюд в ресторане
Эффект ожидания в сочетании с подставными блюдами может творить чудеса. Специалисты системы автоматизации ресторана…
0
{ "id": 98946, "author_id": 419086, "diff_limit": 1000, "urls": {"diff":"\/comments\/98946\/get","add":"\/comments\/98946\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/98946"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 199121, "last_count_and_date": null }
Комментариев нет
Популярные
По порядку
{ "page_type": "article" }

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "Article Branding", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "cfovx", "p2": "glug" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "bscsh", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-1104503429", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=bugf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Баннер в ленте на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudx", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byzqf", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvc" } } }, { "id": 19, "disable": true, "label": "Тизер на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "p1": "cbltd", "p2": "gazs" } } }, { "id": 20, "label": "Кнопка в сайдбаре", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "cgxmr", "p2": "gnwc" } } } ] { "page_type": "default" }