olá Pessoal,
O post de hj é bem curto, mas uma reflexão sobre TDD. O post nasceu após ter passado em alguns projetos, onde todos falaram que TDD era uma pedra no caminho e que não consigam medir se a técnica ajudou ou não a entrega do produto. Só quando eu ouvir essa frase eu fiquei já “assustado”. Como assim medir TDD? A seguir veremos que TDD não é uma receita de bolo que seguindo os passos 1-x estamos fazendo TDD. Não é bem por ai.
Muitos desenvolvedores, gestores, arquitetos acreditam fortemente que TDD é apenas criar unit test ou somente fazer os testes primeiro. Isso não é verdade. Primeio que TDD é abstract e não nada dizendo como TDD é. Apenas existe um ciclo de vida com as fases que devemos exercitar ao querer dizer que estamos fazer TDD. Mas, ,mesmo assim não há um passo que de 1-10, se você corretamente terá 100% de certeza que fez TDD. Por isso que falo TDD não é receita de bolo. E aqui vai algumas justificativas:
- Em uma receita de bolo há passos de como preparar, mas TDD não diz como fazer seus testes;
- Na preparação de um bolo, há quantidade certa dos ingredientes, mas TDD não diz a quantidade certa de unit test;
- O fato de eu ter misturado os ingredientes e seguido os passos não quer dizer que terei um bolo no final, o fato de seguir o ciclo de vida de TDD não quer dizer que fiz TDD.
Eu vejo muito por ai, pessoas associando TDD apenas aos unit tests, isso não é verdade. Também já passei em projeto onde as pessoas, entendiam completamente errado o que TDD é na verdade. E associam atrasos de entregas a técnica. Eu costumo dizer: “se você diz que precisa de mais tempo para entregar por causa de TDD, vc tá fazendo algo de errado”. E isso é fato, não há relação alguma que precisamos de mais tempo para entrega por cause de TDD, o problema está se o desenvolvedor realmente entendeu como fazer seus testes. Vejo muito que estão acostumado a programar orientado seguindo passos, ou a uma ferramenta, TDD força o desenvolvedor a pensar, entender , refletir antes de sair programado. Quem faz TDD quando vai programar já sabe o que vai escrever e não sai escrevendo qualquer coisa. Mas, isso não são para todos. Pois, exige tempo e paciência. E o mais fácil é dizer, TDD não funciona. Eu pergunto como vai funcionar se TDD é abstrato? TDD não é framework, um software que você coloca na máquina e no final tá funcionando.
Vou ficando por aqui.
Abraços,