TDD e Profissionalismo

Robert C. Martin, também conhecido como Uncle Bob, escreveu um texto muito interessante sobre como TDD define a nós programadores como profissionais.

Para quem não conhece Uncle Bob, ele é programador desde a década 60, escreveu livros sobre código limpoOOC++UMLXPAgilidade. Foi ele que mobilizou vários metodologistas a se juntarem para discutir, o que gerou o Manifesto Ágil. Ele tem um blog que frequentemente tem posts polêmicos.

O texto abaixo chama “Are you a professional?” ou “Você é profissional?”. É da conferência Norueguesa de Desenvolvimento de Software de 2009 (NDC 2009). O keynote do evento foi uma palestra dele com o mesmo nome. Dá pra baixar os vídeos via torrent.

As Três Leis

Desenvolvimento Orientado a Testes (TDD) é definido por três leis simples.

  • Você deve escrever um teste unitário que falha antes de escrever qualquer código de produção.
  • Você deve parar de escrever o teste unitário assim que ele falhar; e não compilar é falhar.
  • Você deve parar de escrever código de produção assim que os testes que estão falhando passarem.

Se você seguir essas três leis que parecem tão bobas, você vai:

  • Reduzir dramaticamente o tempo que você passa debugando código.
  • Aumentar significativamente a flexibilidade do seu sistema, permitindo que você o mantenha com código limpo.
  • Criar documentos que descrever de maneira completa o comportamento do seu sistema.
  • Criar um design para o seu sistema com baixíssimo acoplamento.

Tudo isso a partir dessas três simples regras. Pode soar absurdo. Pode parecer bom demais pra ser verdade.

Profissionalismo

Mas imagine que você é um médico em 1846 e um cara te diz que você pode reduzir drasticamente as taxas de mortalidade, evitar doenças e ferimentos horríveis, e tudo que você tem a fazer é simplesmente lavar as mãos.

Se você não aceitar esse aceitar esse argumento, talvez você aceite esse outro: contadores fazem tudo duas vezes. Toda transação que entra como crédito, também entra como débito. Porque eles fazem esse trabalho dobrado? É uma verificação de segurança. Há uma subtração engenhosa no balanço que produz um zero se não foram cometidos erros. Contadores chamam essa disciplina de Método das Partidas Dobradas.

TDD é o Método das Partidas Dobradas do Software. Cada declaração é feita duas vezes; uma no teste e uma em código de produção.

Nosso código é menos sensível a erros do que uma planilha? Os erros são menos importantes?

Uncle Bob, em Are You a Professional?

2 comentários

  1. camilo lopes disse:

    muito bom os posts de TDD, excelente mesmo alexandre!! e o melhor ainda é a sua clareza na explicação e objetividade.

    Parabens!!

    1. Alexandre Aquiles disse:

      Obrigado!

Deixe um comentário

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.