Archivio Autore

Agile significa veloce?

Leggo per la prima volta nel wiki dell’XPug Milano un post scritto da Gabriele ormai qualche anno fa, ma attuale come non mai sul perché quando si lavora con i metodi agili sembra inizialmente di essere lenti. Il post è molto chiaro e piacevole da leggere e secondo me spiega molto bene perché spesso si confonde agile con veloce!

Alcune regole del Pair Programming

Qualche settimana fa, una coppia di sviluppatori del team nel quale lavoro, mi ha chiesto:

“Ciccio, ma quali sono le regole del Pair Programming? Facciamo Pair Programming da alcuni mesi, ma a volte non ci sentiamo molto efficaci, perchè discutiamo troppo nel prendere decisioni condivise e perchè il nostro livello di conoscenza non è lo stesso.”

Quando dal team emergono queste domande, i miei occhi si illuminano, perchè solo di fronte alla consapevolezza si possono dare piccole regole per migliorare se stessi.

Di fronte alle loro domande non ho risposto subito, ho rinviato la discussione ad un dojo interno, che organizzeremo in ideato a breve tempo.

Tuttavia, oggi, vorrei raccontarvi quando secondo me il Pair Programming è efficace.

La metafora che uso spesso per far capire il Pair Programming è quella dei guidatori di rally, chi scrive codide è il guidatore, chi sta a fianco e osserva è il navigatore. Se il guidatore non si fida del navigatore, dove va a finire l’auto?

Come in ogni coppia anche nel Pair Programming si è efficaci se si rispettano i ruoli.

  1. Il guidatore si deve fidare del navigatore.
    Nella coppia ci deve essere fiducia. Il punto di vista predominante deve essere quello del navigatore. La coppia non può discutere ogni piccola decisione. Il guidatore si deve occupare di fare bene quello che gli viene detto dal navigatore. L’obiettivo è la risoluzione del problema. Se il guidatore non è d’accordo con il design emerso potrà fare refactoring quando sarà lui il navigatore, se necessario.
  2. Il guidatore deve stare attento alla tattica.
    Il compito del guidatore è quello di porre attenzione a quello che gli viene detto dal navigatore e al coding style.
  3. Il navigatore deve stare attento alla strategia.
    Il compito del navigatore è quello di indicare la strada al guidatore. Il navigatore deve guardare più avanti e scegliere quale strategie attuare. E’ il navigatore che fa emergere il design del codice.
  4. Per discutere si chiama un Time-Out.
    Durante la sessione di Pair Programming, se la coppia è in disaccordo, si possono chiamare dei Time-Out. I time out servono a discutere insieme quale strada percorrere e come risolvere un certo problema, o per chiedere aiuto a qualcuno se si è bloccati. Il numero massimo di time out che si possono chiamare durante una giornata non dovrebbero essere più di quattro. La durata di un Time-Out non deve essere superiore al pomodoro.
  5. Cambiarsi i ruoli.
    E’ molto importante che nella coppia i ruoli vengano scambiati frequentemente. Un tempo ideale potrebbe essere ogni uno o due pomodori.

Nel dojo che organizzeremo in ideato, vedremo come rendere ancora più efficace il Pair Programming attravero il Ping Pong Pair Programming.

E tu ti fidi del tuo navigatore?

Per progetti software non ci vuole un team grande ma un grande team!!

Come citava la pubblicità dei pennelli cinghiali, “Per fare una grande parete, non ci vuole un pennello grande, ma un grande pennello“, ritengo che lo stesso slogan possa essere applicato oggi alle aziende che producono software. Si pensa che grandi team e aziende fortemente strutturate possano creare software migliori e in tempi brevi.

Beh questa è utopia.

Il software è fatto dalle menti delle persone: chiamale grafico, ingegnere, architetto, db specialist o semplicemente programmatore, ma quello che conta realmente non è l’etichetta ma la loro creatività.

Per fare un grande software bastano poche persone, eccellenti nella loro professione, fortemente motivate, coraggiose, curiose e in grado di comunicare tra loro. Sono questi alcuni degli ingredienti fondamentali di una ricetta che non può sbagliare.

Dall’altra parte nel team non può mancare il committente, colui che ha richiesto il software, sia esso un imprenditore, un utente, un product manager, un business analyst. Per fare un grande software ne basta anche solo uno, ma che ci sia, che sia anche lui farcito degli stessi ingredienti di professionalità, motivazione, coraggio, curiosità, capacità di comunicazione e soprattutto disponibilità.

Con queste due caratteristiche non avremo mai un software grande, pieno di bug che non fa quello che abbiamo chiesto, ma un grande software, fatto dagli utenti per gli utenti, un software pronto a cambiare quando richiesto, in grado di compiere i task per i quali è stato creato.

Come possiamo raggiungere questo obiettivo in un mondo di speculazione e fanta finanza… sinceramente non lo so, ma credo che un’eccellenza di professionisti e aziende italiane che in questo 2009 ho incontrato stiano iniziando a muoversi verso un mondo più sostenibile, più razionale e più vero, dove i vincitori sono sempre due, sia il cliente che il fornitore, per farlo stanno abbracciando la filosofia delle metodologie agili.

Questo è quello che il 2009 mi ha lasciato a livello professionale, questo è il progetto per il quale voglio impegnarmi nei prossimi anni.

Voglio regalare alle persone e alle loro aziende che mi hanno fatto crescere in questo 2009 un link alla loro professionalità. Ringrazio di cuore:

Buon 2010.

Il mio 2009

Anche un altro anno sta finendo e si lascia alle porte molte belle eperienze vissute e passate.

Ho partecipate alle seguenti conferenze:

Ho tenuto i seguenti talk:

A fine ottobre inoltre è uscito il mio primo libro “eZ Publish 4: Enterprise Web Sites Step By Step” ed ho iniziato a scrivere il mio secondo libro “Pro PHP Refactoring with Test-Driven Design“.

Inoltre con la mia azienda ho lavorato ai seguenti progetti:

e alle seguenti estensioni open source:

Ho cercato di migliorare ogni giorno il processo produttivo all’interno di ideato, studiando e mettendo in pratica le metodologie agili.

Dire in conclusione un anno molto produttivo, ora vediamo che cosa il 2010 si riserverà.

Auguri a tutti e felice anno nuovo.

XPUG Marche

Nasce anche nelle marche il primo XP User Group.

Gruppo dedicato allo studio ed approfondimento delle pratiche dell’eXtreme Programming e dei processi agili in genere con sede in Ancona. (The group is focused at investigation and review of eXtreme Programming practices and agile processes in general based in Ancona, Italy).

Ho deciso di iscrivermi anch’io e penso che il 2010 mi vedrà impegnato in questa bella iniziativa.

Pagina successiva »