La strategia del Pair Programming può essere vincente?

Recentemente in azienda ho avuto l’occasione di partecipare ad una sessione di Pair Programming al fianco dello sviluppatore senior che lavora con me durante l’implementazione di una funzionalità strategica relativa ad uno dei progetti che sto seguendo in prima persona. Ma di preciso che cos’è il Pair Programming? Oggi vediamo nel dettaglio la tecnica della programmazione in coppia con i relativi vantaggi e svantaggi.

Il Pair Programming è una tecnica di lavoro facente parte della metodologia AGILE nella quale due sviluppatori software lavorano insieme in una sola postazione sullo stesso codice contemporaneamente. Lo stesso discorso vale anche per il Pair Programming da remoto, dove due programmatori lavorano insieme sullo stesso codice dalla propria abitazione attraverso la condivisione dello schermo o strumenti che consentono di lavorare in maniera collaborativa sul codice sorgente come Live Share, un’estensione di Visual Studio.

Le due persone che lavorano assumono ruoli distinti: il conducente o pilota, dall’inglese driver, che si occupa di scrivere il codice e ha come obiettivo quello di sviluppare una soluzione funzionante; l’osservatore o il navigatore, dall’inglese navigator, che si occupa di supervisionare e revisionare in tempo reale il codice scritto dal collega segnalando errori e proponendo soluzioni più efficienti. Come facilmente intuibile, questi termini sono stati adottati dal Rally. Solitamente i due sviluppatori si alternano nei ruoli ed hanno un livello di anzianità diverso: uno junior e un senior.

Questa tecnica viene anche utilizzata in ambito formativo, io stesso alle scuole superiori ho lavorato per diversi mesi al fianco di un compagno di lavoro. In questo modo lo sviluppatore con meno esperienza ha la possibilità di seguire il processo di scrittura di codice qualitativamente migliore rispetto al suo e il senior, spesso facente funzione di tutor o mentore, ha la possibilità di vedere il modo di ragionare del collega ed, eventualmente, dirigerlo verso una soluzione migliore.

Come facilmente intuibile, questa metodologia di lavoro porta con sé dei vantaggi e degli svantaggi. L’attività richiede l’impiego di due programmatori e, inevitabilmente, aumenta i tempi di sviluppo. L’uso di due sviluppatori di diversa seniority sullo stesso codice, tuttavia, aumenta la qualità del codice, la manutenibilità e riduce il proliferare di bug e malfunzionamenti, questo può essere utile durante lo sviluppo di funzionalità strategiche. Una sessione di Pair Programming è comunque d’alto valore formativo per gli sviluppatori junior. Lavorare a stretto contatto con i colleghi più esperti può essere molto utile per la condivisione della conoscenza, evitando di avere programmatori che detengano il monopolio del codice, per il rapido inserimento di nuove risorse all’interno del team e per mantenere coesi team già esistenti. Inoltre bisogna stare attenti all’effetto traino dove il navigatore risulta poco collaborativo e alla scelta delle coppie perché ci sono alcuni programmatori che sono poco inclini al lavoro di squadra e più produttivi nel lavoro “in solitario” con la musica nelle orecchie.

Avevi già sentito parlare del Pair Programming prima di oggi oppure hai avuto l’occasione di lavorare con questa metodologia di lavoro? Raccontami la tua esperienza!

Ti potrebbero interessare anche questi articoli