Перейти к основному содержимому

Как размер команды влияет на продуктивность: закон Брукса в реальных данных

· 7 мин. чтения
Artur Pan
CTO & Co-Founder at PanDev

«Добавление рабочей силы к запаздывающему программному проекту задерживает его ещё больше.» Фред Брукс написал это в 1975 году. Пятьдесят лет спустя руководители инженерных команд всё ещё спорят, правда ли это.

Мы проанализировали реальные данные кодирования из 100+ B2B-компаний на PanDev Metrics, чтобы понять, как размер команды соотносится с индивидуальной продуктивностью разработчика. Ответ оказался более нюансированным, чем предполагал Брукс — но его ключевая идея по-прежнему верна.

Исходный аргумент

Закон Брукса из книги «Мифический человеко-месяц» основан на двух наблюдениях:

  1. Коммуникационные накладные расходы растут квадратично. Команда из 3 человек имеет 3 канала связи. Команда из 10 — 45. Команда из 20 — 190. Это тесно связано с законом Конвея — организации проектируют системы, отражающие их коммуникационные структуры.
  2. Новым участникам нужно время на адаптацию. Они не начинают вносить вклад сразу и замедляют существующих участников, которым нужно их онбордить.

Вывод: есть точка, после которой добавление разработчиков фактически снижает общий выпуск команды. Больше людей — меньше сделано.

Но отражается ли это в реальных данных кодирования?

Что показывают наши данные

PanDev Metrics отслеживает индивидуальную активность разработчиков в компаниях разного размера. С активными B2B-разработчиками в 100+ B2B-компаниях, генерирующими тысячи часов активности в IDE, мы можем наблюдать паттерны продуктивности в различных организационных контекстах.

Наблюдение 1: Маленькие команды показывают больше часов кодирования на разработчика

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

В маленьких командах (2-5 разработчиков) большая доля рабочего дня каждого человека уходит на непосредственное кодирование. Меньше встреч, меньше Slack-каналов, меньше циклов code review и меньше точек координации.

В больших командах (20+ разработчиков) индивидуальные часы кодирования на человека снижаются. Это не значит, что большие команды непродуктивны — их суммарный выпуск выше. Но эффективность на человека снижается.

Наблюдение 2: Коммуникационный налог реален

Более крупные команды в нашем датасете демонстрируют характерные паттерны коммуникационных накладных расходов:

  • Больше переключений контекста: Записи активности показывают более короткие, фрагментированные сессии кодирования
  • Больше циклов ревью: Pull request-ы мерджатся дольше, когда задействовано больше ревьюеров
  • Больше времени на координацию: Утреннее кодирование начинается позже — скорее всего, из-за более длительных стендапов и планировочных встреч

Это не баги в процессе. Code review и координация — ценны. Но они имеют измеримую стоимость во времени кодирования.

Наблюдение 3: Команда «на две пиццы» по-прежнему работает

Команды в диапазоне 5-8 разработчиков, по нашим данным, попадают в оптимальную точку. Они достаточно велики для содержательного code review и обмена знаниями, но достаточно малы, чтобы коммуникационные накладные расходы оставались управляемыми.

Это согласуется со знаменитым правилом Amazon «команда на две пиццы» и с рекомендацией Джеффа Сазерленда о Scrum-командах из 5-9 участников.

За пределами 8-10 разработчиков команды в нашем датасете, которые поддерживают высокую продуктивность на человека, обычно имеют чёткие границы подкоманд, хорошо определённые интерфейсы и сильные практики асинхронной коммуникации.

Где Брукс был прав

Эффект адаптации

Наши данные по онбордингу разработчиков (см. нашу статью о выходе нового разработчика на полную производительность) подтверждают второй тезис Брукса. Новым участникам команды нужны недели, чтобы выйти на полную продуктивность. В это время они также требуют внимания существующих участников — парное программирование, code review, ответы на вопросы.

В команде из 5 человек, добавляющей 1 разработчика, временное падение продуктивности значительно: вы замедляете 5 человек, чтобы адаптировать 1. В команде из 50 человек, добавляющей 5 разработчиков, падение распределяется между большим числом людей, но длится дольше.

Взрыв координации

Команда, растущая с 5 до 10 человек, не просто добавляет 5 разработчиков. Она добавляет сложность:

  • 45 возможных коммуникационных пар (вместо 10)
  • Больше микросервисов, больше API, больше общих зависимостей
  • Больше встреч для поддержания синхронизации
  • Больше узких мест в code review

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

Где Брукс был не до конца прав

Фактор параллелизации

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

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

Инструментарий эволюционировал

В 1975 году коммуникация означала встречи и записки. В 2026 году у команд есть:

  • Асинхронная коммуникация (Slack, Notion, Loom), снижающая нагрузку от встреч
  • CI/CD-пайплайны, автоматически ловящие проблемы интеграции
  • AI-ассистированный code review, снижающий узкое место ревью
  • Infrastructure as Code, делающая настройку окружения воспроизводимой
  • Инструменты отслеживания активности, такие как PanDev Metrics, дающие видимость без встреч

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

Специализация имеет значение

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

Наши данные показывают, что команды с чёткими ролевыми границами сохраняют более высокие часы кодирования на человека при увеличении размера, по сравнению с командами, где все работают над всем. Данные GitHub Octoverse о паттернах контрибьюторов подтверждают это — репозитории с хорошо определёнными файлами CODEOWNERS показывают более быстрое время мерджа и меньше конфликтов.

Практические выводы

Для растущих команд

Если ваша команда растёт с 5 до 15 разработчиков, планируйте временное падение продуктивности. Заложите 2-4 недели сниженного выпуска на каждого нового сотрудника и учтите нагрузку онбординга на существующих участников команды.

Стратегии смягчения:

  • Растягивайте найм (не добавляйте 5 человек одновременно)
  • Инвестируйте в документацию и автоматизированный онбординг
  • Назначайте выделенных buddy для онбординга, а не распределяйте нагрузку
  • Используйте парное программирование стратегически, а не как режим по умолчанию

Для структуры команды

Данные поддерживают модель «команды на две пиццы». Когда команда превышает 8-10 разработчиков:

  1. Разделите на подкоманды с чёткими границами ответственности
  2. Определите интерфейсы между подкомандами (API, общие контракты)
  3. Минимизируйте межкомандные зависимости в планировании спринтов
  4. Поддерживайте одного техлида на подкоманду для координации

Для оценки сроков

Если ваша команда из 5 разработчиков производит X, добавление ещё 5 не произведёт 2X. В лучшем случае ожидайте 1,5-1,7X в среднесрочной перспективе. Доносите это до стейкхолдеров до того, как они спросят «мы удвоили команду, почему выпуск не удвоился?»

Для удалённых команд

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

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

Измерение эффекта в вашей организации

Вы можете проверить закон Брукса на собственных данных с помощью PanDev Metrics:

  1. Отслеживайте часы кодирования на разработчика во времени, особенно в периоды найма
  2. Сравнивайте длительность сессий кодирования до и после расширения команды
  3. Мониторьте пик вторника/среды — если он сглаживается, коммуникационные накладные расходы могут расти
  4. Анализируйте кривые адаптации новых сотрудников, чтобы понять реальную стоимость каждого добавления

Цель — не перестать нанимать. А нанимать разумно, с реалистичными ожиданиями и правильными командными структурами для поддержания продуктивности при масштабировании.

Заключение

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

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

Не боритесь с законом Брукса. Проектируйте вокруг него.


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

Готовы увидеть метрики своей команды?

30-минутная персональная демонстрация. Покажем как PanDev Metrics решает задачи именно вашей команды.

Забронировать демо