Indo além dos sintomas para encontrar causas sistêmicas.
A maioria das soluções de problemas aborda sintomas, não causas.
O deploy falhou? Reverta e faça o deploy novamente. Bug em produção? Aplique um hotfix. O build está lento? Adicione mais servidores de build.
Essas correções abordam a dor imediata. O problema desaparece... até voltar. Porque você não corrigiu o que o causou.
Análise de causa raiz significa perguntar "por quê?" até encontrar a causa sistêmica—aquilo que, se corrigido, impediria a recorrência do problema.
O deploy não falhou por causa de uma falha aleatória. Ele falhou porque a suíte de testes é instável. A suíte de testes é instável porque os testes compartilham estado. Os testes compartilham estado porque o framework de testes não foi compreendido quando foi configurado.
Corrija o sintoma imediato (tente o deploy novamente) e você tentará novamente amanhã. Corrija a causa raiz (corrija a compreensão do framework de testes) e os deploys param de falhar.
A análise de causa raiz leva mais tempo inicialmente. Mas economiza exponencialmente mais tempo ao prevenir recorrências.
O Perigo das Correções Rápidas
Toda correção rápida que não aborda as causas raiz cria um padrão: o problema se repete, você o corrige novamente, ele se torna 'normal'. Eventualmente você tem um sistema mantido por soluções alternativas, onde os problemas reais são invisíveis sob camadas de remendos.
Os Cinco Porquês é a técnica de causa raiz mais simples: continue perguntando "por quê?" até chegar a uma causa raiz, geralmente em torno de cinco iterações.
Exemplo:
Problema: A produção ficou fora do ar por 2 horas.
Causa raiz: Separação histórica da configuração do código no pipeline de implantação.
Contramedida: Mover a configuração para o mesmo repositório e pipeline de CI/CD do código da aplicação.
Armadilhas dos Cinco Porquês:
Os Cinco Porquês funcionam melhor como ponto de partida, complementados com dados e múltiplas perspectivas.
O diagrama de Ishikawa, também chamado de espinha de peixe ou diagrama de causa e efeito, ajuda a explorar múltiplas categorias de causas simultaneamente.
O problema é a "cabeça" do peixe. As principais categorias de causas são as "espinhas". As subcausas se ramificam de cada espinha.
Categorias comuns (os 6 M's):
Para software, você pode adaptar:
O diagrama ajuda as equipes a fazer brainstorming de causas sistematicamente em vez de se fixar na primeira ideia. Ele revela que os problemas geralmente têm múltiplas causas contribuintes.
Combine Técnicas
Use os Cinco Porquês para aprofundar em cada ramo da espinha de peixe. A espinha de peixe garante que você explore amplamente; os Cinco Porquês garantem que você explore profundamente. Juntos eles são poderosos.
Incidente: Falha de deploy causou interrupção de 2 horas. Os Cinco Porquês levaram a: configuração não testada → configuração gerenciada separadamente → decisão de arquitetura histórica. A espinha de peixe revelou: também sem runbook de deploy (Processo), sem processo de canary (Método). Abordados os três.
Incidente: Falha de deploy causou interrupção de 2 horas. Conclusão do post-mortem: 'O desenvolvedor deveria ter sido mais cuidadoso'. Item de ação: 'Seja mais cuidadoso da próxima vez'. O problema se repete duas semanas depois com um desenvolvedor diferente.