TDD: focalizza il problema

Prendo spunto da un post del socio, per dire la mia (non me ne voglia), in merito al TDD e soprattutto ad alcuni dei suoi vantaggi “intrinseci”.

Il ciclo “red-green-refactor”, ai più ormai noto, è, al primo impatto, molto semplice: parti da un test rosso e implementa il codice, il più velocemente possibile, per farlo diventare verde. Solo dopo procedi a colpi di refactoring, a migliorare ciò che hai scritto. Questa frase porta con se alcuni “hidden-statements” che nascondono alcuni dei migliori side-effect del TDD. Uno di questi è la focalizzazione del problema.

L’utilizzo del TDD mi permette di definire, in modo chiaro ed inequivocabile, da dove parto e dove voglio arrivare, magari non seguendo, in prima battuta, la strada migliore. E quindi porre l’attenzione su uno specifico aspetto, senza far deragliare il mio cervello alla ricerca di soluzioni pseudo-alternative.

Il rischio di sovraingegnerazione è dietro l’angolo e divergere dall’obbiettivo preposto, è un costo che è difficile da ammortizzare. L’utilizzo del TDD è “pippa-free”: fai quel che serve alla tua applicazione, in prima battuta, nel modo più smart possibile. Nulla vieta, anzi è auspicato, in un secondo momento (la fase di refactoring, appunto), di affinarne l’implementazione.

Un altro di quegli aspetti che fanno del TDD una metodologia ad alto valore aggiunto è quello di perseguire la semplicità. L’utilizzo di questa metodologia porta con se una metrica molto importante: maggiore è il tempo di ”latenza” in cui un test rimane rosso è un sintomo, abbastanza preciso, di alta complessità. Avere un feedback molto rapidamente sul fatto che la strada intrapresa è troppo tortuosa e quindi difficilmente perseguibile, è un indicatore da non sottovalutare e che permettere di farci intestardire in soluzioni “senza futuro”.

Insomma…va bene il design, va bene la batteria di test implicita che andiamo via via a creare…ma anche il contorno (o forse soprattutto quello), fanno del TDD uno “strumento” sempre più indispensabile nel mio lavoro.

illustrazione di una piccola busta stilizzata

Scrivere software negli anni Venti

Sei email all'anno, cariche di link interessanti, tra codice, design, tecnologia, musica e l'immancabile angolo water cooler.

Iscrivimi
illustrazione logo newsletter do you speak it

Do You Speak IT?

Mini corso in 10 email, dedicato agli imprenditori e ai curiosi, per imparare la lingua della tecnologia.

Iscrivimi