Più tardi esegui un test, più costa scrivere test.
Più a lungo vive un bug, più è costoso da risolvere.
La legge dei rendimenti decrescenti ti assicura di metterti alla prova nell'oblio cercando di assicurarti che non ci siano errori.
Buddha ha insegnato la saggezza della via di mezzo. I test sono buoni C'è una cosa troppo buona. La chiave è essere in grado di dire quando sei fuori equilibrio.
Ogni riga di codice che scrivi senza test avrà costi significativamente maggiori per aggiungere 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à del tempo.
Ogni bug richiederà del tempo per risolverlo.
I fedeli ti diranno di non scrivere una singola riga di codice senza prima aver scritto un test fallito. Il test assicura che stai ottenendo il comportamento che ti aspetti. Ti permette di cambiare rapidamente il codice senza preoccuparti di influenzare il resto del sistema poiché il test dimostra che il comportamento è lo stesso.
Devi pesare tutto questo sul fatto che i test non aggiungono funzionalità. Il codice di produzione aggiunge funzionalità. E le caratteristiche sono ciò che paga le bollette.
Pragmaticamente parlando, aggiungo tutti i test che riesco a farla franca. Ignoro i commenti a favore dei test. Non mi fido nemmeno del codice per fare ciò che penso che 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 testano. Semplicemente non insistono ossessivamente sul fatto che ogni linea di codice ha un test automatico contro di essa. Anche lo zio Bob ammette di non testare la sua interfaccia utente. Ti insiste anche a spostare tutta la logica dall'interfaccia utente.
Come metafora del calcio (è il football americano) TDD è un buon gioco di terra. Solo test manuale dove scrivi una pila di codice e spero che funzioni è un gioco di passaggio. Puoi essere bravo in entrambi. La tua carriera non arriverà ai playoff a meno che tu non possa fare entrambe le cose. Non farà il superbowl finché non imparerai a sceglierne uno ciascuno. Ma se hai bisogno di una spinta in una direzione particolare: i funzionari chiamano contro di me più spesso quando sto passando.
Se vuoi provare TDD, ti consiglio vivamente di esercitarti prima di provare a farlo al lavoro. TDD fatto a metà strada, mezzo cuore, e metà assed è una grande ragione che alcuni non lo rispettano. È come versare un bicchiere d'acqua in un altro. Se non commetti e lo fai rapidamente e completamente, finisci per gocciolare acqua sul tavolo.