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

Скорость Code Review

6 исходящих · 9 входящих · 15 всего связей

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

Скорость Code Review

Время прохождения code review — от открытия PR до финального аппрува. Долгое ревью блокирует мерж, увеличивает lead time и демотивирует автора, который теряет контекст к моменту получения замечаний. Хорошая практика — первая реакция ревьюера в течение нескольких часов, а не дней.

Время от открытия PR до финального аппрува. Google: <4 часов; индустрия: 15–24 часа.

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

Эффект неоднозначный. С одной стороны, кросс-командные изменения требуют большего количества аппрувов (CODEOWNERS). С другой — ревьюер видит полный контекст изменений в одном месте, не переключаясь между репозиториями.

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

КРИТИЧЕСКИ УСИЛИВАЕТСЯ: Главное препятствие для распределённых команд. Каждый раунд фидбека добавляет 12–24 часа. PR, который в офисе обсуждается за час, в распределённой среде превращается в трёхдневную переписку. Координация нескольких ревьюеров в разных зонах может занять неделю.

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

Пропускная способность ревьюеров насыщается при масштабировании.

6
Влияет на
9
Зависит от

→ Влияет на

Высокий → КритическийРАСП
▲ Время доставки (Lead Time)

Часто самая длинная стадия.

Индустрия: 15–24 часа; Google: <4 часа
Meta, Code Climate, Cubic, Plandek
Распределённые: Каждый раунд ревью добавляет 12-24ч через границы TZ. Два раунда фидбека превращают слияние в тот же день в 3-дневный марафон.
▲ Переключение контекста

Задержка ревью → переключение на другую задачу → 23+ мин на возврат.

23 мин 15 сек восстановления
Gloria Mark (UC Irvine), Cubic
Средний → ВысокийРАСП
▲ Размер PR

Медленное ревью → меньше и крупнее PR, чтобы сократить число раундов.

Поведенческая адаптация
Cubic, Code Climate, FullScale
Распределённые: Разработчики понимают, что каждая отправка PR стоит целый день задержки, поэтому группируют больше изменений, чтобы минимизировать раунды.
▼ Удовлетворённость разработчиков

Работа сделана, но заблокирована — глубоко фрустрирует.

Meta: медленный P75 → недовольство
Meta Engineering, Cubic, jonnyzzz.com
Средний → КритическийМОНОРАСП
▲ Доля неудачных деплоев (CFR)

Давление пропустить тщательное ревью → формальное одобрение.

PR, ожидающие 3+ дня: менее тщательные
PropelCode, Cubic, ITProToday
Монорепо: Межкомандные PR в монорепозиториях часто требуют одобрения нескольких CODEOWNERS, добавляя задержку и давление на формальное одобрение.
Распределённые: Многодневные циклы ревью создают давление на формальное одобрение. Ревьюеры в других TZ могут не иметь полного контекста недавних изменений.
▼ PR в неделю

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

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

← Зависит от

▲ Размер PR

+100 строк → +25 мин ревью. ~50-строчные PR сливаются на 40% быстрее.

Прямое измерение
PropelCode (50K+ PRs analyzed), Adadot, Graphite
Распределённые: Большие PR + разрыв TZ = многодневные циклы ревью. Каждый уточняющий вопрос добавляет 12-24ч.
▲ Сложность кода

Ревьюеры должны сначала построить ментальную модель.

∝ сложность понимания
Code review research
Средний → КритическийРАСП
▼ Ясность владения кодом

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

CODEOWNERS + автоматическое назначение
arXiv study (222 repos), Aviator, GitHub
Распределённые: Маршрутизация владения с учетом TZ критична: автоназначение ревьюеров в TZ автора или следующей активной TZ минимизирует латентность цикла обратной связи.
▲ Радиус поражения (Blast Radius)

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

Требование множественных одобрений
SmartBear Code Review Study, Google Engineering Practices
▼ Качество асинхронной связи

Полные описания PR с контекстом, скриншотами и доказательствами тестирования позволяют одобрить за один раунд.

Исчерпывающие PR одобряются на 60%+ быстрее
DORA 2024, industry analysis
▼ Покрытие ревью по зонам

Назначенные ревьюеры в каждом часовом поясе сокращают латентность ревью с 12-24 часов до 2-4 часов.

Снижает worst-case с 24 часов до 4 часов
Multiple industry sources
▼ Окно пересечения (Overlap)

Окна пересечения позволяют обсуждать PR в реальном времени.

Синхронное ревью в окне пересечения
Industry research and case studies
▲ Уровень принятия AI-тулинга

+91% рост времени ревью при высоком внедрении AI (90%+).

+91% при 90% внедрении
Faros AI Research (10,000+ developers, 1,255 teams) - Already Validated
▲ Уровень доверия к AI

Низкое доверие = больше оверхеда на верификацию.

Оверхед верификации
METR Study & Academic Research
Карта метрик — Stanislav Belyaev · Анализ — Anthropic Claude Opus 4.6 · Все данные проверены человеком