In questi giorni ho lavorato ad alcuni task in pair e ho anche visto due colleghi lavorare in pair. Quando dico lavorare in pair intendo in due contemporaneamente alla stessa scrivania sul problema e anche in due da remoto in momenti diversi sullo stesso problema.
L'efficienza è quello che mi ha sorpreso, è che il lavoro in pair non ha solo dimezzato i tempi, in questi casi particolari gli ha ridotti ... al Quadrato. In un caso ha migliorato la qualità finale del task, nell'altro ha reso possibile il task nel tempo disponibile. Ecco un esempio dei task:
- semplificata l'implementazione di una nuova funzionalità ad una applicazione esistente tramite refactoring applicando il pattern MVC ad un WinForm e relativi user control (il problema è stato nella esperienza del MVC relativa al Web invece che alle app Windows)
- trovato l'ottimo tra un insieme di possibili soluzioni (il problema è stato verificare che l'ordinamento non era totale e trovare un criterio corretto&efficace)
- individute le classi del sistema da cui iniziare a scrivere unit test con il miglior rapporto costi/benefici (il problema è stato far funzionare 2 tool utili a raccogliere indicazioni significative)
A mio avviso c'è stato un notevole risparmio di tempo perché
- nessun membro del team possedeva da solo la "mappa" completa che portava all'obiettivo mentre i pair che hanno collaborato avevano le parti di quella mappa che una volta unite hanno indicato la strada
- la via più breve che portava all'obiettivo era troppo complicata/rischisa ma è diventata percorribile combinando le capacità dei 2 peer
Il lavoro in pair ha funzionato per la buona preparazione dei pair (conoscenza, esperienza, capacità), obiettivi comuni e condivisi e l'esortazione al gioco di squadra con un risultato (EEE) decisamente vantaggioso.
Qual'è la vostra esperienza/opinione del lavoro in pair?
Update 16-Feb-2006:
In sintesi dalle esperienza raccolte nei feedback ricevuti ad ora appare che:
- E' indispensabile che entrambi i pair siano disposti, direi interessati, a lavorare in pair e dialogare e a mettere in discussione le proprie convinzioni sul lavoro in corso
- Il pair ha il vantaggio di condividere la conoscenza
- Il lavoro in pair è più efficace quando la coppia è composta da pari ossia non c'è un rapporto docente-studente, in questo caso c'è un affiancamento che è meglio non confonde con fare pair
- Le persone che fanno pair è preferibile che abbiano conoscenze/esperienze sufficientemente comuni per potersi capire velocemente e sufficientemente diverse per beneficiare della una molteplicità di opinioni
- Per fare pair è utile disporre nel team della capacità di valorizzare le opinioni diverse e risolvere i conflitti in modo costruttivo
- Per problemi complessi lavorare in pair è sicuramente vantaggioso per la qualità del software prodotto e senza allungare i tempi (le giornate uomo di lavoro)
- Per problemi più semplici o per i quali non ci sono dubbi significativi, l'utilità di fare pair è dubbia
Update 17-Feb-2006:
Sintesi degli altri feedback ricevuti:
- Fare pair è una tecnica efficace per aumentare notevolmente la qualità del codice prodotto
- E' una pratica che piace, diverte e gratifica
- Un rapporto paritario tra i pair (esprimersi, essere ascoltati, scegliere ed agire) è un elemento sentito come molto importante sia per il buon funzionamento del pairing sia per il risultato prodotto
- Non c'è accordo se i pair debbano scambiarsi alla tastiera in base al tempo (ogni x min.) o in base alle attività (es. cambio pair tra testing e coding)
Update 23-Feb-2006:
Altri feedback ricevuti:
- La coppia si disciplina meglio rispetto al singolo dal punto di vista del tracking ,della naming convention e del test coverage
- Il lavoro risulta più lento rispetto a 2 developers spaiati
Tags :
Team Work |
Agile |
Pratiche |