A tabela de hipóteses que substitui o chute
Como transformar uma resposta persuasiva numa fila de experimentos baratos, e por que a ordem dos testes importa mais que a lista.
Pergunte "por que isso está acontecendo?" e você recebe uma causa provável, bem explicada. O problema é que a resposta tem a mesma cara quando está certa e quando está errada — e você acabou de ganhar uma âncora que vai atrapalhar a investigação.
- Organizar uma investigação em hipóteses com experimento associado.
- Ordenar os testes por poder de eliminação, não por probabilidade.
- Impedir que a primeira explicação plausível feche a investigação.
Depuração é redução de incerteza. A pergunta certa em cada passo não é "qual é a causa?" e sim "qual experimento elimina mais possibilidades pelo menor custo?".
Isso muda a ordem dos testes. A hipótese mais provável nem sempre é a que se deve testar primeiro: se ela custa duas horas para verificar e existe outra que custa dois minutos e corta metade do espaço de busca, comece pela barata.
Por que esse endpoint está lento?
Vem uma causa provável com explicação convincente. Você passa a tarde confirmando essa causa em vez de investigar.
Não conclua a causa. Monte uma tabela com: hipótese | evidência a favor | evidência contra | experimento mínimo | custo do experimento | o que ele elimina se der negativo Ordene por (o que elimina ÷ custo), não por probabilidade. Pare após a tabela. Vou trazer o resultado do primeiro experimento.
Vem uma fila de verificações. Você gasta dez minutos e volta com um dado que corta metade das opções.
A diferença: A coluna "evidência contra" é a que faz o trabalho pesado: ela força o assistente a considerar o que não encaixa em cada hipótese, que é justamente o que a resposta ancorada omite.
Como fica na prática
| Hipótese | A favor | Contra | Experimento | Custo |
|---|---|---|---|---|
| Consulta sem índice | Piorou junto com o crescimento da tabela | Ficaria lento sempre, não só às terças | EXPLAIN na query principal | 2 min |
| N+1 numa listagem | Endpoint monta lista aninhada | Volume de terça não é maior | Contador de queries por request | 10 min |
| Contenção de lock | Terça é dia do fechamento em lote | Nenhum timeout registrado | Ver locks durante o pico | 30 min |
| Cache frio após deploy | Deploy costuma sair de manhã | Lentidão dura o dia todo | Correlacionar horário de deploy | 5 min |
A hipótese mais provável (índice) não é a primeira a ser testada por ser provável — é por custar dois minutos. E repare que a coluna "contra" já enfraqueceu duas delas antes de qualquer teste.
A tentação é rodar tudo de uma vez e mandar todos os resultados juntos. Isso desperdiça o valor da tabela: cada resultado deveria reordenar os próximos experimentos.
Devolva um resultado, peça a tabela atualizada, siga. É mais lento por mensagem e mais rápido no total.
Resultado do experimento 1 (EXPLAIN na query principal): [cole a saída] Atualize a tabela: o que isso confirma, o que elimina, e qual é o próximo experimento pela mesma regra (elimina ÷ custo). Se este resultado contradiz alguma hipótese que você tinha como provável, diga explicitamente qual e por quê.
A última instrução força o assistente a reconhecer contradição em vez de encaixar o dado novo na narrativa anterior.
Reiniciar o serviço, limpar o cache ou aumentar o timeout costuma fazer o sintoma desaparecer. Isso não é diagnóstico — é adiamento com aparência de solução.
O teste de honestidade: você consegue explicar o mecanismo que liga a causa ao sintoma, incluindo por que ele apareceu naquele momento e não antes? Se a resposta for "não sei, mas parou", a investigação não acabou.
Como perceber: O chamado foi fechado e ninguém consegue escrever uma frase explicando por que o problema começou.
- A investigação começou por uma tabela, não por uma causa.
- Cada hipótese tem um experimento concreto e um custo.
- A coluna "evidência contra" foi preenchida de verdade.
- Um experimento por vez, com a tabela reordenada a cada resultado.
- A causa final explica o mecanismo e o momento em que apareceu.
- Ordene os experimentos pelo que eliminam dividido pelo que custam — não pelo que parece mais provável.
Comentários e dúvidas
Inscreva-se grátis para comentar, tirar dúvidas, marcar seu progresso e emitir o certificado ao fim do curso.
Inscrever-se grátis com GoogleAinda não há comentários nesta aula.