Когда я впервые стал наставником для стажёров и джунов-разработчика, я был уверен, что моя задача — просто объяснять, как делать правильно и как неправильно. Достаточно показать лучшие практики, и через пару месяцев новичок превратится в самостоятельного бойца. Реальность, как это часто бывает, оказалась сложнее.
Кто-то из подопечных терял интерес, когда я давал слишком много свободы. Другие, наоборот, не развивались, потому что я разжёвывал для них задачи и теорию. Один из подопечных в идеале знал теорию, но панически боялся коммитить в основную ветку и раскатываться в прод. Другой, полный энтузиазма, писал слишком много кода, который приходилось выбрасывать и переписывать с нуля.
Серебрянной пули не существует, как и универсального подхода к управлению людьми. То, что работает для одного, может полностью демотивировать другого. Решение я нашёл в классической теории менеджмента — ситуационного лидерства.
Теория: Ситуационное лидерство Херси и Бланшара
Модель, разработанная Полом Херси и Кеном Бланшаром, утверждает, что не существует единственного «правильного» стиля управления. Эффективный лидер подстраивает свое поведение под уровень зрелости сотрудника в конкретной задаче.
Уровни развития сотрудника (готовность выполнить задачу)
- Р1 — «Новичок-энтузиаст» (Не способен, но настроен).
- Характеристика: Высокая мотивация, низкие навыки. Человек горит желанием, но не знает, с какой стороны подойти к задаче.
- Кто это: Большинство junior’ов на старте, стажеры.
- Р2 — «Разочаровавшийся ученик» (Не способен и не настроен / демотивирован).
- Характеристика: Навыки все еще низкие или средние, а моральный дух на нуле. Человек столкнулся со сложностью реальных задач и понял, что «это не так просто».
- Кто это: Джуниор через 3-6 месяцев работы, который «набил первые шишки»
- Примечание: этой стадии можно избежать при грамотном управлении и сразу из P1 перевести сотрудника в P3.
- Р3 — «Осторожный профессионал» (Способен, но не уверен / не настроен).
- Характеристика: Навыки есть, задача ему по зубам, но не хватает уверенности в себе. Нуждается в поддержке и одобрении, чтобы действовать самостоятельно.
- Кто это: Джуниор, который уже какое-то время работает с проектом. А так же, например мидл на новом проекте.
- Р4 — «Самостоятельный эксперт» (Способен и настроен).
- Характеристика: Высокие навыки и высокая мотивация. Способен ставить цели и достигать их при минимальном контроле.
- Кто это: Это джуны, которые давно работают с конкретной системой и поняли её. Так же как примеры: Сеньор даже на новом проекте, тимлид ответсвенной команды, опытный в проекте мидл.
Стили лидерства (поведение руководителя)
- С1 — Директивный (Указывать).
- Что делает ментор: Четко говорит «что, как и когда» делать. Высокий контроль, низкая эмоциональная поддержка.
- Цель: Дать четкую структуру и безопасные рельсы для движения.
- С2 — Наставнический (Обучать / Продавать).
- Что делает ментор: Продолжает контролировать процесс, но объясняет причины решений. Активно общается, спрашивает мнение, убеждает.
- Цель: Передать не только «что», но и «почему», вернуть мотивацию.
- С3 — Поддерживающий (Участвовать).
- Что делает ментор: Вместе принимает решения, поддерживает инициативу, помогает советом, но не лезет в реализацию. Высокая поддержка, низкий контроль.
- Цель: Помочь поверить в свои силы.
- С4 — Делегирующий (Наблюдать).
- Что делает ментор: Наблюдает со стороны, обсуждает результаты, а не процесс. Доверяет принятие решений сотруднику.
- Цель: Дать полную свободу и ответственность.
Решение: Мой практический опыт менторинга
Главный инсайт: нужно вести джуниора по этим уровням, меняя стиль управления, а не оставляя его постоянным (т.е. “у меня такой стиль управления”) Ошибка большинства менторов в том, что они застревают в директивном стиле (С1) или, наоборот, слишком рано пытаются делегировать (С4).
Вот как это выглядит на практике.
Этап 1: Директива для «Новичка-энтузиаста» (Р1 → С1)
На старте джуниор похож на примитивного робота, который очень хочет помочь, но не знает конкретной последовательности действий. Ему нужны четкий список действий и указаний.
Как я действую:
- Микрозадачи: Дроблю задачу на атомарные кусочки и даю их по одной за раз. Не «сделай авторизацию», а «создай таблицу users, потом добавь поле email, потом напиши тест для проверки уникальности email».
- Чек-листы: Даю подробные гайдлайны по структуре проекта и процессу ревью.
- Жесткий контроль: Ежедневные короткие встречи или комментарии в пулл-реквесте. В идеале встречаться и обсуждать лично, так скорость обучения выше. Важно при необходимости остановить подопечного и не дать закопаться в неверном направлении.
- Обучение «на берегу»: Каждое указание сопровождается кратким объяснением контекста. До начала работы над самой задачей.
Пример: Давая задачу по созданию read-only запроса от пользователей, я не просто говорю «сделай», а даю ТЗ со ссылками:
- «Валидацию входящего запроса делаем такими функциями. Посмотри пример использования в существующих ручках X, Y, Z. Это позволит до начала обработки откинуть невалидные запросы.»
- «Обработку ошибок пишем следующим образом: если придет невалидный интевал дат, то API должен вернуть 400 и JSON такой структуры.»
- «При запросе в БД надо обязательно обработать ошибку sql.ErrNoRows, в нашем случае отсутствие данных абсолютно нормальный кейс потому что…»
Этап 2: Наставничество для «Разочаровавшегося ученика» (Р2 → С2)
Проходит месяц-два. Джуниор уже столкнулся с проблемами внутри самой системы, столкнулся с деплоями, которые не раскатывались по непонятным (для джуна) причинам. Энтузиазм сменяется усталостью. Моя задача как наставника в этот момент — поддержать и снова вовлечь.
Как я действую:
- Смена тональности: Вместо «сделай так», я спрашиваю «как бы ты сделал?», «что думаешь?».
- Объяснение «почему»: На предлагаю не только исправление ошибки, но подробное описание возможных последствий.
- Поиск совместных решений: В сложных задачам проектируем решение вместе (парное программирование).
Пример: На код-ревью я вижу потенциальную SQL инъекцию в запросе к базе.
- Плохо: «Не используй конкатенацию строк, это дыра. Перепиши на передачу как параметров.»
- Хорошо (Наставничество): «Смотри, сейчас ты собираешь запрос через строки. Если злоумышленник передаст в поле name что-то вроде “’; DROP TABLE users; –”, что произойдет? БД воспримет это как команду. Давай посмотрим, как параметризованные запросы решают эту проблему. Это защитит данные наших пользователей от уничтожения или кражи.»
Этап 3: Поддержка для «Осторожного профессионала» (Р3 → С3)
Наш джун уже вырос технически. Он способен самостоятельно реализовать сложный функционал. Но он все еще боится предлагать архитектурные улучшения или брать на себя ответственность за конкретные участки системы.
Как я действую:
- Передача инициативы: «Сделай это так, как считаешь нужным. Если будут вопросы — я рядом, но решение за тобой».
- Публичная похвала: На общих встречах отмечаю его успешные решения.
- Страховка: Защищаю в случае ошибок. Если его решение не сработает, мы разбираем ошибку вместе, не перекладывая вину.
Пример: При планировании новой фичи я говорю: «Ваня, ты отлично понял. Набросай схему реализации по твоему предложению и презентуй команде. Я посмотрю заранее, но в целом доверяю твоему видению. Не бойся упустить детали, мы вместе на ревью их поправим.»
Этап 4: Делегирование для «Самостоятельного эксперта» (Р4 → С4)
Джуниор достиг своего потолка и потенциально готов к дальнейшему профессиональному росту. Он сам предлагает задачи, сам их решает и сам отвечает за результат. Моя роль теперь — не мешать и вовремя давать обратную связь по большим целям.
Как я действую:
- Фокус на результате: Мы обсуждаем только цели (например, «Снизить 90-ый квантиль времени ответа с 200ms до 100ms для ручки /api/v1/lists»), а не то, как именно он этого добьется.
- Поиск новых вызовов: Я помогаю найти зоны роста, которые будут интересны лично ему (например, оптимизация кода, изучение новой архитектуры, observability).
Памятка: 4 практических совета для ментора
- Диагностируйте перед действием. Каждую неделю задавайте себе вопрос: на каком уровне (Р1-Р4) мой подопечный находится именно в этой задаче? Сегодня он может быть Р4 в написании SQL, но Р1 в работе с Docker.
- Адаптируйтесь, а не унифицируйте. То, что вы «директивный» ментор по жизни — плохо. То, что вы «демократичный» — тоже плохо. Хороший ментор умеет быть и жестким, и поддерживающим в зависимости от ситуации.
- Обратная связь — это топливо. Ежедневные микро-ревью ценнее, чем ежеквартальные перформанс-ревью. Хвалите за успехи публично, обсуждайте ошибки наедине.
- Не бойтесь «деградировать». Если вы дали джуниору свободу (С3/С4), а он не справился и откатился в мотивации (Р2), вернитесь к наставничеству (С2) или даже директиве (С1). Это нормально. Гибкость — ключ к успеху.
Заключение
Менторинг — это не про передачу синтаксиса или знание фреймворков. Это про управление ростом человека. Применение принципов ситуационного лидерства помогло мне перестать быть просто «старшим товарищем» и стать более эффективным наставником.
Главный урок, который я усвоил: когда вы берете нового джуниора, помните — перед вами почти всегда Р1: «Не способен, но настроен». Ему нужны не похлопывания по плечу и не полная свобода. Ему нужны четкие, понятные рельсы (С1), по которым он поедет, наберет скорость и однажды станет самостоятельным экспертом (Р4). Ваша задача — вовремя переключить стрелки.
Теги: