A depuração com pato de borracha

Categoria: Artigos
Categoria Pai: ZØST
Acessos: 902
Imagem meramente ilustrativa

Eu tenho certeza que você já usou a depuração com "pato de borracha" sem saber. Antes mesmo de eu conhecer este termo eu já usava esta técnica de forma meio que empírica. Na minha opinião ela tem a ver com concentração, com convergência (ou afunilamento) de ideias e parte do princípio simples de que, para pedir ajuda a alguém, você precisa conhecer bem o contexto no qual o problema está inserido.

Conhecendo o contexto, você poderá explicar o que está ocorrendo para o "pato de borracha" e assim ele poderá te ajudar de uma forma que você jamais imaginaria 😉

Não force, estude!

Parece bem óbvio ser necessário conhecer o contexto de um problema, mas pode acreditar, existem pessoas que não fazem a menor ideia do que está acontecendo e querem resolver um problema. Para estas pessoas, nenhum "pato de borracha" servirá! 

Cansei de ver nos grupos sobre programação dos quais participo, pessoas pedindo ajuda a respeito de determinado assunto, muitas vezes complexo, quando mal sabiam o que era uma condição, um loop ou outros recursos da linguagem. Tratavam-se de perguntas técnicas, sobre erros técnicos dentro de sistemas que não chegavam a ser complexos, mas certamente demandavam um conhecimento mínimo sobre a tecnologia sendo usada. Claramente estas pessoas estão fadadas ao insucesso por estarem forçando a lida com algo que não entendem e tratando um problema que certamente tem ramificações, como algo absolutamente pontual.

A única dica que eu posso dar para estas pessoas é que elas não pulem etapas no aprendizado da programação e, principalmente, não tentem ser o que não podem ser (ainda) para agradar ou "mostrar serviço" a outra pessoa (um superior?), confiando que obterá ajuda de outras pessoas quando problemas surgirem. Mesmo sabendo que você pode obter ajuda quando for necessário, jamais, eu disse JAMAIS, coloque essa possibilidade em algum tipo de balança na hora de aceitar algum projeto, não dependa de ninguém, ou, pelo menos, tenha essa frase como seu mantra pessoal. Conheça suas limitações e não as exceda a não ser que seja absolutamente necessário. É muito mais honesto e responsável dizer:

Desculpe, eu não sei como resolver esse problema e não posso arcar com esta responsabilidade sob pena de não entregar a solução a tempo. Por favor, considere encaminhar esta demanda para um colaborador mais experiente. Eu me comprometo a acompanhar o desenvolvimento junto a este outro colaborador, para assim entender melhor o que se passa e assim aprender, para que na próxima vez eu, sozinho, possa lidar com tal tipo de problema. 


Mas afinal o que é a depuração com "pato de borracha"?

Sem muito mais enrolação, a depuração com "pato de borracha" é:

A explicação detalhada de um problema com o intuito de obter ajuda sobre ele, onde, devido a necessidade de conhecimento do contexto onde o problema está, a pessoa que pede ajuda acaba ela mesma descobrindo a solução, porque ao precisar explicar o problema ela se concentrou o suficiente nos detalhes do contexto e assim obteve ainda mais detalhes que anteriormente passaram despercebidos.

Resumidamente e de forma bem grosseira seria o ato de tentar explicar um problema de forma detalhada e, por conta disso, achar a solução no decorrer da própria explicação.

Mas onde está o "pato de borracha"?

Se você é um leitor atento, deve ter percebido que anteriormente neste texto eu me referi a pato de borracha sempre entre aspas e o motivo disso é que a técnica não exige a existência de tal pato, o qual é apenas um símbolo que representa qualquer objeto inanimado ou mesmo uma outra pessoa! Sabe aquele seu colega de trabalho que te escuta quando você está explicando um problema e de repente você mesmo acha a solução? Pois bem, neste caso seu colega foi seu "pato de borracha". Mais recentemente, até mesmo os grupos de Facebook e WhatsApp podem ser ótimos patos de borracha!

A existência de algum objeto ou mesmo pessoa também é desnecessária. Eu mesmo, quando tenho um problema difícil de resolver, me levanto da cadeira e fico andando de um lado para o outro, explicando o problema para... ninguém, em voz alta, e normalmente funciona do mesmo jeito. Não se trata de ter algo ou alguém para o qual explicar alguma coisa, trata-se, como eu disse anteriormente, de formular uma explicação detalhada a respeito de algo e com isso, naturalmente, obter detalhes que estavam anteriormente ocultos.

Se você está se perguntando então, porque isso é conhecido como "depuração com pato de borracha", é porque o termo faz referência a história de um livro (The Pragmatic Programmer) onde o programador explica linha por linha de um código a um pato de borracha.