Método

Como eu depuro

ligações 5

A primeira hipótese razoável costuma estar errada

É a regra que mais me economiza tempo, e o problema é justamente que a hipótese é razoável: ela explica o sintoma bem o suficiente para eu parar de procurar. Bug que custa caro quase nunca é o que resistiu à investigação — é o que aceitou uma explicação plausível cedo demais.

Por isso o meu roteiro não começa por entender. Começa por reproduzir.

O roteiro

  1. Reproduzir antes de teorizar. Sem reprodução, qualquer conserto é palpite com aparência de solução. E quem conserta sem reproduzir não descobre que consertou outra coisa
  2. Isolar até a menor coisa que ainda falha. Metade dos bugs se explica sozinha nesse caminho, antes de eu formar qualquer teoria
  3. Confiar na medição, não na memória. Se eu acho que a dependência está lá, eu procuro. “Eu tenho quase certeza” é o começo da maioria das horas perdidas
  4. Desconfiar de sucesso silencioso. Código de saída lido através de um cano mente, log sem erro não é prova de que rodou, e processo que termina rápido demais geralmente não fez nada
  5. Ler o que o sistema realmente executa, não o que o código sugere que ele executa: pipeline efetivo, configuração resolvida, template incluído, o que de fato subiu

O quarto e o quinto são os que mais me pegaram ao longo do tempo, e os dois têm a mesma raiz: existe uma distância entre o que o código diz e o que a máquina faz, e ela é maior do que parece.

Registrar o atrito

Mantenho um diário de atrito. Quando um problema custa mais de uma tentativa e o sintoma apontou para a causa errada, vira uma linha com data, sintoma, causa real e custo. Não entra erro de digitação nem o que o próximo descobriria de primeira, e essa barra é o que separa um diário útil de uma lista de tudo que deu errado.

O valor não está em lembrar do bug. Está em que os padrões aparecem: relendo o acumulado dá para ver que uma classe inteira de problema tem origem comum, e aí o conserto certo é na origem, não no caso.

Hoje essa captura é automática e alimenta O ciclo que se alimenta, que cruza o acumulado e propõe a ferramenta que resolve a classe inteira.

Ver também

Como eu trabalho · Qualidade e engenharia de contexto · Engenharia com IA

Pablo Mickael Quevedo Senior Software Engineer · autor principal de 32 sistemas · Novo Hamburgo, RS

5 notas ligadas a esta

A vizinhança desta estrela no céu do portfólio.

Explorar a galáxia →