ID-10043505Periodicamente, aqui na empresa, temos a realização de palestras de conteúdo técnico buscando compartilhar o conhecimento individual para que ele se torne coletivo e uniforme entre a equipe. Esse projeto, de iniciativa dos próprios funcionários, trata dos assuntos mais variados e é feito da equipe para a equipe. E é baseado em sua primeira apresentação, do Rodrigo Aguas da Silva em que me inspirei para escrever o post de hoje. Em sua palestra, Rodrigo buscou levantar boas práticas para a Depuração ( mais conhecida entre os desenvolvedores como Debug ) e sobre Otimização de código. Nesse post tratarei apenas do primeiro assunto, buscando oferecer aos leitores boas práticas para encontrar e buscar soluções de problemas técnicos.

 

Em sua apresentação, baseada no conhecido livro Code Complete, Rodrigo apresentou que a diferença de tempo entre desenvolvedores para encontrar a fonte do problema pode variar de até 20 vezes. Para reduzir o tempo de desenvolvimento perdido com essa tarefa, é de extrema importância saber as práticas que facilitam localizar os defeitos. Os passos descritos são simples, no entanto de extrema importância para se realizar o Debug com eficiência. A idéia é aplicar o método científico ao cenário de depuração, como descrito brevemente nos passos abaixo.

 

  1. Estabilize o erro – Procure encontrar os valores de entradas e as condições em que o problema ocorre.

  2. Localiza a causa do erro – Formule hipóteses, realize o teste delas até que consiga encontrar a fonte do problema

  3. Corrija o defeito – Realize a correção. Cuidado! 50% das vezes em que um erro é corrigido, outro é colocado no lugar!

  4. Teste – Realize o teste para verificar se o erro foi mesmo corrigido. Nesse momento, além de testar manualmente, porque não criar um teste automatizado para garantir que a situação nunca se repita?

  5. Procure erros semelhantes – Identifique cenários parecidos e códigos semelhantes em que o defeito também possa ter acontecido.

Uma prática que costuma reduzir muito o tempo para se encontrar ou corrigir um problema é apresentar para a equipe os sintomas e qual é o objetivo final do código. Baseado em experiências anteriores, os outros membros da equipe podem formular hipóteses e acelerar em muito o processo de depuração. Em alguns casos é até possível que a equipe decida por uma mudança de estratégia e realize uma alteração maior do código buscando melhorar a manutenção e a flexibilidade.

 

No entanto, ao levar o problema aos outros desenvolvedores, fique atento a forma com que o mesmo será levado. Muitas vezes, fazer a pergunta certa é essencial para uma resposta rápida. E esteja preparado para responder uma simples pergunta como: “O que você já tentou?”. Essa pergunta é tanto válida para a identificação do problema quanto para a solução. Saber explicitar seus passos até então e seu conhecimento sobre o assunto questionado é importante para evitar que os demais ofereçam solução triviais ou não aplicáveis para o caso. Para entender mais sobre assunto, recomendo a leitura desse post (em inglês): whathaveyoutried.com

 

A depuração é um trabalho que sempre existirá durante o desenvolvimento de software. Portanto, possuir boas técnicas e ferramentas é essencial para evitar tempo desperdiçado e garantir uma maior produtividade dentro da equipe. E você, qual a sua experiência com o assunto? Deixe seu comentário com práticas, dicas ou dúvidas para continuar a discussão!