Pular para o conteúdo

PRs abandonados e parados

Padrões em PRs fechados sem merge e parados, sinais de ambiguidade de decisão não resolvida.

PRs mergeados contam apenas parte da história do atrito. PRs que são fechados sem merge ou deixados abertos por semanas representam consenso fracassado: discussão não resolvida que consumiu tempo de revisão sem produzir uma entrega.

Métrica Valor
PRs fechados sem merge amostrados 500
Abandonados com muita discussão (≥10 eventos de revisão) 12 (2,4%)

Embora 2,4% pareça pouco, esses 12 PRs representam esforço de revisão concentrado e desperdiçado.

PR Eventos de revisão TTM até fechar (h) Arquivos Churn
#109150 42 47 7 907
#109526 23 170 22 1.269
#109112 19 214 3 53
#111080 17 91 3 79
#111112 16 124 20 1.979
#110145 16 430 25 3.236
#110442 14 137 4 285
#110859 12 339 8 118

Padrões notáveis:

  • #109150 teve 42 eventos de revisão antes de ser fechado, mais do que qualquer PR mergeado na lista dos principais da nossa amostra.
  • #110145 ficou aberto por 430 horas (18 dias) com 25 arquivos alterados e 3.236 linhas de churn antes do abandono.
  • #109112 é interessante: apenas 3 arquivos e 53 linhas de churn, mas 19 eventos de revisão e 214 horas. PRs pequenos com muita discussão geralmente indicam discordância sobre a abordagem e não sobre o detalhe de implementação.
Métrica Mergeados de alto atrito (top 25%) Fechados com muita discussão (≥10 revisões)
Contagem 125 12
Mediana de TTM (horas) 65,62 130,58
Mediana de eventos de revisão 6,0 15,0
Mediana de churn 156,0 214,5
Mediana de arquivos 4,0 4,0

Observações principais:

  • PRs abandonados levam 2x mais tempo para chegar ao fechamento do que PRs mergeados de alto atrito levam para mergear (130,58h contra 65,62h)
  • PRs abandonados têm 2,5x mais eventos de revisão (mediana de 15,0 contra 6,0). O volume de discussão é substancialmente maior
  • O churn é cerca de 40% maior em PRs abandonados (214,5 contra 156,0)
  • A contagem de arquivos é a mesma (mediana de 4,0 para ambos), sugerindo que a diferença não é sobre o tamanho do PR, mas sobre a complexidade ou a controvérsia das mudanças

A paridade na contagem de arquivos é o achado mais revelador: PRs abandonados de muita discussão não são necessariamente maiores. Eles são mais controversos. O mesmo PR de 4 arquivos pode tanto ser mergeado com 6 eventos de revisão quanto ser abandonado após 15, dependendo de haver ou não consenso sobre a abordagem.

Métrica Valor
PRs abertos amostrados 251
Parados há 14+ dias 92 (36,7%)
Parados há 30+ dias 33 (13,1%)

Mais de um terço dos PRs abertos está parado na marca dos 14 dias. Essa é uma parcela significativa de trabalho em andamento que pode nunca chegar a ser mergeado.

PR Eventos de revisão Horas aberto
#109819 55 760
#108533 40 1.050
#108409 13 1.091
#110820 11 443
#110808 11 445

#109819 tem 55 eventos de revisão e está aberto há mais de 31 dias. É o PR mais discutido de todo o nosso conjunto de dados (mergeado, fechado ou aberto). #108533 está aberto há 43 dias com 40 eventos de revisão.

Eles representam um investimento contínuo significativo de revisão sem resolução.

Três padrões emergem dos dados de PRs abandonados e parados:

1. Discordância sobre a abordagem, não sobre o tamanho

Seção intitulada “1. Discordância sobre a abordagem, não sobre o tamanho”

PRs abandonados de muita discussão têm a mesma mediana de contagem de arquivos que os mergeados (4 arquivos), mas 2,5x os eventos de revisão. Isso sugere fortemente que o atrito vem de discordância sobre a abordagem e não do volume de mudanças. Um ADR que pré-decide a abordagem para cenários comuns curto-circuitaria esses debates.

Os dados de PRs parados mostram PRs com 40-55 eventos de revisão ainda abertos após 30+ dias. Sem políticas explícitas sobre quando fechar ou escalar, os PRs podem acumular discussão ilimitada sem resolução. Um ADR de “SLA de revisão de PR” poderia estabelecer gatilhos de escalonamento.

Os 12 PRs abandonados com ≥10 revisões representam no mínimo cerca de 120 eventos de revisão que não produziram nenhum resultado mergeado. Se assumirmos 10 minutos por evento de revisão em média, isso são cerca de 20 horas de tempo de revisores com zero entrega. A validação de abordagem em estágio inicial (documentos de design, RFC ou uma verificação rápida de ADR) poderia detectar o desalinhamento de abordagem antes de um investimento significativo de revisão.

Esses padrões informam propostas de ADRs específicas:

  • ADR de escopo e fatiamento de PRs: pré-decidir a abordagem para padrões comuns de mudança para reduzir a discordância sobre a abordagem
  • ADR de escalonamento de revisão: definir gatilhos baseados em tempo para escalonamento quando os PRs estancam
  • ADR de validação antecipada: exigir acordo sobre a abordagem para mudanças acima de um limiar de complexidade antes de abrir um PR