Engenharia
Precisamos mesmo de pull requests para toda mudança?

O Andrea LaForgia escreveu um post bem provocativo sobre se precisamos mesmo de pull requests. O resumo do próprio autor:
-
As solicitações de pull request (Pull Requests) foram concebidas para contribuições de código aberto feitas por pessoas desconhecidas e sem qualquer vínculo de confiança. Aplicá-las a equipes confiáveis é um erro de categoria.
-
Trabalhos científicos mostram que o principal valor da revisão de código é a transferência de conhecimento, não a detecção de bugs. Menos de 15% dos comentários de revisão se referem a bugs reais.
-
Fluxos de trabalho de Pull Requests assíncronos significam que seu código passa de 86% a 99% do seu tempo de desenvolvimento aguardando. Uma organização chegou a gastar 130.000 horas em um único ano esperando por Pull Requests que não receberam nenhum comentário.
-
Uma pesquisa da DORA com mais de 36.000 profissionais mostra que o desenvolvimento baseado em trunk está correlacionado a um desempenho de entrega de software dramaticamente superior, e revisões de código mais rápidas, por si só, melhoram o desempenho em 50%.
Estamos tão acostumados com o fluxo de PRs, que nem paramos pra refletir se realmente faz sentido. Algumas provocações:
-
Será que todo PR precisa mesmo de um segundo olho humano? Até aquele micro-PR onde você só troca uma label no site? Por quê não só revisar aqueles PRs mais complicados, onde você realmente precisa de feedback?
-
Será mesmo que a melhor forma de passar conhecimento é ter alguém lendo cada linha de código que você escreveu? E será mesmo que todo mundo tem que estar ciente de todas linhas escritas? Tem maneiras melhores de treinar o seu dev júnior sem ser revisando cada vírgula que ele escreve em cada PR que ele abre?
-
Será que é a hora da “volta do pair programming”? Sinto que a popularidade de PP deu uma caída, mas será que a melhor hora dele voltar é agora, onde não conseguimos mais revisar tanto PR?
Meu sentimento é de que realmente não precisamos de PRs como gate-keepers 100% do tempo para 100% do código escrito. Precisamos testar.
Leiam o texto original, indicado nas referências ao final.