Ecco dove penso che lo sviluppo guidato dal comportamento mostri vantaggi immediati, ma non sono sicuro che lo sviluppo guidato dai test lo faccia.
Nello sviluppo orientato al comportamento ti avvicini ai tuoi biglietti in un modo diverso: ti siedi con l'uomo d'affari e lavori con loro per definire i comportamenti che dovrebbe avere questo pezzo di funzionalità. Lo descrivo in una voce sul mio blog (il titolo del post: Writing Behaviors ).
Sedersi con l'uomo d'affari o chiunque aiuterà te e loro a capire meglio cosa deve fare il sistema affinché tutti siano soddisfatti di quella funzionalità. Cosa deve fare per essere accettato dal processo di controllo qualità che hai in atto.
Definire i criteri di test, quindi scrivere quei criteri di test nella tua suite di test automatizzata, dovrebbe ridurre la quantità di avanti e indietro che ottieni: qualcuno che afferma che la funzionalità è rotta, perché hai perso qualcosa (o perché hai perso legittimamente qualcosa o perché non l'hanno mai detto a riguardo).
Può anche aiutare la percezione altrui della tua squadra: se ti siedi e definisci ciò che deve essere fatto nel sistema, potresti passare da "idioti che ingegnano troppo tutto e trascorrono del tempo su cose che non abbiamo chiesto", a, "gente intelligente che sta arrivando con funzioni utili".
TL; DR: Lo sviluppo guidato dal comportamento può mostrare rapidamente miglioramenti perché è incentrato sul "cliente". Test Driven Development, per me, sembra riguardare test interni della base di codice di cui "nessuno" si preoccupa e offre vantaggi aziendali meno evidenti. (Behavior Driven Development ha l'immediato, in faccia, un cambiamento: gli ingegneri hanno improvvisamente molto più tempo a disposizione con il "cliente" o l'analista aziendale per cercare di ottenere ciò giusto - il che dovrebbe essere visto come una cosa positiva. "Oh , stanno avendo un incontro sulla caratteristica X, il che significa che ci sono progressi su questo fronte! ")