sexta-feira, 24 de março de 2006

Paralelo sobre TDD

Há 150 anos atrás, os médicos acreditavam que espíritos do mal causavam doenças. Então a anestesia dava aos médicos mais tempo para realizar cirurgias. Esses médicos tipicamente lavavam suas mãos somente após operar - para limpar o sangue. Os pacientes frequentemente pegavam infecções pós-operatórias. "A operação era um sucesso mas o paciente morria."

Por volta de 1850, o Dr. Ignaz Philippe Semmelweiss experimentou lavar as mãos antes de ajudar as mulheres a dar a luz, ao invés de somente depois. Ele relatou uma baixa taxa de mortalidade, mas os médicos ainda tinham que aprender melhores sistemas para relatar e valorar experimentos e estatísticas, e Semmelweiss não usava um método científico para anunciar os resultados.

Então Louis Pasteur e Robert Koch espalharam uma teoria que animais pequeninos comiam nossos corpos por dentro. Esse modelo físico explicou os experimentos, voltados para antecipar a pesquisa com microscópios. Médicos como Scot Joseph Lister adicionaram soluções anti-sépticas aos seus tratamentos. Contudo, muitos médicos ainda se recusaram a lavar ou esterilizar seus instrumentos – mesmo assim esses procedimentos obviamente não puderam prejudicar os pacientes. Doutores em liderança e ensino de regras, como Pierre Pachet, o professor de Fisiologia em Toulouse, por volta de 1872, declamaria que, “A teoria de germes de Louis Pasteur é uma ficção ridícula.”

Hoje nós reconhecemos corpos saldáveis contendo milhões de criaturinhas vivendo em harmonia de cooperação e alvoroço. Os médicos diminuíram o risco de transtornar esse balanço começando a esfregar uma longa lista de coisas, antes mesmo de operações de menor importância, usando sabão e adotando alguns procedimentos que são agora obrigatórios por lei.

A indústria de programação vive momentos interessantes. Enquanto muitos engenheiros ainda acreditam que falta de planejamento de projeto causa bugs, eles não tem uma razão concebível para não escrever código de teste antes de testar o código. O que certamente poderia não machucar o paciente. Evidências nesse campo irão eventualmente encerrar o debate.

(Texto traduzido de Test First User Interfaces: Developing Agile GUI Code, capítulo 16 página 195, fornecido do grupo de discussão Test-First User Interfaces (TFUI) em http://groups.yahoo.com/group/testfirstuserinterfaces/ do qual atualmente faço parte).

Há cada vez mais relatos de empresas que implantaram métodologias Ágeis, Programação Extrema, ou metodologias com Desenvolvimento Dirigido a Testes . A grande maioria relata um significativo salto qualitativo no processo de desenvolvimento e, principalmente, no produto final.
Emergindo de práticas simples e sem burocracia, elas estão cada vez mais sendo usadas por equipes de projeto preocupadas com a confiabilidade e com a diminuição dos custos de manutenção do software.

Em próximos posts deverei discutir alguns aspectos relacionados ao desenvolvimento de software, alguns deles possivelmente relacionados a metodologias que trazem grandes melhorias qualitativas e aumentam o retorno do investimento empregado em seu desenvolvimento.

Até o próximo ! ;-)

Nenhum comentário: