Introduzione al TDD. Una introduzione al test driven development e il suo legame col design

Comments

Comments are closed.

Non un'introduzione, ma un'ottima presentazione per praticanti evoluti del TDD, che ha mostrato le relazioni sottili con il design.
E' un piacere scoprire i segreti pensieri che muovono un grande sviluppatore mentre manipola il suo software.
Unica cosa migliorabile: lasciare ai partecipanti qualche istante di più per analizzare gli esempi sulle loro macchine. E' stata una limitazione legata al tempo: questo workshop dovrebbe prendere un'intera giornata.

Anonymous at 10:18 on 1 Dec 2013

Carlo,
grazie per aver condiviso la tua enorme esperienza tecnica in questo esercizio di gruppo (e che gruppo!) assolutamente costruttivo e illuminante.

Se posso permettermi di condividere le mie difficolta' come forma di potenziali miglioramenti per l'esercizio in futuro:

- Il problema logico/business che volevi "risolvere" con il tuo codice Test/Behavior Driven mi e' parso decisamente complesso "in se", quindi come partecipante e novizio al TDD mi sono trovato di fronte a una doppia sfida: implementativa prima di tutto ma anche cognitiva, dato che potevano esserci molte implementazioni (piu' o meno efficaci) delle feature nel dominio di business che hai affrontato. E' stato comunque un piacere attingere dalla tua grande conoscenza, grazie per quello che hai condiviso.

- Le difficolta' tecniche nel set-up iniziale purtroppo hanno rubato molto tempo all'inizio, non permettendoti/ci di proseguire assieme nelle ultime fasi come avevi programmato. Questa e'una nota per gli organizzatori dato che Carlo ha fatto tutto il possibile per aiutarci, ma non poteva seguire 80 persone con il tempo a disposizione. Come da spirito Agile, ci siamo aiutati tutti fra di noi al meglio delle singole possibilita', ma forse la presenza di alcuni "facilitatori" di infrastruttura avrebbero aiutato i partecipanti maggiormente in difficolta'. Questo e' anche un mea culpa, dato a mia volta non mi sono reso disponibile come volontario per questo IAD, quindi mi cospargo per primo il capo di cenere e' mi annoto che per il prossimo anno potrei cercare di essere piu' utile al collettivo ;-)

Grazie a di nuovo a Carlo e a tutti i partecipanti per lo spirito costruttivo di reciproco aiuto e condivisione.
Spero le mie note siano state costruttive e grazie ancora per aver messo a disposizione conoscenza, tempo e professionalita'!!!

Talk molto interessante e di livello non introduttivo, con molte indicazioni da parte di una persona che sicuramente conosce bene l'argomento per esperienza pratica.

Come suggerito da altri, sarebbe bello vedere un'edizione del workshop da un'intera giornata, in cui anche i partecipanti possano "sbatterci" la testa per apprezzare e assimilare ancor di più quanto visto :)

Anche se per me è stata la prima volta di un TDD dal vivo, devo ammettere che sono rimasto colpito con la semplicità con cui è stato pianificato il tutto, dalla introduzione alla materializzazione dei casi di test e verifica.

Concordo con chi osserva che un pò di tempo in più da concedere ai partecipanti per poter smanettare sarebbe il massimo!

Penso siano state disattesi 2 presupposti: introduzione e workshop.
Cioé non è stato un workshop perché i partecipanti non hanno fatto sostanzialmente niente (forse nella prima parte qualcuno è riuscito) e il livello non era assolutamente introduttivo.
Poi Bottiglieri si vede che è veramente bravo e che la bravura viene anche da tanta esperienza sul campo. Penso che persone come lui possano far crescere di tanto gli altri sviluppatori e sarei molto felice di vederlo negli eventi successivi ma con una indicazione migliore del livello di difficoltà e più tempo per la pratica (magari rinunciando a qualcosa).

Quando si introduce il TDD ed il tempo è limitato c'è sempre il solito problema: meglio scegliere un esercizio banale e rischiare di passare un messaggio sbagliato o scegliere un esercizio più adatto/completo e rischiare di complicare l'introduzione?

Credo che Carlo abbia scelto la seconda strada e con un ottimo esempio ha mostrato cosa vuol dire far emergere il design ed allo stesso tempo ha sfatato il mito che il TDD va bene sono per la logica di business.

Peccato che per il poco tempo da workshop si è trasformato in demo. Anch'io credo che per completare tutto l'esercizio sarebbe stata necessaria l'intera giornata.

Bravo Carlo!

100% apprezzata la chiarezza con la quale hai ribadito il contesto del TDD, non solo a cosa serve ma quando serve e quando non ha senso. Hai chiarito molto bene cosa serve (in termini di nozioni, strumenti e contesto) per date un senso al TDD.
L'esercitazione: anche qui tanto di interessante, spunti di cui proveremo a fare tesoro.
Velocità a mio parere giusta.
Due soli appunti:
- titolo del corso: forse non troppo azzeccato. Pur dando per buono che per te questa fosse solo un'introduzione, per molti (me compreso) era forse qualcosa di più. Se non avessi avuto una "dritta" da Matteo Vaccari che mi ha "gentilmente invitato" a seguire il tuo workshop, probabilmente (solo dall'abstract) non avrei partecipato. E sarebbe stato un peccato :-)
- aver iniziato con tanto ritardo non è stato il massimo. Pur comprendendo la volontà di aspettare tutti, forse un po' più di sano "chi c'è c'è chi non c'è peggio per lui" non avrebbe fatto male (nota: io sono fra quelli arrivati con un po' di ritardo...)
Grazie del tempo dedicatoci...spero di poterti nuovamente incontrare.

Mi è piaciuto molto , il fatto che ci si è soffermati sui problemi che possono nascere quando si applica il TDD in modo sbagliato e si arriva in vicoli ciechi.
Molto interessante anche il concetto di usare i mock il meno possibile , è una teoria che onestamente devo ancora digerire , ma mi ha fornito moltissimi spunti.
Sono sempre più convinto che corsi di questo tipo nascano dalla esperienza pratica e unita alla teoria.
Mi dispiace solo di essere arrivato tardi e di non aver avuto un ascolto ideale dalla mia posizione.
Congratulazioni , penso che preparare una talk di questo tipo richieda un impegno non indifferente!
Grazie ancora!

Anonymous at 14:30 on 2 Dec 2013

Premetto che mi sono presentato a questo workshop da vero principiante del TDD. Conosco alcune teorie ma fin ora non ho avuto mai modo di metterle in pratica.

Come detto già da altri, il workshop non è stato un vero e proprio workshop perché, almeno per quanto mi riguarda, non ho messo quasi per niente le "mani in pasta".
Non posso neanche dire che era un introduzione al TDD in quanto sono stati trattati argomenti che reputo molto più avanzati.

Detto questo però non posso che ammirare a apprezzare la competenza di Carlo che ci ha permesso di prendere parte ad un viaggio sul treno dei suoi pensieri da sviluppatore esperto, permettendomi di vedere cose che fin ora erano a me nascoste!
Questo, per me che sono ancora un novellino, è stato di un valore inestimabile!

I miei complimenti davvero! Lascio questo workshop con tantissimi spunti per poter migliorare.
Grazie!

Troppo condensato per poter essere seguito, personalmente sono uscito dal Workshop con l'idea che il TDD fosse tutto il male del mondo.
Ho avuto l'impressione di aver scritto codice inutile, e al solo scopo del test; e tutto ciò è il contrario di quello che sarebbe dovuto emergere.

Per me è stata un occasione mancata, riconosco la bravura di Carlo Bottiglieri nella conoscenza del dominio, ma l'ho trovato carente in didattica e nel recepire/ascoltare i feedback di quelli che in classe si erano completamente persi al secondo minuto.

Anonymous at 14:59 on 2 Dec 2013

Purtroppo non era un'introduzione. Per chi si affaccia per la prima volta nel mondo del TDD questo workshop non era adatto. Il concetto del Red-Gree-Refactor è stato appena sfiorato.
La bravura e la preparazione dello speaker credo sia indubbia, ma non è stato centrato l'obiettivo di questo workshop, soprattutto "Un sacco di pratica e discussione"

PRO:
Ho apprezzato l'incoraggiamento all'utilizzo di shortcut degli IDE per non perdere tempo a scrivere codice.
Mi è piaciuta comunque la parte iniziale dove ci si avvicinava piano piano alla risoluzione del problema e soprattutto dove i partecipanti potevano scrivere codice.

CONTRO:
Non mi è piaciuto l'esempio con l'utilizzo delle immagini, sempre per chi non ha mai fatto TDD si tratta di un esempio avanzato dove era necessario fare ulteriori sforzi per lavorare con le immagini, forse meglio lavorare con stringhe di testo o qualche tema usato più di frequente.
Acustica pessima.
Troppo veloce, se l'obiettivo non era risolvere il problema ma focalizzarsi sul come allora era meglio far vedere poche cose ma bene, dando anche il tempo ai partecipanti di provare e assimilare.
Dopo i primi refactoring la sessione si è trasformata da workshop a talk dove a tratti era anche difficile seguire.

Anonymous at 09:50 on 3 Dec 2013

Workshop dalle premesse interessanti, ma affrontato in maniera non efficace.
Molti argomenti sono stati affrontati in maniera superficiale ed è stata data troppa rilevanza al codice sullo schermo piuttosto che ai concetti. Insomma, non ci sarebbe stata male qualche slide introduttiva.
Un workshop di questo tipo ha molte potenzialità, ma deve essere organizzato meglio.
Complimenti, comunque, all'organizzazione e al relatore per aver introdotto questa novità allo IAD.


Ottima presentazione.
Ottimi spunti di riflessione, analisi del TDD.
Però non lo classificherei come un "workshop" visto il poco tempo che i partecipanti hanno avuto a disposizione per mettere in pratica i concetti spiegati. Probabilmente sarebbe servito il doppio del tempo per gestirlo bene come "workshop".
Mi sarebbe piaciuto approfondire l'aspetto "come introdurre il test driven development in un progetto e un team esistenti".
Ne sono uscito comunque molto soddisfatto per le nozioni apprese.
Grazie Carlo