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

 Это сложная функция, зависящая от потока, сложности работы и скрытых потерь, которые вы просто не видите.

Измерение текущего состояния.

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

Пропускная способность (Throughput) показывает, сколько единиц работы команда завершает за фиксированный интервал времени. Это не то, что вы планируете сдать, а то, что действительно довели до состояния "Готово". Ключевое требование: учитываются только полностью завершенные задачи. Заблокированные, частично выполненные или ожидающие ревью задания не идут в расчет.

Чтобы рассчитать Throughput, выберите период (например, две недели) и посчитайте количество выполненных задач или сумму story points. Для получения стабильного значения берите среднее за 3-5 последних итераций. Если за февраль команда завершила 20 задач, за март - 18, за апрель - 21, средняя пропускная способность составит примерно 19-20 задач в месяц. Этот базовый показатель становится фундаментом для ответа на вопрос "когда будет готово".

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

Velocity как зеркало прошлого

Velocity метрика из Scrum, показывающая объем выполненной работы в спринте. Если команда завершила пользовательские истории на 25 story points в первом спринте, 30 - во втором и 28 - в третьем, средняя скорость составит около 28 стори поинтов за спринт.

Важный технический нюанс, который часто упускают: velocity всегда считается в том спринте, где работа фактически была завершена, независимо от того, в какой спринт её изначально планировали. Если задача "висела" два спринта, а закрыли её в третьем, credit получает третий спринт. Это отражает реальную capacity команды, а не оптимистичные планы.

В системах управления проектами velocity отображается в виде гистограммы, где каждый столбец - отдельный спринт, а линия показывает среднее значение. Если вы видите сильные колебания (например, резкий скачок с 20 до 40 стори поинтов без изменений в составе команды), это сигнал: в оценках есть системная ошибка или процесс нестабилен. Постоянный рост velocity не является устойчивым трендом в долгосрочной перспективе; гораздо важнее стабильность и предсказуемость.

Разделение планирования и отслеживания

Самый частый источник искажений - попытка мерить capacity по тому, сколько взяли в работу, а не по тому, сколько сдали. Бёрн-ап чарт (Burn-Up Chart) показывает накопленный объем завершенной работы относительно общего объема. Если линия выполненной работы становится плоской на середине спринта и резко взлетает в последний день, это явный индикатор: задачи слишком крупные, либо команда перегружена, либо блокировки не отслеживаются вовремя.

какое capacity у вашей команды

Накопительная диаграмма потока (Cumulative Flow Diagram) визуализирует количество задач на каждом этапе работы. Расстояние между кривыми "принято в работу" и "завершено" наглядно показывает объем незавершенной работы (Work in Progress). Когда это расстояние растет, команда приближается к перегрузке, а время цикла (Cycle Time) увеличивается.

Технические параметры и скрытые факторы

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

Пропускная способность системы и сложность транзакций

Для команд, разрабатывающих высоконагруженные сервисы, критично понимать параметры на уровне кода и инфраструктуры. Transactions Per Second (TPS) - количество атомарных действий в секунду. Если 60 пользователей выполняют по одной транзакции в минуту, средний TPS составит 1. Однако нагрузка неравномерна: все 60 могут зайти в одну секунду, создав пик в 60 TPS.

Работа, выполняемая за одну транзакцию (Work done per transaction), определяет, сколько ресурсов процессора, памяти и ввода-вывода требуется. Простая операция "пройти через прокси" дешевая. Транзакция, запускающая цепочку сложных XML-преобразований, обращений к базам данных и внешним API, потребляет значительно больше ресурсов. Диаграмма последовательности помогает разложить транзакцию на элементарные операции и оценить их "стоимость".

Время обдумывания (Think Time) - пауза между получением ответа от системы и следующим действием пользователя. Для машинного взаимодействия оно минимально, для веб-приложений с ручным вводом данных - существенно. Игнорирование think time ведет к завышению оценки capacity, поскольку система в реальности простаивает дольше, чем вы предполагаете.

Латенси и блокировки

Латенси (Latency) - задержка, вносимая системой. Она складывается из времени обработки на сервере, сетевых задержек и ожидания ответов от внешних зависимостей. Техника расчета: сначала измеряем время отклика без новой системы, затем - с ней. Разница и есть латенси.

На уровне команды разработки латенси проявляется как время ожидания ревью кода, времени ответа от смежников или сборки CI/CD. Если код ревьюится три дня, реальная capacity команды падает, даже если сами разработчики пишут быстро. Кэширование - стандартный технический прием для снижения латенси. Но если данные меняются часто, толку от кэша мало.

Узкие места (Bottlenecks)

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

Выявление узких мест требует мониторинга: загрузки CPU, I/O rates, времени использования сети. Для процессов - анализа потока задач. Если задачи накапливаются перед определенной ролью или этапом (например, "тестирование"), вы нашли bottleneck. Инвестиции в расшивку этого узла дадут максимальный прирост общей capacity.

Стратегии увеличения ёмкости команды

Увеличить capacity не всегда означает нанять больше людей. Часто гораздо эффективнее устранить потери и перераспределить нагрузку.

Разделение инноваций и операционной деятельности

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

Автоматизация и самообслуживание

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

Выход - создать инструменты самообслуживания. Не стройте кастомные решения под каждую просьбу. Создайте простые, переиспользуемые инструменты, с помощью которых нетехнические отделы смогут закрывать свои потребности без открытия тикета. Отчетность, простые автоматизации, стандартные пайплайны данных - отличные кандидаты на перевод в Self-Service. Это не потеря контроля, а создание рычага влияния. Capacity центральной команды возрастает, когда её перестают дергать по пустякам.

Оптимизация потока через WIP Limits

Ограничение незавершённой работы (Work in Progress, WIP) - простой, но мощный механизм. Слишком много задач в работе приводит к постоянному переключению контекста. Мозгу нужно время, чтобы вернуться к задаче после перерыва. Чем больше параллельной работы, тем выше overhead на переключение.

capacity  команды как его увеличить

Системы управления проектами позволяют визуализировать загрузку в виде тепловых карт, где видно, кто перегружен, а у кого есть свободное окно. Установка строгих лимитов на каждом этапе доски (например, "не более 3 задач в ревью одновременно") форсирует завершение задач перед взятием новых. Это снижает время цикла и повышает предсказуемость.

Проактивное планирование найма с учётом роста

Когда система требует роста, не реагируйте на текущую нагрузку - смотрите вперёд. Используйте правило "проектирования под десятикратный рост", которое широко применяется в инженерии. Если вы планируете систему на следующий этап роста, вы рискуете упереться в потолок, когда клиентов станет в два раза больше. Закладывайте избыточность сразу.

В управлении командой это означает: стройте модели загрузки с учётом вероятных побед (Win Probabilities) по проектам в пайплайне. Фильтруйте загрузку по 100% подтверждённой работе и вероятной ("потенциальной"). Если вы не планируете capacity на перспективу 3-6 месяцев, вы будете вечно играть в догонялки, нанимая людей в последний момент, когда команда уже выгорела.

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

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

Объединение планирования и факта

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

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

Учёт фактического времени (Actuals)

Capacity на бумаге (план) и фактическая ёмкость (то, сколько человек реально отработал) - разные вещи. Плановые 40 часов в неделю на деле превращаются в 25-30 часов чистого времени разработки. Остальное уходит на встречи, ответы на письма, переключения.

Системы, которые интегрируют трекинг времени с планированием, позволяют видеть расхождение estimate vs actuals на уровне спринта. Если команда систематически перерабатывает (actuals > capacity), это не повод для гордости, а сигнал о том, что вы берёте слишком много работы, а люди выгорают. Если actuals значительно меньше capacity, возможно, вы переоцениваете доступное время или у людей слишком много overhead.

Сценарии "Что если" и управление рисками

Настоящее мастерство планирования capacity проявляется в умении отвечать на вопросы "Что, если?". Что, если ключевой инженер уйдет в отпуск на две недели? Что, если мы выиграем тендер и проекту потребуется внезапно выделить 50% ресурсов? Что, если мы переведём команду в режим "красной зоны" на месяц?

  • Современные инструменты позволяют создавать "пивоты" (Pivots) - временные изменения в аллокации, не ломающие долгосрочный план. Вы можете имитировать crunch mode или паузу в проекте, посмотреть на тепловую карту загрузки и понять, выдержит ли команда такое изменение без падения качества.
  • Capacity команды не сумма человеко-часов, а функция от потока, сложности и организации труда. Начинайте с измерения Throughput и Velocity на исторических данных. Используйте технические параметры (TPS, Latency, WIP) для диагностики узких мест.
  • Увеличивайте ёмкость не только наймом, но и разделением режимов работы (инновации vs операции), автоматизацией рутины и внедрением лимитов на незавершённую работу. Внедрите инструменты с двунаправленной синхронизацией плана и факта, чтобы перестать гадать.

 В конечном счёте, устойчивая capacity когда команда делает ровно столько, сколько может, без выгорания, и вы можете предсказать это с точностью до 10-20%.

Еще по теме

Что будем искать? Например,Идея