Coding Dojo: sperimentiamo il Mob Programming

Martedì 11 febbraio ci siamo ritrovati in 20 persone al Toolbox Coworking di Torino per il meetup dal titolo “Coding Dojo: sperimentiamo il mob programming”. Coding Dojo è un nuovo formato di meetup dedicato agli sviluppatori, vuol essere uno spazio sperimentale fisico e virtuale focalizzato sullo sviluppo del software: metodi, modelli, tecniche, linguaggi, framework e molto altro… 

Il mindset Agile si basa molto sulla collaborazione: collaborazione fra cliente e fornitore, fra Leader e Operators, fra membri dello stesso team.

Nel 1999 Kent Beck pubblicò il suo famoso libro “Extreme Programming Explained” nel quale parlava (e si parla tutt’oggi) di tecniche di sviluppo e organizzazione di persone per generare software di qualità superiore in modo più produttivo.

Due di queste tecniche sono il pair programming e la scrittura di test (sia automatici sia di accettazione) prima della scrittura del codice (test first).

Con l’ottima facilitazione di Stefano Marello abbiamo provato ad “unire ed estremizzare” questi due principi in una sessione di Mob o Ensemble Programming.

In cosa consiste? Quali sono le regole e i ruoli?

“Ensemble Programming” significa qualcosa del tipo “Programmazione d’insieme” e la tecnica consiste nel far lavorare un intero team sulla stessa cosa, nello stesso tempo, nello stesso posto, sullo stesso computer (da cui anche “Software Teaming”).

Sono previsti due ruoli:

  • Un Navigator che colloquia con l’intero team per trovare la migliore soluzione possibile al problema.
  • Un Driver che è colui/colei che è fisicamente alla tastiera e traduce le richieste del Navigator in codice implementando TDD (Test-Driven-Development).

Durante la sessione i volontari che hanno partecipato attivamente, a turno hanno assunto entrambi i ruoli, e ogni 10 minuti (tempo arbitrariamente deciso) la persona che faceva da Navigator diventava Driver, mentre il Driver tornava ad essere un membro del team.

Sembra uno spreco di tempo avere un intero team concentrato su un unico problema? In realtà l’obiettivo pratico delle sessioni di ensemble programming è concludere il task descritto nella storia fornita dal Product Owner riducendo il tempo di rilascio e realizzando codice molto più robusto.

Ma entriamo nel dettaglio della serata.

Una quindicina di esperti e non si sono alternati nello sviluppo del Kata proposto da Stefano: è stato un… Kata-Christmas! Non è propriamente in tema carnascialesco ma è stato molto efficace.

Lo scopo era scrivere un software che seguisse le istruzioni di Babbo Natale per governare una griglia di 100×100 luci e creasse la sequenza di combinazioni vincente per aggiudicarsi la gara di giochi di luci più belli.

Stefano ha lasciato parola e tastiera agli ospiti che si sono cimentati in discussioni tecniche e filosofiche, come capita fra i migliori programmatori, per poi generare del codice seguendo le regole del TDD.

Fra una classe ed un metodo, fra uno unit test ed un commit siamo riusciti ad accendere qualche lampadina in tutti i sensi, sia quelle di Babbo Natale sia nelle nostre teste.

La parte più interessante dell’esperimento è stato vedere come l’intelligenza collettiva sfruttata tramite l’espressione di idee e di opinioni di gruppo senza alcun tipo di ostacolo o paura abbia generato un sano confronto che effettivamente si è tradotto in una soluzione da implementare.

Vi lascio con alcune delle domande che ci siamo posti pensando ai nostri ambienti di lavoro:

  1. Quanto è applicabile nei nostri contesti lavorativi?
  2. La pratica è davvero percepita come un modo per trovare la miglior soluzione facendo contemporaneamente un check sulla qualità del codice? Oppure è vista come qualcosa che blocca un intero team su un unico problema quando potremmo lavorare in parallelo su diversi task?
  3. Come possiamo misurare l’impatto che possiamo avere in termini di:
    1. minor numero di bug
    2. facilità di refactoring
    3. riduzione del tempo di implementazione
    4. condivisione di conoscenze

Probabilmente le risposte sono demandate ai Manager e alla loro capacità di comprensione e di lungimiranza.

Io da parte mia mi sono divertito e ho trovato l’argomento molto interessante.

Ma soprattutto si saranno divertiti coloro i quali hanno continuato a chiacchierare al di fuori del meeting davanti ad un buon cocktail.


Se sei interessato al dojo dai un’occhiata alle slide proiettate durante la serata e non esitare a contattarci!

 

Coding_Dojo_Intro.pdf

 

 

Alla prossima!

Nicola

More Posts

Follow Me:
TwitterFacebookLinkedIn