Depuração Autônoma

January 15th, 2008 § 3 comments

Eu estou lendo Blink, de Malcolm Gladwell, que é basicamente sobre a habilidade de tomar decisões corretas a partir de informação mínima–em outra palavras, instintiva ou intuitivamente. Escrevo mais sobre o livro depois, mas estive pensando no que o autor escreve e em como o seu argumento sobre expertise se aplicava à programação.

O que me ocorreu é que programadores experientes são capazes de chegar ao mesmo tipo de julgamento instantâneo quando estão depurando uma aplicação. Eu consigo me lembrar de inúmeras instâncias na minha carreira em que a simples visualização de um código, sem mesmo tentar rodar ou ler em mais detalhes o que está escrito, gerou uma identificação instantânea do que estava errado.

Eu acho que qualquer programador pode dizer a mesma coisa: quanto mais tempo se tem de carreira, maior a capacidade de correlacionar a estrutura e função presumida do código com o problema que está acontecendo. E isso vale de situações mais básicas–por exemplo, ao presumir que falta uma condição de join em uma declaração SQL por causa de resultados duplicados–a situações um pouco mais complexas–por exemplo, ao identificar um problema de configuração sutil quando uma aplicação começa a se comportar ligeiramente diferente do esperado mas ainda funciona dentro de quase todos os parâmetros.

O interessante é comparar o comportamento de dois programadores com tempos de carreira significativamente diferentes. Curiosamente, eu estava fazendo esse experimento–sem formalização nenhuma, é claro–nos últimos dois meses e o que observei realmente bate com o que Gladwell está propondo. Eu não concordo com vários de seus outros argumentos, mas essa relação básica entre expertise e intuição é algo que, como ele mesmo mencione, pode passar desapercebida.

O interessante é o converso que ele menciona, quando a intuição falha. Isso pode significar horas procurando por um problema ridiculamente simples–com uma letra trocada que impede um programa inteiro de funcionar. O fato de que tais problemas pode ser resolvidos com um recuo (seja este na forma de uma ausência temporária do problema ou do uso de uma segunda opinião) também parece indicar que o mecanismo é, em certa medida, passível de um reset propositado.

De qualquer forma, é muito interessante pensar na capacidade que nossa mente possui de fazer esse tipo de comparação e classificação de uma maneira quase que instantânea e com uma precisão substancial.

§ 3 Responses to Depuração Autônoma"

  • Esses dias eu estava conversando com uns colegas de trabalho sobre isso, a facilidade com que pessoas que tem anos de profissão conseguem resolver problemas no código, coisa de botar o olho e saber o que está acontencendo e o que está errado, eu como o mais “experiente”, falei isso, com o tempo aquilo vai se tornando normal, certos problemas que acontecem já fazem parte do dia-a-dia.

    Com o tempo eles aprendem. 😛

    Abraço!

  • Nesse ponto vale aquela velha comparação com exercício físico. De tanto exercitar vc acaba condicionando.

    O ser humano é uma máquina de repetição (e se olharmos mais detidamente veremos que em tudo, taí a história que não me deixa mentir). Evoluimos mas nos repetimos. Com código é a mesma coisa, de tanto ver um comportamento (e corrigir quando está errado) o cérebro já fica treinadinho para isso :-)

  • Ronaldo says:

    Rafael Souza, foi isso que me chamou a atenção quando eu estava lendo o livro, embora eu tenha a impressão que isso também se aplique a problemas eventuais que não acontecem regularmente. Mas vou prestar mais atenção. :-)

    Rafael Ferreira, sim, eu fico fascinado com isso. E o mais interessante é que depois, se alguém perguntar como você descobriu aquilo só de bater o olho, você primeiro não consegue responder. Depois, com um pouco de reflexão, consegue desmembrar o que parecia errado e o por quê da sensação.

Leave a Reply

Your email address will not be published. Required fields are marked *

What's this?

You are currently reading Depuração Autônoma at Superfície Reflexiva.

meta