5 апреля 2023 г.

Виталий Черков

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

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

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

Кто отвечает за постановку задач

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

Чем занимается тимлид

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

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

Как распределяются задачи в разработке

Есть три критерия, по которым менеджер распределяет задачи среди разработчиков:

  • уровень загрузки сотрудников;
  • приоритетность задачи;
  • её соответствие компетенциям разработчиков.

Что же делает тимлид

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

Кто ревьюит код

Без код-ревью изменения в проекте не отправляются в продакшн. Ревью позволяет выявить ошибки и уязвимости в коде, передавать знания о проекте в команде, улучшать архитектурные решения. Главная цель код-ревью — совершенствование кодовой базы разработчиков.

Что же делает тимлид

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

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

Кто решает проблемы на проекте

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

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

А что если снять менеджерские задачи с тимлида

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

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

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

Итоги

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

Зона ответственности менеджеров, аналитиков и тестировщиков — операционное управление. Например, выявление требований, формализацию и декомпозицию задач и проверка качества уже выполненных работ.

Источник: Виталий Черков, фронтенд-тимлид в KTS