[#MetodologiasÁgeis] Boas práticas de depuração
Autor: João Victor Dos Santos | Publicado: 2013-04-08T08:00:00-03:00


Por Felipe Madureira, em Blog Scrum Half






Periodicamente, 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&nbsp;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&nbsp;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.






Estabilize o erro&nbsp;- Procure encontrar os valores de entradas e as condições em que o problema ocorre.




Localiza a causa do erro&nbsp;- Formule hipóteses, realize o teste delas até que consiga encontrar a fonte do problema




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




Teste&nbsp;- 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&nbsp;para garantir que a situação nunca se repita?




Procure erros semelhantes&nbsp;- 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é&nbsp;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&nbsp;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!