Meu processo normalmente segue quatro fases: detecção, contenção, diagnóstico e prevenção.
1️⃣ Detecção
Primeiro, eu garanto que o problema seja identificado rapidamente através de:
- Logs estruturados
- Monitoramento e métricas
- Alertas automatizados
- Health checks
Se o usuário reportou, eu tento reproduzir imediatamente no ambiente mais próximo possível de produção.
2️⃣ Contenção (prioridade máxima)
Antes de sair “caçando bug”, eu penso:
Como eu reduzo o impacto agora?
Algumas ações comuns:
- Rollback para a versão anterior
- Desabilitar feature via feature flag
- Ativar fallback
- Escalar horizontalmente se for gargalo
Produção é sobre estabilidade primeiro, correção depois.
3️⃣ Diagnóstico
Depois que o sistema está estável:
- Analiso logs e stack trace
- Verifico métricas (CPU, memória, latência, erros 5xx)
- Reviso alterações recentes (git diff / último deploy)
- Reproduzo localmente ou em staging
Evito “achismo”. Trabalho com evidência.
4️⃣ Correção e prevenção
Depois de corrigir:
- Escrevo teste automatizado cobrindo o cenário
- Faço análise de causa raiz
- Documento o incidente (mesmo que informalmente)
- Avalio se precisa melhorar monitoramento ou validação
Bug resolvido sem aprendizado é bug que volta.
Em produção, o mais importante não é quem errou, mas como o time responde. Eu priorizo comunicação clara, rapidez na contenção e melhoria contínua para reduzir reincidência.
Isso mostra maturidade de time.