Você pode ser ágil sem fazer TDD (desenvolvimento orientado a testes)?
Resposta curta: Sim.
Resposta mais longa:
Existem muitas respostas realmente boas para esta pergunta e referências muito boas. Eu não vou tentar debater esses pontos.
Na minha experiência, Agile é sobre escolher o nível certo de Lean-ness para o projeto em questão. O que quero dizer com Lean-ness? E por que eu trago isso para essa resposta?
Lean não significa cortar todo o possível do seu método. Como um de nossos colegas observou, você não precisa incluir o TDD ou o Teste Unitário em seus comportamentos. No entanto, no contexto do projeto você se encontra, pode ou não ser benéfico.
Vamos pensar na cadeia de suprimentos de um grande varejista não identificado localizado em AK. Existe o consumidor. Eles entram na loja. A loja recebe vários produtos via caminhão. Os caminhões, presumivelmente, pegam esses produtos em um depósito. O armazém é preenchido por remessas de vários fabricantes. Os fabricantes, por sua vez, têm cadeias completas de suprimentos.
O que acontece quando o gerente geral de transporte da cadeia de suprimentos acima é informado de que receberá um bônus anual de US $ 1 milhão por ano para ter menos de 10 caminhões na frota? Ele imediatamente cortará a frota para 9 caminhões. Nesse cenário "terrível", isso aumentará a quantidade de mercadorias armazenadas no depósito (aumentando o custo nesse nó). E vai "passar fome" nas fachadas das lojas.
Assim, a cadeia de suprimentos em geral sofre se a otimização local é permitida sem considerar o todo.
Voltar para TDD e UT. TDD é um mecanismo de expressão de requisitos. O sistema deve executar essas restrições. Justo. O TDD pode substituir o comportamento dos requisitos do Desenvolvimento do Drive de Casos de Uso ou o comportamento dos requisitos do Desenvolvimento Orientado pelo Usuário. Tem o benefício "inclinado" de combinar as cargas de trabalho de Teste de Unidade e Requisitos. É um benefício se a carga de trabalho geral for reduzida. Não é, se a carga de trabalho da cadeia de suprimentos for aumentada (vamos corrigir a qualidade).
E então, você perguntou: Você pode ser ágil sem fazer TDD (desenvolvimento orientado a testes)?
Claro que você pode. Uma pergunta diferente e talvez melhor é:
- Se eu aplicar o TDD a este projeto, isso resultará em uma entrega de software mais eficiente ou menos eficiente?
Para citar um autor favorito ... J.R.R. Tolkien
Lord of the Rings. Fellowship of the Rings. Pg 94
'And it is also said', answered Frodo, 'Go not to the elves for counsel, for they will both no and yes.'
Então, no final, ... depende. Você deve responder a pergunta. Qual caminho o conduzirá mais eficientemente ao (s) objetivo (s) desejado (s).
Para TDD ou não para TDD. Essa continua sendo a questão. : -)
PS - Estou repostando esta resposta em outro site também.
link