Альтернатива код-ревью
За последние два дня получилось посмотреть круглый стол про код-ревью. Много думал. Плохо спал.
Почти все участники круглого стола относятся к код-ревью отрицательно. Ревью создаёт очереди в процессе разработки, увеличивает time-to-market, демотивирует членов команды и провоцирует конфликты внутри коллектива.
Минусы понятные и знакомые всем программистам. Индустрия старается фиксить их разными способами: регламентами по проведению ревью, обучением по ненасильственному общению, уведомлениями о новых МРах в мессенджерах. Я тоже постоянно пытался пофиксить ревью, но участники круглого стола предложили более радикальную альтернативу — отказаться от общепринятого код-ревью. Действительно, если у ревью так много недостатков, от него проще отказаться, чем заниматься постоянными фиксами.
Код-ревью происходит слишком поздно. Задача уже сделана, основные архитектурные решения приняты. В этом месте вносить любые существенные правки дорого и по деньгам, и по ментальному здоровью программиста. Никто не хочет, чтобы его работа была выброшена.
Вместо общепринятого код-ревью участники круглого стола предлагают "положить ревью на бок", то есть размазать его на весь процесс разработки. Сначала два разработчика договариваются о концепции решения, после чего один из них идёт писать код. В процессе написания кода концепция, как правило, начинает сбоить, в этом месте снова стоит встретиться, внести изменения в концепцию и продолжить писать код. Шаги нужно повторять, пока не получим готовую фичу. Когда фича будет готова, достаточно проверить, что она соответствует итоговой концепции. Такая проверка гораздо проще и несёт в себе меньше рисков, чем полноценное код-ревью в самом конце.
Попробую положить ревью на бок в одной из моих команд. Интересно, что из этого получится.