Курс Технический менеджер продуктов · автор Stanislav Belyaev
EN RU

PR в неделю

5 исходящих · 17 входящих · 22 всего связей

Карта Детали
МАСШТАБ КОМАНДЫ
Developer Experience УСИЛЕНО В МОНОРЕПО УСИЛЕНО В РАСПРЕДЕЛЁННЫХ КОМАНДАХ

PR в неделю

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

Pull request на разработчика в неделю. Элитный уровень: 15–25 PR; начальный: 2–5 PR.

КОНТЕКСТ МОНОРЕПО

КРИТИЧЕСКИ УСИЛИВАЕТСЯ: Без умного CI тулинга каждый PR запускает полную сборку репы. Пропускная способность по PR может упасть на 60-80% без affected-project detection + remote caching.

КОНТЕКСТ РАСПРЕДЕЛЁННЫХ КОМАНД

КРИТИЧЕСКИ УСИЛИВАЕТСЯ: Распределенные команды завершают на 50-70% меньше PR чисто из-за задержек ревью и 12-24-часовых циклов передачи. Разработчик, завершающий 20 PR/неделю в колокированной команде, часто падает до 6-8 PR/неделю в распределенной.

Влияние масштаба
👤 Один / Пара (1–3)
0.3
👥 Команда (4–15)
0.6
🏢 Отдел (15–100)
0.8
🏛️ Организация (100+)
1

Пропускная способность PR падает на 60-80% без умного CI в масштабе монорепо.

5
Влияет на
17
Зависит от

→ Влияет на

Удовлетворённость разработчиков

Завершение и деплой работы глубоко удовлетворяет. Высокий throughput = видимый прогресс.

Velocity — ключ к удовлетворенности
Developer satisfaction / HashiCorp DevEx
Распределённые: Постоянно заблокированные PR в распределенных командах создают хроническую фрустрацию.
Частота деплоев

Больше завершенных PR = больше деплоев.

1:1 в trunk-based dev
DORA / Trunk-based development
Время доставки (Lead Time)

Более высокий throughput PR снижает WIP и время в очереди.

Throughput-latency trade-off
Queueing Theory / DORA
Высокий КритическийРАСП
Текучка кадров

Разработчики уходят, когда чувствуют себя непродуктивными.

Фрустрация от velocity → уход
Developer retention research
Распределённые: Распределенные разработчики, чувствующие искусственное замедление из-за TZ gaps, уходят быстрее всех.
Переключение контекста

Завершение PR снижает количество WIP. Меньше WIP = меньше переключений контекста.

Лимит WIP снижает переключения
WIP limits / Kanban research

← Зависит от

Скорость Code Review

Каждый дополнительный час задержки ревью напрямую снижает недельный throughput PR. 24h review → разработчики батчат изменения → меньше PR.

Линейная зависимость
Axify, Code Climate, Haystack
Распределённые: Кросс-TZ задержка ревью (12-24h) — доминирующий bottleneck. Распределенные команды закрывают на 50-70% меньше PR, чем колокированные, исключительно из-за задержек ревью.
Очередь на мердж

Сбои в очереди сбрасывают прогресс PR. Каждый сбой = часы или дни задержки до завершения повтора.

Expedia: 20+ конкурирующих PR
Trunk.io / Merge queue scalability
Монорепо: Merge queue в монорепо особенно болезненны без партиционирования очереди. Один сбой инвалидирует все PR в очереди.
Распределённые: Сбои очереди за ночь означают, что разработчики просыпаются с failed merges, пересабмитят и ждут еще один 12-24h цикл.
Скорость пайплайна (CI/CD)

Медленный CI создает bottleneck итераций. 45-мин pipeline = макс 10-12 итераций/день. Быстрый 5-мин pipeline = 50+ итераций/день.

Прямое ограничение throughput
CI/CD pipeline optimization
Монорепо: Без определения затронутых проектов монорепо CI становится главным убийцей скорости PR. Каждый PR ждет 45+ минут.
Нестабильность тестов (Flakiness)

Каждый flaky сбой требует перезапуска. При 16% flakiness (Google) большинство PR ловят хотя бы один flake.

Google: 84% pass→fail это flaky
Google flaky test analysis
Монорепо: Более широкие графы зависимостей в монорепо означают больше тестов на PR = больше подверженность flake. Экспоненциально влияет на throughput.
Распределённые: Flaky сбои за ночь создают 12-24h задержки вместо немедленных перезапусков. Драматически усиливает эффект.
Переключение контекста

Каждое переключение контекста стоит 23 минуты на восстановление. Среды с высоким уровнем прерываний не дают завершать PR.

Только 2.3 часа deep work в день
UC Irvine (Gloria Mark), Uplevel
Распределённые: Утренняя загрузка контекста из ночных уведомлений разрушает первый рабочий блок, снижая доступное время для завершения PR на 1-2 часа ежедневно.
Состояние потока

Flow state обеспечивает всплески продуктивности до 500%. Сессии deep work — это когда PR завершаются.

До 500% продуктивности в flow
Csikszentmihalyi 10-year study
Распределённые: Распределенные команды теряют утренние блоки flow на загрузку контекста. Меньше часов flow = меньше завершенных PR.
Высокий КритическийМОНОРАСП
Размер PR

Большие PR дольше писать, ревьюить и мерджить. 200-строчный PR = 1 день. 2000-строчный PR = несколько дней.

Оптимально: 200-400 строк
Graphite, LinearB, PropelCode
Монорепо: Кросс-сервисные изменения в монорепо создают массивные PR (15+ сервисов) без использования stacked PR. Массивные PR убивают throughput.
Распределённые: Батчинг для минимизации кросс-TZ раундов создает большие PR, создавая порочный круг: большой PR → больше раундов ревью → больше батчинга.
Высокий КритическийМОНО
Время выполнения тестов

Выполнение тестов часто является bottleneck CI. Длинные test suite ограничивают скорость итераций.

Основной bottleneck CI
CI/CD bottleneck analysis
Монорепо: Полный набор тестов репозитория без селективного тестирования убивает скорость PR. Необходим умный отбор тестов.
Высокий КритическийМОНО
Время сборки

Каждый PR требует несколько сборок. 10-мин сборка × 10 итераций = 100 мин потерь.

2-мин сборка × 200/день = 100+ мин
DevOps workflow analysis
Монорепо: Монорепо на 2B строк без распределенных сборок создают катастрофические bottleneck сборки.
Высокий КритическийРАСП
Когнитивная нагрузка

Высокая когнитивная нагрузка замедляет всю работу.

76% отмечают стресс
Developer burnout and cognitive load research
Распределённые: Утренняя когнитивная перегрузка от ночной загрузки контекста снижает эффективные рабочие часы.
Высокий КритическийРАСП
Технический долг

Долг замедляет каждое изменение на 25-50%.

23-33% времени на долг
Stripe 2023, Academic research 2024
Распределённые: Замедления от tech debt хуже, когда каждая итерация стоит 12-24h.
Высокий КритическийРАСП
Качество документации

Хорошая документация устраняет блокирующие вопросы. Self-service ответы = непрерванная работа над PR.

30% времени senior сэкономлено
Stack Overflow / Developer productivity
Распределённые: Нельзя спросить спящих коллег. Без документации разработчики блокируются на 12-24h в ожидании ответов.
Средний НизкийМОНО
Фрагментация инструментов

Overhead переключения между приложениями накапливается. 1200+ переключений/день = 4 часа/неделю потерь.

~4 часа/неделю
Harvard Business Review 2022
Монорепо: Монорепозитории снижают фрагментацию инструментов, ослабляя эту зависимость.
Средний НизкийРАСП
Нагрузка встречами

Митинги фрагментируют день. 11 часов/неделю оставляют меньше времени на завершение PR.

~11 часов/неделю
NetworkPerspective, Uplevel, Reclaim
Распределённые: Распределенные команды имеют меньше синхронных митингов.
Задержка передачи (Handoff)

Каждый PR требует множественных перекладываний. 12-24 часа на каждое означает минимум 2-3 дня на PR, против того же дня в совмещённых командах.

ДОМИНИРУЮЩЕЕ узкое место распределённых команд
DORA, DevOps throughput research
Уровень принятия AI-тулинга

Рост индивидуальной продуктивности: +21-98% больше PR'ов. Однако организационное влияние БЕЗ ИЗМЕНЕНИЙ.

Только на уровне индивидуума — организация без изменений
GitHub/Microsoft Research
Кривая обучения AI

На 19% медленнее изначально. 4-6 недель до break-even, 8+ недель до полной продуктивности.

Начальный провал продуктивности
Microsoft Research
Карта метрик — Stanislav Belyaev · Анализ — Anthropic Claude Opus 4.6 · Все данные проверены человеком