Learn

Pair Programming Zombie

15 Novembre 2019 - 3 minuti di lettura

Pair Programming è una nota pratica di eXtreme Programming che prevede che due persone lavorino insieme allo stesso computer, favorendo il continuo scambio di opinione e la revisione del codice scritto migliorandone notevolmente la qualità.

Luca Marcato presenta un approfondimento su questo argomento, in occasione della open conference tenutasi durante l’Intré Camp di Ottobre 2019.
In particolare vengono mostrate diverse modalità in cui la definizione di Pair Programming può essere intesa e declinata.

Pair Programming: cos’è?

Luca porta il racconto dei suoi recenti approfondimenti sul tema. Questa pratica XP che viene adottata anche in Intré ha diverse possibili coniugazioni, e Luca vorrebbe capire un po’ meglio tutte le sue sfaccettature.

Partiamo dalla definizione: il Pair Programming è una tecnica agile di sviluppo del software nella quale due programmatori lavorano insieme a una postazione di lavoro.

Apparentemente semplice nella definizione, ma tutt’altro che scontato da mettere in pratica.

Per esempio, si può optare per una versione strong definendo delle regole ben precise e rispettandole rigidamente, oppure lavorare in modalità più weak valutando di momento in momento se le regole stanno aiutando od ostacolando, e quindi prendendo iniziative che escono dagli accordi iniziali (ad esempio: si può decidere che una persona stia alla tastiera per 30’ filati, ma in modalità weak può cedere il posto al compagno qualora si trovasse in difficoltà).

Quanti stili?

Sono possibili molti stili diversi per il Pair Programming.

  • Non strutturato, ovvero si collabora stando in due allo stesso computer, ma senza particolari formalizzazioni.
  • Driver / Navigator (probabilmente il più noto), in cui una persona assume il ruolo di pilota stando alla tastiera occupandosi di risolvere il task corrente, mentre il navigatore dà suggerimenti al compagno cercando di mantenere una visione più ampia, pensando anche ai passi successivi.
  • Driver / Backseat navigator, in cui uno dei due mantiene il ruolo del driver mentre l’altro è principalmente uno spettatore; può essere un metodo per introdurre una persona in un progetto che non conosce, affiancandola a un esperto.
  • Driver / Tour-guide navigator, in cui il driver (spesso meno esperto) viene guidato passo dopo passo dal navigatore;
  • Ping pong, in cui il driver e il navigator si scambiano continuamente ruolo sviluppando in TDD (Test Driven Development) – una persona scrive un test che fallisce, passa la tastiera al compagno il quale soddisfa il test e ne scrive a sua volta un altro prima di ridare il controllo al collega.

Ognuno di questi stili può essere utilizzato efficacemente sia stando fisicamente allo stesso computer (che resta la scelta migliore) sia lavorando da remoto, sfruttando tool di condivisione di schermo, tastiera e mouse.

Migliorare nel Pair Programming

Ci sono dei modi per diventare più efficaci nel Pair Programming, indipendentemente dallo stile adottato?

Naturalmente sì! Alcuni suggerimenti si possono trovare leggendo l’articolo How to Get better at Pair Programming (link nel paragrafo Riferimenti), nel quale si schematizza una checklist di azioni da fare prima, dopo e durante una sessione di pairing (trovate l’immagine in galleria).

A parte questi consigli, ovviamente, il miglior modo per imparare a fare bene Pair Programming è…fare Pair Programming!

Come per ogni altra skill, la capacità si affina solo con l’esercizio!

Quale migliore occasione per esercitarsi che farlo in una gilda? Ispirati da questa presentazione e dalla voglia di mettersi in gioco, si è creata una gilda dedicata al Pair Programming che permetterà ai partecipanti di fare pratica nei prossimi mesi.

Ottima idea Luca, e grazie per averla condivisa!

Articolo scritto da