Tag: pair-programming, agile, extreme-programming, code-review, collaboration, tdd
Livello: intermedio
TL;DR: Pratica collaborativa in cui due programmatori condividono un'unica postazione e obiettivo. Migliora la qualità del codice e azzera i colli di bottiglia della review.
Driver: scrive codice, controlla la tastiera e cura l'implementazione tattica immediata.
Navigator: osserva il contesto generale, previene bug e guida la strategia architetturale.
I ruoli di Driver e Navigator si invertono regolarmente ogni quindici o trenta minuti.
Ping-pong pairing: uno sviluppatore scrive il test fallito, l'altro implementa il codice e refattorizza.
Strong-style pairing: per arrivare alla tastiera, un'idea deve passare dalla testa del navigatore.
Continuous code review: la revisione avviene in tempo reale eliminando i tempi morti delle PR.
Diffusione del dominio: abbatte il bus factor e trasferisce competenze tecniche nel team.
Pair remoto: richiede condivisione schermo fluida o estensioni di co-editing in tempo reale.
Q: Il pair programming non rischia di dimezzare la velocità di rilascio del team?R: La scrittura del codice grezzo è una minima parte del lavoro. Il pairing riduce drasticamente i bug, previene refactoring costosi e taglia le attese di review asincrona, aumentando il throughput complessivo.
Q: Come imposti una sessione efficace tra figure senior e junior?R: Faccio guidare la tastiera allo junior come Driver e mi posiziono come Navigator. Pongo domande strategiche per stimolare l'autonomia invece di dettare il codice riga per riga.
Q: In quali scenari il pair programming è sconsigliato?R: Su task ripetitivi, pura configurazione boilerplate o compiti banali a basso impatto. Diventa fondamentale su task complessi, decisioni architetturali critiche e onboarding rapido.
Driver solitario che corre senza spiegare la logica ad alta voce.
Navigatore passivo distratto da notifiche, email o messaggi durante la sessione.
Assenza di rotazione periodica che genera disallineamento e affaticamento mentale.
Sessioni troppo lunghe senza pause definite per scaricare la stanchezza cognitiva.
Atteggiamento dogmatico nel disaccordo invece di validare le alternative con spike veloci.
# Assegnazione del commit congiunto via standard Git Co-authored-by
git commit -m "feat(auth): add jwt session validation
Co-authored-by: Jane Doe <jane.doe@example.com>"
[x] Ruoli standard Driver e Navigator
[x] Flusso TDD applicato al Ping-Pong pairing
[ ] Regola d'oro dello Strong-Style pairing di Falco
[ ] Setup di sessioni collaborative remote a bassa latenza
Extreme Programming Explained (Kent Beck)
On Pair Programming (Martin Fowler)
Strong-Style Pairing (Llewellyn Falco)