Back from Scuola XP 2015

A marzo 2014 ho avuto la fortuna di partecipare alla prima edizione della Scuola XP.
L’idea è partita dagli amici di 7Pixel, che poi hanno coinvolto Matteo Vaccari ed Antonio Carpentieri, che a loro volta hanno coinvolto me.

Si è trattato di qualcosa di diverso rispetto ai corsi che erogo normalmente, sia per la durata – 5 giorni – che per il target, più orientato ai “giovani”.

A questo va aggiunta la sede: la factory di 7Pixel, da fuori una cascina di campagna, con laghetto davanti e campi da basket e calcetto nel retro, da dentro una struttura tipo ponte di comando della Yamato, è un luogo unico in Italia dove scrivere software.

L’altro elemento caratterizzante è stato la possibilità di avere a che fare con un team di coach, cui nel frattempo si era aggiunto anche Andrea Francia, in grado di gestire qualsiasi situazione.

Ottimo, e quindi con un team di coach di questo livello ci mettiamo a seguire un piano?

Naaaahh!

Il piano ci serve, certo. Ma è un piano B. Il piano A è “fare la cosa giusta da fare, senza sapere in anticipo quale sarà”. Del resto i partecipanti, il loro background erano un’incognita per noi. Sapevamo che c’erano neolaureati, programmatori senior e colleghi alla prima esperienza lavorativa.

Coding hard

Qualsiasi scaletta rigida definita in anticipo, sarebbe stata sub-ottimale rispetto a quanto sarebbe potuto emergere in corso d’opera.
E – diciamocelo – estremamente waterfall (che non è una bella cosa da dire ad un agilista).

Quindi abbiamo pensato di fare una cosa radicalmente diversa.

Il principio cui ci siamo ispirati è semplice e rivoluzionario al tempo stesso, rispetto alla formazione tradizionale.

Non proporre una soluzione prima che si presenti il problema

Pochi fronzoli, poche introduzioni e presentazioni frontali su cosa sia Agile, o XP o Test-Driven Development: una volta formati i team, con un mix equilibrato di programmatori senior e junior, abbiamo dato loro un obiettivo da realizzare nel giro di qualche pomodoro.

Il focus si è immediatamente spostato sul risultato, rispetto agli strumenti. O meglio, immediatamente sono emersi i problemi. E su quelli, avevamo un sacco di cose da dire, e strumenti da proporre.

Ma soprattutto, potendo parlare in risposta ad un problema reale e vivo nell’esperienza dei partecipanti, abbiamo avuto costantemente a disposizione la loro massima attenzione e ricettività.

I temi chiave di XP e di Agile sono emersi via via come strumenti per la risoluzione dei problemi, che si venivano a creare con gli approcci più ovvi e tradizionali.

Ad esempio l’uso delle Index Cards per raccogliere i requisiti come User Stories non è stato introdotto come “In agile si fa così”, ma è risultata la soluzione più ovvia ad un backlog che stava rapidamente diventando illeggibile a causa dei frequenti cambi di direzione imposti dal committente.

La prima demo

La struttura del corso ha replicato su cicli più corti, quella di un processo di sviluppo agile più articolato: iterazioni, rilasci frequenti, demo per raccogliere il feedback del cliente, retrospettive per approntare le contromisure, e così via.

Nel ruolo del cliente, mi sono trovato in una posizione simile a quella di un giudice di Masterchef. Abbiamo provato ad avere la stessa espressione arcigna, ma Matteo ed Antonio sono troppo buoni (io invece a fine giornata mi sentivo come Anakin Skywalker soddisfatto di aver abbracciato il lato oscuro).

Per poter fare contento il committente, i team sono stati costretti a mettere da parte un sacco di assunzioni preconcette, su come si dovrebbero fare le cose “per bene” e si sono trovati a scoprire che “per bene” è un’altra cosa che significa: capire qual è effettivamente il problema del nostro cliente, mostrare una soluzione in tempi brevi per ricevere il feedback più efficace possibile, e poi adattare il piano di conseguenza.

Il tutto sulla loro pelle, con l’inevitabile ricaduta emotiva di delusioni e successi.

Strumenti di controllo

Come ogni team agile che si rispetti, abbiamo impostato momenti di riflessione e gestione organizzata del feedback.

Le retrospettive hanno permesso a noi docenti di verificare quali messaggi avevano colpito nel segno, quali invece necessitavano di un’approfondimento e quali fossero le aspettative sui prossimi temi da affrontare.

Board

In questo modo la scelta dei temi è diventata best match tra le esigenze dei partecipanti e quanto i vari coach avevano da offrire.

Buone sorprese

La durata del corso – avevamo a disposizione 5 giorni – ci ha permesso di costruire un percorso di apprendimento molto realistico. I team sono stati in qualche modo costretti a collaborare.

Lavorare sulla collaborazione non era il nostro principale obiettivo, ma si è rivelato l’elemento fondamentale.

Ma abbiamo riconosciuto nella pratica le forze che impedivano ai team di ottenere i risultati desiderati, i piccoli ostacoli che si stavano più o meno consapevolmente ammucchiando tra i team ed il traguardo.

Abbiamo perseguito aggressivamente l’imperativo never be blocked che sono naturalmente sfociati in un semplice processo di continuous integration.

Abbiamo lasciato emergere le soluzioni come proposte dei team, o abbiamo proposto strade alternative, andando immediatamente sul pratico.

Alla fine del percorso abbiamo avuto la consapevolezza di aver fatto un buon lavoro.

Abbiamo visto l’orgoglio dei team nel presentare il risultato, ed abbiamo visto persone mettere in discussione certezze consolidate, ed acquisire sicurezza e consapevolezza del loro potenziale.

Guarda su Flickr tutte le foto di ScuolaXP 2015

Le abbiamo viste prendere il controllo della discussione, invece che lasciarsi guidare dall’inerzia dell’"abbiamo sempre fatto così" o del “ma lui ha detto che…”.

Al termine delle 5 giornate mi sono sentito orgoglioso come poche altre volte mi è capitato, ed i feedback ci hanno fatto capire che eravamo su una buona strada.

Quest’anno si replica!

Ci sarà una nuova edizione?
Sì. Di nuovo in 7Pixel, con un nuovo team, ma con la stessa energia e con tutta l’esperienza accumulata nell’edizione precedente.

La lista completa dei nostri corsi: Avanscoperta Workshops.