Quando volevo incoraggiare l'uso di Test Driven Development ho eseguito un Cyber-Dojo . Con questo tipo di esercizio, l'enfasi non è sul codice stesso, ma sul processo di scrivere il codice.
Abbiamo trascorso un pomeriggio, a coppie, ripetendo lo stesso kata, ma in condizioni diverse. Abbiamo iniziato con tutti i gruppi a fare un esercizio allo stesso tempo. Ciò ha fornito una base di riferimento.
Abbiamo quindi discusso alcuni dei principi di base del TDD, abbiamo tutti cambiato partner e ripetuto lo stesso kata. Abbiamo ripetuto lo stesso kata per de-enfatizzare la generazione del codice e invece concentrare le persone sul processo di denominazione dei casi di test e del ciclo Red / Green.
Poi abbiamo ripetuto di nuovo il kata, ma approssimativamente ogni 10 minuti una persona in ciascun gruppo si spostava in un altro gruppo, simulando gli ambienti di squadra piuttosto fluidi in cui ci troviamo spesso in questi giorni.
Nell'ultima versione, abbiamo scambiato entrambi partner ogni 10 minuti circa in gruppi diversi. Ciò ha contribuito a dimostrare che con TDD, anche il passaggio di consegne da una squadra a una completamente diversa non deve necessariamente essere troppo doloroso, dal momento che il progetto dovrebbe essere solo un ciclo Red / Green dal lavoro.
La cosa interessante era che c'erano poche persone che avevano fatto un TDD prima della sessione, ma quale conoscenza del TDD si diffuse rapidamente fino alla completa iterazione attraverso il kata, la maggior parte delle persone pensava in modo TDD o almeno poteva apprezzare perché potrebbe essere utile.
Le persone in generale hanno detto che il pomeriggio è stato sia divertente che informativo e ora stiamo esaminando altri modi per utilizzare il Cyber-Dojo sul mio posto di lavoro.
Cyber-Dojo , scritto da Jon Jagger , funziona incredibilmente bene per questo tipo di esercizio. È un ambiente integrato basato sul Web per la pratica deliberata di TDD e apprendere le dinamiche di squadra. Ha un sacco di kata selezionati appositamente per aiutare le persone a concentrarsi sul processo di TDD e non sul problema. Supporta anche una vasta gamma di lingue, da Python e Ruby a Java e C ++.
La cosa migliore è che, dopo aver eseguito un kata, puoi tornare indietro e osservare la progressione rosso / verde (o forse non * 8 ') di ciascuno dei gruppi partecipanti. I semafori sono un ottimo modo per visualizzare il funzionamento del processo TDD.
Se vuoi il tuo server CyberDojo, il intero progetto può essere trovato su github e c'è anche un Chiavi in mano Linux macchina virtuale dell'appliance collegata da lì, il che significa che supponendo che tu abbia già VMware player o VirtualBox installati, puoi essere installato e funzionante entro pochi minuti dal download del apparecchio!