NOTA DE TRABALHO
Corrija o bug e depois corrija o sistema que o permitiu
Uma forma repetível de separar a correção local da investigação que impede o mesmo problema de voltar.
Um relato de bug mostra onde uma falha ficou visível. Raramente é ali que ela começou, e quase nunca é o melhor lugar para começar.
O primeiro trabalho é parar o dano. Reproduza a falha, aplique a menor correção correta e coloque no ar. Mitigação vem primeiro porque pessoas estão sendo afetadas agora, e uma correção que funciona é evidência real sobre a causa.
Uma correção local é uma hipótese
Quando o reparo funciona, ele confirma que você atacou uma causa. Não confirma que o sistema tornou essa causa fácil de criar. Uma checagem ausente, um contrato desatualizado ou uma fronteira pouco clara podem produzir a mesma falha em outro lugar, onde você ainda não olhou.
Essa distinção decide se você corrigiu um incidente ou removeu uma classe deles.
Vi isso na escala de uma agência, onde os mesmos problemas técnicos chegavam em contas diferentes: páginas lentas, dados estruturados ausentes, navegação quebrada, migrações que perdiam rankings. Cada correção funcionava. E o próximo cliente produzia a mesma falha, porque a correção vivia em um projeto e não em um fluxo. O reparo estava certo. O sistema ao redor do reparo era o problema.
A investigação que faço depois da correção
- Reproduza sob demanda. Uma falha que você não consegue provocar é uma falha que você não consegue verificar.
- Delimite. Quais entradas, estados e caminhos são afetados, e quais não são.
- Inspecione as condições. O que o sistema assumia que se mostrou falso?
- Teste a causa suspeita. Mude uma coisa e observe se a falha desaparece.
- Verifique o risco de recorrência. Se a mesma condição existe em outro lugar, a correção local não terminou.
A sequência não é um ritual. Etapas são puladas quando a falha é claramente local, e pular é uma escolha deliberada, não um descuido.
Como é uma checagem de recorrência
Digamos que um job de publicação escreva um campo vazio depois de uma fonte mudar o formato da resposta. A correção local mapeia o novo formato e segue. A checagem de recorrência faz outra pergunta: o que tornou um campo vazio aceitável para ser gravado?
Se a resposta é que nada validava o campo antes de ele chegar ao banco, a correção durável é uma regra de validação na fronteira de ingestão. Essa regra passa a proteger todas as fontes, inclusive as que ninguém conectou ainda. No ocalendar, é exatamente por isso que o pipeline manteve uma etapa de revisão humana para eventos ambíguos: a regra resolvia os casos conhecidos e uma pessoa capturava os que a regra não descrevia.
Quando a correção local basta
Alguns bugs não merecem mais do que um commit. Um erro de digitação, um dado pontualmente errado ou um caminho de código que não existe mais são um reparo completo. A pergunta que decide é se as condições que produziram a falha tendem a voltar.
Um teste útil: se a mesma falha chegasse no mês seguinte, com outra entrada, a correção atual pegaria? Se a resposta é não, você está corrigindo incidentes um a um.
O que muda quando você corrige o sistema
A correção durável move a garantia para um lugar onde ela não pode ser esquecida: um tipo, uma regra de validação, um teste que cobre o caso ou uma regra documentada que a próxima pessoa vai aplicar. É isso que transforma um incidente em um sistema mais difícil de quebrar.
Existe um custo, e vale nomeá-lo. Uma correção de sistema é mais lenta que um patch, e precisa de um lugar para morar: um fluxo, um checklist, um registro. O valor aparece no segundo e no terceiro incidente, não no primeiro. Na SEO Marketing Brasil foi essa a mudança na unidade do trabalho: de consertar uma conta para construir a coisa que consertava contas. As melhoras de 60 a 80% no tempo de carregamento importaram, e as implementações reutilizáveis por trás delas são o que barateou a próxima conta.
O mesmo princípio guia como construo sistemas de engenharia. O Kyros explicita as regras de operação para que problemas recorrentes parem de ser redescobertos, e a página de abordagem cobre o modelo de decisão mais amplo.