Всем привет! Я Сергей, backend-разработчик в Банки.ру. За последние 15 лет я прошёл онбординг в разных компаниях — от SEO и e-commerce до финтеха. Каждый раз сталкивался с одной и той же проблемой: даже с опытом первые недели уходят не на задачи, а на попытки понять, как устроена система. В этой статье я объясню, почему так происходит, и покажу, какие подходы помогают ускорить онбординг — как для разработчика, так и для тимлида.
Несмотря на опыт, первые недели ощущаются так, будто я снова джун. В какой-то момент ловлю себя на мысли: «Каждый новый проект — как новый сервер в MMORPG. Неважно, сколько у меня часов на аккаунте — я снова 1 уровень». Сначала это бьёт по самолюбию. Кажется, что я должен схватывать всё на лету. Но проблема не в уровне знаний. За последние годы онбординг изменился — и старые стратегии «просто разобраться в коде» больше не работают.
Как было раньше
Лет 15 назад онбординг был проще. Я работал над сайтами, интернет-магазинами, SEO-проектами. Обычно всё сводилось к одной схеме: дают доступ (FTP или SSH), показывают, как запустить проект, и задача — разобраться в коде. Архитектура была монолитной, бизнес-логика — в одном месте. Чтобы начать приносить пользу, достаточно было понять структуру и аккуратно встроиться в неё.
Потом появились code review, pull request, CI/CD. Это добавило слои: нужно было понимать, как изменения проходят в продакшен. Доступы стали разграничёнными — сначала только к коду, остальное — по мере необходимости. Но система оставалась прозрачной: можно было быстро проследить путь от запроса до результата.
Что изменилось сейчас
Сейчас ситуация изменилась кардинально. Микросервисы, распределённые системы, сложные домены — онбординг перестал быть задачей «разобраться в коде». Код больше не даёт полной картины. Он размазан по десяткам сервисов и локально выглядит корректно. Проблема часто в другом сервисе, на границе между ними, или в том, что текущий сервис — просто прокси.
Самое неожиданное: главная сложность — не технологии. Языки, фреймворки, инструменты — к ним адаптироваться легко. Основная трудность — контекст. Где на самом деле логика? За что отвечает каждый сервис? Откуда данные и куда уходят? Что — источник истины, а что — прокси?
Например, мне нужно было обновить библиотеку и добавить переменные для деплоя через k8s/ansible. Задача простая: найти конфиги, прописать значения, задеплоить. Но часть переменных — в одном репозитории, часть — в другом сервисе, часть — формируется в CI, часть — переопределяется в Kubernetes. Изнутри одного сервиса картина не складывается. Только когда собираешь цепочку целиком — всё становится понятно.
Я понял: вместо «разбора кода» я собираю в голове карту системы. Не только техническую. В неё входят сервисы, домены, процессы, чаты, зоны ответственности — по сути, модель того, как живёт продукт. От скорости сборки этой карты и зависит онбординг.
Поэтому даже сильные разработчики могут «тормозить» в первые недели. Дело не в навыках, а в перегрузке контекстом: слишком много новых сущностей, связей, терминов. Плюс внутреннее давление: «Я же не новичок!» — из-за чего копаешь дольше, вместо того чтобы просто уточнить.
Пример: нужно было протестировать изменения, но на тестовом стенде — ошибка CORS. Без контекста можно копаться в настройках, прокси, заголовках — часами. Я спросил тимлида: оказалось, на стенде включена дополнительная защита. Проблема решена за минуты. Разница очевидна: без контекста простая ошибка — часы, с контекстом — минуты.
Что помогает нарисовать карту системы
Успех онбординга зависит от прозрачности процессов, коммуникаций и наличия, к кому обратиться. Но и сам разработчик может ускорить процесс. Два ключевых инструмента — code review и ИИ.
Первая — code review
Когда я вижу, какие правки оставляют, какие решения обсуждают, какие паттерны считаются нормой — я встраиваюсь в команду быстрее, чем если бы просто читал код.
Особенно полезно, когда в ревью участвуют не только разработчики, но и тимлиды или коллеги из соседних сервисов. Например, получил комментарий: «Лучше не ходить напрямую в этот сервис. Он не источник и может вернуть устаревшие данные. Есть отдельный сервис для этого кейса.» Пришлось переработать решение, но зато стало понятно, где источник данных и как устроена система.
Ещё пример: нужно было отдать клиенту данные. Я получил их напрямую и обработал у себя. Решение работало, но дублировало логику. В ревью написали: «Здесь дублирование. Лучше доработать сервис, чем переносить обработку сюда.»
Опять — пересобрал решение, но зато понял, где должна жить логика и как выстраиваются границы. Комментарии были не про синтаксис, а про архитектуру. Именно поэтому code review ускоряет онбординг сильнее, чем любые другие правки.
Вторая — ИИ
ИИ — второй инструмент, который ускоряет онбординг. Я использую его на всех этапах: от анализа задач до написания кода и ревью.
- Быстрый навигатор по команде. В первые дни анализировал чаты через ИИ: какие вопросы где решаются, к кому идти. За пару запросов получил карту коммуникаций.
- Разбор участников задачи. Через ИИ анализировал описание и логи, чтобы сформировать гипотезы: какие сервисы участвуют, где источник данных, какие зависимости. Это помогает не начинать «вслепую».
- Разбор комментариев из ревью. Проверял правки через ИИ, чтобы выделить архитектурные принципы: где источник данных, где живёт логика, какие границы у сервисов. Так отдельные замечания складываются в цельную картину.
Чаще всего работаю с ИИ через CLI — рядом с кодом и логами. В UI переключаюсь, когда нужно разобрать запросы с фронта. ИИ не заменяет понимание. Он ускоряет онбординг только при базовой карте системы. Без неё он может направить в неправильную сторону.
Взгляд со стороны тимлида
С точки зрения тимлида онбординг часто кажется второстепенной задачей: выдали доступы, скинули ссылку на документацию — и «разберётся сам».
В простых системах это работает. В современных распределённых архитектурах — нет. В командах, где онбординг выстроен, к нему относятся как к части продукта:
- Понятно, с чего начать.
- Есть путь от первого дня до первых задач.
- Заранее сняты основные точки застревания.
Разница очевидна: в одном случае разработчик тратит недели на «сбор картинки», в другом — приносит пользу уже в первые дни. Без управления онбордингом энергия уходит не на задачи, а на борьбу с неопределённостью.
В одном проекте с первого дня мне назначили человека — точку опоры. Он помог разобраться в базовых вещах, показал, куда смотреть. Тимлид провёл вводный созвон: объяснил архитектуру, дал ссылки на вики, обозначил ключевые сервисы. Доступы выдавали по мере необходимости. Уже в первые дни была задача, покрывающая полный цикл — от кода до продакшена. Благодаря этому быстро стало понятно, как устроена система.
Качество онбординга слабо зависит от размера компании. В маленьких командах он часто не формализован — держится на личной вовлечённости. В крупных — процессы есть, но они могут не работать как единая система: онбординг сильно различается от команды к команде.
Ключевую роль играют люди — те, кто берёт ответственность и реально помогает новому разработчику встроиться.
В таких командах онбординг эффективен, когда:
- Информацию дают дозированно.
- Первую задачу выдают быстро — чтобы пройти полный цикл.
- Архитектуру объясняют на примерах, а не только через документацию.
- Есть точка опоры — бадди или опытный разработчик.
Как пройти онбординг: чек-лист из 9 пунктов для разработчика
В каждой новой компании мы начинаем с нуля. Опыт не даёт готовых ответов, но помогает задавать правильные вопросы и быстрее собирать карту системы. Именно это и отличает быстрый онбординг от долгого.
Как в MMORPG: вопрос не в уровне, а в «механиках прокачки». Ниже — практические шаги, которые реально ускоряют онбординг.
1/9 — Сначала посмотрите, как система ведёт себя в реальности.
Не начинайте с кода и документации. Сначала изучите:
• логи — что реально происходит,
• CI/CD — как изменения доходят до продакшена,
• runtime — как система работает в реальных сценариях.
Без этого картина будет неполной.
2/9 — Соберите карту системы, потом идите в код.
Код без контекста редко даёт понимание. На старте зафиксируйте:
• какие есть домены,
• какие сервисы участвуют,
• где источник данных, а где прокси,
• как проходит пользовательский сценарий от начала до конца.
После этого код станет осмысленнее.
3/9 — Задавайте вопросы коллегам раньше, чем кажется нужным.
Не ждите, пока всё застрянет. Достаточно уточнить:
• где источник данных,
• сервис обрабатывает данные или просто проксирует.
Это быстрее корректирует модель системы, чем долгий разбор.
4/9 — Code review — один из самых быстрых способов учиться.
Используйте его не только как этап сдачи задачи. Смотрите:
• какие правки оставляют,
• где останавливают,
• какие решения считаются нормой.
Так вы быстрее поймёте, как в команде принято писать код.
5/9 — Проверяйте гипотезы через runtime.
Документация и код не всегда отражают реальное поведение. Ориентируйтесь на:
• реальные запросы,
• реальные ошибки,
• реальные пользовательские сценарии.
Там видно, как система работает на практике.
6/9 — ИИ — инструмент, а не источник истины.
Он полезен, когда уже есть базовое понимание:
• помогает проверять гипотезы,
• ускоряет разбор кода.
Без контекста ИИ может дать правдоподобные, но неверные объяснения.
7/9 — Не пытайтесь понять всю систему сразу.
Эффективнее сначала собрать связную картину хотя бы одного сценария. Понимание одного полного пути полезнее, чем поверхностное знание всей системы.
8/9 — Ограничьте время на самостоятельный поиск.
Если гипотеза не подтверждается за разумное время — уточните контекст у коллег. Нужный ответ часто можно получить быстрее, чем дойти до него самому.
9/9 — Найдите носителя контекста.
Это может быть тимлид, опытный разработчик или любой, кто хорошо понимает систему. Наличие такого человека на старте резко сокращает время онбординга.
Как это выглядит со стороны команды
Большинство проблем онбординга — не разработчика, а системы. Если:
- нет понятной первой задачи — человек не видит, как работает система,
- нет объяснения архитектуры — не может собрать карту,
- нет точки входа для вопросов — тратит время на догадки.
За 15 лет онбординг эволюционировал из простого в сложный многослойный процесс. Главный парадокс: с ростом опыта он не становится проще. Он становится только быстрее — если к нему правильно подходить.