Управление большой командой начинающих разработчиков (практические советы)

14.08.25

Команда - Лидерство

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

Меня зовут Дмитрий Фомин. Я работаю в компании DNS с 2006 года. С 2010 года прошел путь от начинающего разработчика до CTO одного из направлений. DNS – довольно крупная компания и лидер на рынке цифровой техники в России. В ее инфраструктуре функционирует множество систем, построенных на платформе 1С:Предприятие.

 

Крупнейшая система и дефицит кадров

 

Самая масштабная система в компании – УБД. Ее объем составляет около 40 терабайт, а в разработке и сопровождении задействовано порядка 200 программистов 1С. Многие годы компания DNS активно росла, и в какой-то момент столкнулась с острым дефицитом специалистов 1С на локальном рынке – в городе Владивостоке. Чтобы закрыть потребность в кадрах, компания приняла решение организовать собственные обучающие курсы.

 

Успешный эксперимент: обучение внутри компании

 

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

 

Задача: управление командой с преобладанием новичков

 

Направление «Логистика» отвечает за все процессы, связанные с перемещением товара – от поставщика до конечного клиента. Это одно из стратегических направлений, которое регулярно получает амбициозные планы по развитию. Для реализации масштабных изменений потребовалось быстро увеличить ресурсы команды разработки.

В мою команду стали поступать выпускники внутренних курсов сплошным потоком. В какой-то момент новички составляли более 80% команды. За несколько лет мы накопили значительный опыт управления такой командой. В итоге нам удалось выстроить устойчивую группу из нескольких десятков опытных специалистов с почти нулевой текучестью кадров.

 

Цель статьи: советы начинающим лидам

 

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

 

Основные проблемы в командах с новичками

 

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

 

Общие стратегии решения проблем

 

Что можно с этим сделать? Во-первых, выстроить эффективную систему наставничества, включая привлечение джунов в роли наставников. Необходимо регулярно анализировать процессы, выявлять узкие места и оптимизировать их. Следует создать и поддерживать базу знаний по всем ключевым процессам. Важно повышать проработанность технических заданий, внедрять различные виды ревью – как инструменты групповой разработки. Также стоит внедрить специализацию и наладить синхронизацию внутри команды.

 

Эффективное наставничество: почему джуны – лучшие наставники

 

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

Что делать, если в команде подавляющее большинство – новички? Если каждый опытный разработчик будет курировать по несколько новичков, у него просто не останется времени на выполнение своей основной работы. В такой ситуации не бойтесь привлекать в наставники программистов с опытом 6–9 месяцев.

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

А можно ли сравнить такого джуна-наставника с опытным синьором? Разве знает он какие-то глубинные особенности платформы, какие-то хитрые приемы разработки? Нет – это и не нужно, потому что у нас нет цели сделать из новичка супер-специалиста за три месяца. Нам необходимо, чтобы новичок быстро адаптировался в команде и освоил базовые навыки, при этом без сильного влияния на команду. И с этой задачей джун-наставник отлично справится.

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

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

 

Долгосрочное наставничество и ротация

 

Также важно помнить: наставничество не должно заканчиваться по истечении испытательного срока. Лучше выстроить целую сеть наставников и организовать между ними ротацию – передачу опыта по цепочке. Ведь для профессионального роста программисту необходимо не только практиковаться, но и систематически изучать теорию.

 

Теория и практика: как давать задачи новичкам

 

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

Да, полезно и нужно давать время от времени задачи на «растягивание» – такие, где нет детального описания, и требуется самостоятельно разобраться в проблеме. Однако в первый год работы таких задач должно быть минимальное количество. Основная часть заданий должна содержать подробное и понятное описание того, что именно нужно сделать. Декомпозируйте задачи так, чтобы их планируемое время реализации не превышало 10–12 часов. Чем меньше и проще задача – тем легче новичку понять, что от него требуется, и тем проще контролировать ход ее выполнения.

 

Проработка технических заданий и вовлечение команды

 

Хорошо, если в команде есть системные аналитики. Но если их нет, руководитель не должен брать на себя всю ответственность за формирование задач – иначе он рискует стать узким местом в процессе. Вовлекайте в подготовку задач всех опытных участников команды. Это помогает распределить нагрузку и повысить качество ТЗ.

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

 

Культура самостоятельности и помощи

 

С самого первого дня работы программист должен усвоить: перед тем как задать вопрос, нужно сначала попытаться найти ответ самостоятельно. Если за разумное время это сделать не удается – тогда уже стоит обратиться за помощью.

Алгоритм поиска ответа можно выстроить следующим образом:

– сначала изучить документацию,

– затем заглянуть в код,

– проверить, как решались похожие задачи ранее,

– обратиться к наставнику,

– если он не в курсе – к другим коллегам или руководителю.

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

 

Техническое ревью перед началом кода

 

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

 

Ревью кода как инструмент качества и обучения

 

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

Преимущества этого очевидны: повышение устойчивости системы (бас-фактора), выявление ошибок до публикации, рост качества кода, распространение командной культуры и обучение.

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

 

Парная реализация как метод быстрого обучения

 

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

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

 

 

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

 

Автономность команды: как избежать зависимости от руководителя

 

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

Возникает вопрос: зачем вообще руководитель выполняет такую операционную функцию? Почему весь процесс разработки замыкается на одном человеке? Гораздо правильнее сформулировать простые и понятные правила, по которым разработчики сами могут выбирать задачи из подготовленного бэклога.

Еще лучше – настроить систему так, чтобы они могли брать только те задачи, которые соответствуют их уровню и не заблокированы другими задачами.

 

 

 

Делегирование и устранение узких мест

 

Конечно, речь идет не о новичках. Им задачи по-прежнему должны выдавать наставники – по тем же правилам и из того же бэклога.

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

 

База знаний: ключ к быстрой адаптации

 

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

 

Преимущества описанных процессов

 

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

 

Примеры из практики: BPMN, код-ревью, план обучения

 

В нашей базе знаний, например, есть три типичных примера. Во-первых – процессы, описанные в нотации BPMN, с наглядной схемой:

 

 

Во-вторых – статья по код-ревью:

 

 

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

 

 

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

 

Специализация: от скептицизма к признанию

 

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

Раньше я считал, что специализация – это скорее вред, чем польза. Мне казалось, что чем больше механизмов и процессов "потрогает" программист, тем быстрее он станет опытным. Однако, внедрив сначала базовую, а затем и более глубокую специализацию, я осознал, что ошибался. Именно глубокое погружение в конкретные области помогает разработчику быстрее становиться настоящим экспертом.

 

Баланс специализации: избегайте узких мест и выгорания

 

При этом важно учитывать бас-фактор: нельзя допускать появления уникальных экспертов, без которых процесс останавливается. Обязательно обеспечьте, чтобы по каждому критическому механизму было вовлечено как минимум два человека.

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

 

Главный совет: не сидите на двух стульях

 

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

При этом не переставайте изучать технологии. Это поможет вам оставаться авторитетом для команды и говорить с ней на одном профессиональном языке.

Надеюсь, мои советы окажутся для вас полезными. Если есть вопросы – пишите их в комментариях – я с удовольствием отвечу.

 

*************

Статья написана по итогам доклада (видео), прочитанного на конференции INFOSTART TECH EVENT.

См. также

Обучение и наставничество Бесплатно (free)

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

12.08.2025    255    0    user2088746    0    

1

Компетенции и навыки Бесплатно (free)

Любой бизнес, который мы автоматизируем с использованием наших продуктов 1С – это система, сочетающая в себе управленческий, регламентированный и производственный учеты. Бизнес «живет» по правилам жизни системы. А регламентированный учет лишь отражает факт совершения хозяйственных операций. Расскажем о том, как с помощью технологии системного подхода видеть более целостную картину на входе в проект автоматизации, получать более качественную информацию в процессе обследования, глубже оценивать и предотвращать риски неуспешного завершения проектов.

04.08.2025    482    0    user1754524    2    

3

Мотивация Обучение и наставничество Бесплатно (free)

Автор этой статьи начинала свою карьеру в бухгалтерии. С должности главного бухгалтера она перешла в сферу ИТ, где за 16 лет выросла до функционального архитектора. У нее большой опыт внедрения 1С на крупных предприятиях с фокусом на регламентированный учет и МСФО.

24.07.2025    426    0    KovalevaEG    1    

2

Лидерство Обучение и наставничество Компетенции и навыки Бесплатно (free)

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

24.07.2025    732    0    val54321    3    

9

Личная эффективность Компетенции и навыки Бесплатно (free)

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

23.07.2025    576    0    kosmonavtka    0    

7

Обучение и наставничество Бесплатно (free)

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

18.07.2025    617    8    Korolev    0    

3

Личная эффективность Обучение и наставничество 1С v8.3 ИТ-компания Россия Бесплатно (free)

Здесь я рассказал, как я со временем сформировал свой взгляд, кем хочу стать и как вижу себя в будущем.

02.06.2025    918    0    user2148151    4    

3

Личная эффективность Компетенции и навыки Бесплатно (free)

Харизма помогает руководителю вдохновлять команду, влиять без давления и выстраивать доверие. Это не врожденное качество, а ресурс, который нужно подпитывать и развивать. Те, кто сможет развить в себе харизму, станут не только уверенными руководителями, но и свободными, по-настоящему счастливыми личностями. Расскажем о том, как харизма руководителя влияет на успешность проекта.

28.05.2025    749    0    user596192_shiiisha    0    

0
Оставьте свое сообщение