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

Все мы слышали мантры: «Ревью — это хорошо», «Без ревью нет качества», «Это лучший способ делиться знаниями». И я с этим не спорю. В теории. Но на практике, в суровых реалиях коммерческой разработки с дедлайнами, ограниченными ресурсами и выгорающими тимлидами, код-ревью превратилось в главного тормоза прогресса. В самое узкое горлышко, через которое с трудом просачиваются фичи и исправления.

И это не голословное утверждение. Это вывод, к которому мы пришли, проанализировав данные по нашим проектам за последние два года. Цифры — железные, и они не врут.

О чем мы вообще говорим?

Код-ревью — это не пятиминутное «глянул и апрувнул». Это процесс:

  1. Разработчик создает пулл-реквест (PR/MR).

  2. Ревьюер (чаще всего — самый опытный член команды) откладывает свою текущую задачу, контекстно переключается, изучает код.

  3. Происходит диалог: комментарии, правки, повторные проверки.

  4. Код мержится.

Кажется, ничего сложного. Но дьявол, как всегда, в деталях. И в цифрах.

Кажется, ничего сложного. Но дьявол, как всегда, в деталях. И в цифрах.

Цифры, от которых волосы шевелятся у любого тимлида

Мы собрали статистику по 5+ проектам (веб, блокчейн, высоконагруженные сервисы) и вот что получили.

1. Время — главный ресурс, который мы теряем

Показатель

Значение

Комментарий

Среднее время жизни PR

2.5 рабочих дня

От создания до мержа

Ожидание в очереди

~10 часов

Senior завален своей работой

Чистое время работы на PR

45 минут

Анализ, комментарии, проверка правок

Контекстное переключение

30-40 минут

15-20 мин на погружение + 15-20 мин на возврат к своим задачам

Итого время senior'а на PR

~1.5 часа

Эффективное время самого дорогого специалиста

Вывод: Один пулл-реквест стоит команде почти два дня задержки и полтора часа времени senior-разработчика.

2. Экономический удар: считаем деньги

Давайте переведем это в деньги. Возьмем условную команду из 5 человек (3 миддла, 2 сеньора).

  • Каждый разработчик создает в среднем 3 PR в неделю.

  • Команда в неделю производит 15 PR.

  • На ревью этих 15 PR два сеньора тратят: 15 PR * 1.5 часа / 2 сеньора = ~11 часов на каждого.

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

Грубый расчет: При стоимости часа сеньора условно в 5000 рублей, команда из 5 человек еженедельно тратит на код-ревью около 55 000 рублей. В месяц — ~220 000 рублей. В год — более 2.5 миллионов рублей.

И это — только прямые затраты. Мы еще не считаем упущенную выгоду от задержек выхода фич на рынок.

3. Качество? Не все так однозначно

«Но ведь ревью повышает качество!» — возразите вы.
И будете правы. Но лишь отчасти.

Распределение комментариев в код-ревью:

Тип комментариев

Доля

Примеры

Стиль кода и форматирование

70%

if (!user) vs if (! user), нейминг, отступы

Архитектура и дизайн

25%

«Не лучше ли использовать стратегию?», «Нарушение инверсии зависимостей»

Критические баги

5%

Утечки памяти, крайние случаи, NPE

Что это значит?
А это значит, что львиная доля времени senior'а тратится не на поиск критичных ошибок, а на наведение красоты. Ту самую красоту, которую мог бы и должен бы обеспечивать линтер, настроенный один раз на весь проект.

Мы не отрицаем важность архитектурных споров. Но они тонут в море комментариев про пробелы и запятые.

Последствие №1: Выгорание сеньоров

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

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

Последствие №2: Снижение скорости команды

Когда фича «висит» в ревью 2-3 дня, страдает вся команда. Разработчики теряют контекст, не могут двигаться дальше, вынуждены переключаться на другие задачи. Скорость доставки ценности бизнесу падает в разы.

Что делать? Признать проблему

Я не призываю отказываться от код-ревью совсем. Это было бы безумием. Но я призываю перестать делать вид, что текущая модель работает.

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

Нужно искать новые подходы. Автоматизировать рутину. Перераспределить нагрузку. Использовать технологии, чтобы освободить человеческий мозг для того, что он действительно умеет делать лучше всего — для сложных архитектурных решений.

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

А как у вас обстоят дела с код-ревью? Узнали в этих цифрах свою команду? Или, может, ваша статистика выглядит иначе? Жду ваших war stories в комментариях — давайте померимся болью.

С уважением к вашему времени,
Олег Акулов, основатель Nomium.

Комментарии (0)


  1. kmatveev
    26.09.2025 10:35

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

    Я сомневаюсь в этих числах.

    Вывод: Один пулл-реквест стоит команде почти два дня задержки

    С чего бы ожидание реквеста стоило всей команде задержки?

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

    И почему в отсутствии линтера виновато review ?

    Когда фича «висит» в ревью 2-3 дня, страдает вся команда. Разработчики теряют контекст, не могут двигаться дальше, вынуждены переключаться на другие задачи.

    Как-то у вас разработчики быстро теряют контексты.

    Статья - нейросетевой мусор с громкими заявлениями.


  1. viordash
    26.09.2025 10:35

    5% — это найденные реальные баги

    имхо этого достаточно для необходимости код-ревью

    70% комментариев в ревью касаются стиля кода и форматирования.

    а разве автоформатер кода не решит эту долю проблем?


  1. ALapinskas
    26.09.2025 10:35

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

    Да и впринципе нужно мониторить, что народ заливает, пасхалку зальют, или того хуже - бекдор сделают, кто будет отвечать?


  1. san-smith
    26.09.2025 10:35

    Кажется у вас проблема с процессами, а не с ревью.

    • "Ожидание в очереди 10 часов" -- можно взять за правило, например, начинать рабочий день с проведения ревью. Тогда среднее время в худшем случае будет 8 часов. Можно придумать ещё какие-то соглашения.

    • "львиная доля времени senior'а тратится ... на наведение красоты" -- что мешает таки настроить один раз линтеры и статические анализаторы, чтобы больше не тратить это время?

    • "львиная доля времени senior'а тратится ..." -- есть мнение, что выполнять ревью могут не только сеньоры. Если не делать их узким горлышком, то они и не будут тормозить разработку.

    • "Среднее время жизни PR 2.5 дня" -- опять таки, возможно это специфика конкретных стеков/проектов/команд. Потому что так не везде -- особенно, если стремиться делать небольшие PR.

    • "Чистое время работы на PR 45 минут" -- см. предыдущий пункт. Если подавляющее число PR состоит из 3-5 файлов, с пятком изменений в каждом, то и ревью обычно требует меньше времени.