Più tardi esegui il test, più costa scrivere i test.
Più a lungo vive un bug, più costoso è riparare.
La legge dei rendimenti decrescenti ti consente di metterti alla prova nell'oblio cercando di assicurarti che non ci siano bug.
Buddha insegnò la saggezza della via di mezzo. I test sono buoni. C'è una cosa troppo buona. La chiave è riuscire a capire quando sei sbilanciato.
Ogni riga di codice che scrivi senza test avrà costi significativamente maggiori per l'aggiunta di test più tardi rispetto a se avessi scritto i test prima di scrivere il codice.
Ogni riga di codice senza test sarà significativamente più difficile da eseguire il debug o riscrivere.
Ogni test che scrivi richiederà tempo.
Ogni bug richiederà tempo per essere risolto.
I fedeli ti diranno di non scrivere una singola riga di codice senza prima aver scritto un test fallito. Il test ti assicura di ottenere il comportamento che ti aspetti. Ti consente di modificare rapidamente il codice senza preoccuparti di influire sul resto del sistema poiché il test dimostra che il comportamento è lo stesso.
È necessario valutare tutto ciò rispetto al fatto che i test non aggiungono funzionalità. Il codice di produzione aggiunge funzionalità. E le caratteristiche sono ciò che paga le bollette.
In termini pragmatici, aggiungo tutti i test con cui posso cavarmela. Ignoro i commenti a favore di guardare i test. Non mi fido nemmeno del codice per fare ciò che penso faccia. Mi fido dei test. Ma sono stato conosciuto per lanciare occasionalmente grandine Mary e avere fortuna.
Tuttavia, molti programmatori di successo non fanno TDD. Ciò non significa che non testino. Semplicemente non insistono ossessivamente sul fatto che ogni riga di codice abbia un test automatico contro di essa. Anche lo zio Bob ammette di non testare la sua interfaccia utente. Insiste anche sul fatto che si sposta tutta la logica dall'interfaccia utente.
Come metafora del calcio (ovvero football americano) TDD è un buon gioco di base. Test manuali solo in cui si scrive una pila di codice e si spera che funzioni è un gioco di passaggio. Puoi essere bravo in entrambi. La tua carriera non farà i playoff a meno che tu non possa fare entrambe le cose. Non farà il superbowl fino a quando non imparerai quando sceglierne uno. Ma se hai bisogno di una spinta in una direzione particolare: le chiamate degli ufficiali vanno contro di me più spesso quando passo.
Se vuoi provare TDD, ti consiglio vivamente di esercitarti prima di provare a farlo sul posto di lavoro. Il TDD fatto a metà, metà di cuore e metà di culo è una grande ragione per cui alcuni non lo rispettano. È come versare un bicchiere d'acqua in un altro. Se non ti impegni e lo fai rapidamente e completamente finirai per gocciolare acqua su tutto il tavolo.