Как стать автором
Обновить

Этапы погружения junior-разработчика

Время на прочтение4 мин
Количество просмотров24K

Всем привет! Меня зовут Иван Сёмин, я руковожу несколькими командами разработки в компании Домклик. На данный момент в моём подчинении 28 человек, часть из которых приходила на junior-позицию. Хочу поделиться своим видением погружения новых сотрудников в процессы компании и коллектив, и рассказать о способах развития разработчиков до middle-уровня в крупных командах.

Кто такой junior

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

Для веб-программирования хочется увидеть у кандидата знание асинхронного программирования (и чем оно отличается от синхронного) и основ SQL. Также из-за специфики развёртывания веб-сервисов нужны хотя бы базовые навыки обращения с Linux-системами и знание Docker/Docker-compose.

Большим плюсом для работодателя будет наличие портфолио из pet-проектов на github (разработанных с нуля, а не выполненных в рамках какого-то курса под диктовку лектора).

Специфика нашей компании и команд

В нашей компании сложилась хорошая культура разработки, всегда работает принцип «попроси — и тебе помогут». Благодаря этому новички быстрее адаптируются, а многие сотрудники работают на одном месте дольше стандартных для рынка двух-трёх лет. Компания заинтересована в разнопланово развитых инженерах: кроме основного навыка (backend/frontend) от сотрудника ожидают развитие навыков DevOPs (чтобы понимать, как код попадает в тестовые и production-среды) и баз данных (потому что ряд сервисов работает под высокой нагрузкой и нужно представлять себе дальнейшие оптимизации). Плюсом будет изучение (хотя бы на базовом уровне) frontend-а в дополнение к backend-у (или наоборот) — это позволит лучше понимать своих коллег на «другой» стороне разработки, а также даст возможность закрывать ряд задач бизнеса «под ключ».

Перейдём к этапам погружения.

Этап первый

В свой первый рабочий день разработчик подписывает документы в HR, получает технику (мы используем Macbook Pro) и проходит базовый onboarding со своим руководителем. Во время адаптации мы кратко рассказываем о процессах в компании, о техническом инструментарии, корпоративном портале. Дальше идёт погружение в бизнес-часть выбранной разработчиком команды. Также очень важно, чтобы в свой первый рабочий день новый сотрудник познакомился со своей командой и получил первую задачу, с которой начнётся его техническое погружение в проект. Наставник новичка (опытный сотрудник из команды, который будет отвечать на все технические вопросы во время испытательного срока) поможет локально поднять проект, подключиться к тестовым стендам и базам.

Этап второй

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

Этап третий

Примерно в середине испытательного срока нового сотрудника знакомят со всеми обязанностями релиз-инженера (эту роль может исполнять любой разработчик из команды, на неё назначают при планировании нового спринта). Первые самостоятельные релизы проходят под чутким контролем наставника. Также в ряде команд есть ротируемая роль support-инженера: это разработчик, который решает все появляющиеся в течение дня тикеты от пользователей. Большинство тикетов будет сложно разобрать самостоятельно (если инженер не знаком с этой частью системы), поэтому наставник подскажет, к кому обратиться за помощью. Благодаря этому подходу хорошо получается делиться знаниями и взаимодействовать со всеми членами команды.

Этап четвёртый

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

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

Заключение

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

Теги:
Хабы:
Всего голосов 49: ↑46 и ↓3+48
Комментарии8

Публикации

Информация

Сайт
domclick.ru
Дата регистрации
Дата основания
Численность
501–1 000 человек
Местоположение
Россия
Представитель
Dangorche