Simyl
simylflow
Home del Corso
Modulo 4: Pratiche del Team
Lezione 5 di 5
11 min

Mob Programming

L'intero team, un computer, risolvere problemi insieme.

1Cos'è il Mob Programming?

Il mob programming estende il pair programming all'intero team. Invece di due persone a un computer, ci sono da tre a sei persone a un computer.

  • Una persona digita (il driver)
  • Tutti gli altri pensano, discutono e dirigono (i navigator)
  • I ruoli ruotano frequentemente (ogni 5-15 minuti)

Sembra assurdamente inefficiente. Cinque persone che fanno il lavoro di digitazione di una? Ma i team che lo provano spesso riportano benefici sorprendenti.

Quando il mobbing funziona bene, il team:

  • Risolve problemi complessi più velocemente rispetto ai singoli
  • Diffonde la conoscenza a tutti simultaneamente
  • Prende decisioni migliori attraverso prospettive diverse
  • Rimane concentrato (nessun cambio di contesto)
  • Costruisce una comprensione condivisa del codice

L'osservazione di Woody Zuill

Il pioniere del mob programming Woody Zuill dice: 'Tutte le persone brillanti che lavorano insieme sulla stessa cosa, allo stesso tempo, nello stesso spazio, sullo stesso computer.'

2Quando fare Mobbing

Il mobbing non è per tutto. Usalo per:

Problemi complessi: Quando nessuna singola persona ha tutta la conoscenza necessaria. L'esperienza combinata del mob supera quella di qualsiasi individuo.

Decisioni ad alto rischio: Scelte architetturali, codice sensibile alla sicurezza, cose che influenzano l'intero sistema. Il mobbing riduce il rischio che una persona commetta un errore.

Trasferimento di conoscenza: Quando vuoi che tutti imparino qualcosa simultaneamente. Una nuova tecnologia, un dominio complesso, codice non familiare.

Onboarding: I nuovi membri del team imparano la codebase, i pattern e la cultura—tutto in una volta.

Sbloccare situazioni di stallo: Quando qualcosa è bloccato, prospettive fresche lo sbloccano.

Non fare mobbing su:

  • Lavoro di routine, ben compreso
  • Attività che richiedono concentrazione individuale
  • Quando il team è troppo grande (>6 persone diventa caotico)
Buon uso del Mobbing

Il team deve progettare un nuovo sistema di autenticazione. Fanno mobbing per un giorno: esplorando opzioni, prendendo decisioni, implementando il nucleo. Tutti comprendono il risultato.

Mobbing dispendioso

Il team fa mobbing per aggiornare file di configurazione e correggere errori di battitura nella documentazione. Nessuno sta imparando nulla. Il lavoro individuale sarebbe più veloce.

3Meccaniche del Mobbing

Ruoli:

  • Driver: Mani sulla tastiera. Digita ciò che dicono i navigator. Non prende decisioni.
  • Navigator: Pensano, discutono, dirigono. Un navigator parla alla volta per evitare il caos.
  • (Alcuni team aggiungono un facilitatore per mantenere le cose in movimento.)

Rotazione:

  • Ogni 5-15 minuti, ruota il driver
  • Usa un timer per far rispettare la rotazione
  • Tutti fanno un turno come driver

Navigazione strong-style:

  • "Perché un'idea passi dalla tua testa al computer, deve passare attraverso le mani di qualcun altro."
  • I navigator spiegano l'intento; il driver capisce i tasti da premere
  • Questo impedisce a una persona di dominare

Setup:

  • Un computer, schermo grande (o proiettore)
  • Tutti possono vedere lo schermo
  • Sedute comode per sessioni prolungate
  • Remoto: condivisione schermo con tutti i partecipanti, una persona ha il controllo della tastiera alla volta

4Mobbing Remoto

Il mobbing funziona da remoto con gli strumenti giusti:

Condivisione schermo: Una persona condivide; tutti guardano. VS Code Live Share o simili per l'editing condiviso.

Video attivo: Vedere i volti aiuta con la comunicazione.

Audio chiaro: Tutti dovrebbero essere in grado di sentire e parlare.

Passaggi espliciti: "Ok, sto passando il controllo della tastiera ad Alice."

Più pause: Il mobbing remoto è ancora più intenso di quello in presenza. Fai pause ogni 45-60 minuti.

Sidebar scritto: Un canale chat per link, note o domande secondarie senza interrompere chi parla.

Il mobbing remoto può funzionare sorprendentemente bene. La struttura forzata (passaggi chiari, comunicazione esplicita) a volte lo rende migliore del mobbing informale in presenza.

Per i mob remoti, usa VS Code Live Share o JetBrains Code With Me. La condivisione schermo standard è troppo lenta per l'editing collaborativo.

5Approcci Ibridi

Non devi fare mobbing sempre o mai. La maggior parte dei team usa il mobbing in modo selettivo:

Mob per i kickoff: Inizia nuove funzionalità come mob per stabilire la direzione, poi dividi in coppie o lavoro individuale.

Mob per le review: Invece di code review asincrona, rivedi come mob—tutti vedono il codice, lo discutono e lo migliorano insieme.

Mob per l'apprendimento: Quando adotti nuove tecnologie, fai mobbing al primo utilizzo. La conoscenza si diffonde immediatamente.

Lavoro individuale o in coppia per l'implementazione: Una volta che la direzione è chiara, individui o coppie possono eseguire più velocemente.

Pensa al mobbing come a uno strumento, non un impegno. Usalo quando aggiunge valore; usa altri approcci quando sono più appropriati.

La domanda chiave: Questo problema è meglio risolto da molte menti o dalla concentrazione individuale? Lascia che la risposta guidi il tuo approccio.

Punti Chiave
  • Mob programming: intero team, un computer, driver a rotazione
  • Ideale per problemi complessi, decisioni ad alto rischio e trasferimento di conoscenza
  • Il driver digita; i navigator pensano e dirigono (uno alla volta)
  • Ruota frequentemente (5-15 minuti) per mantenere tutti coinvolti
  • Usa il mobbing in modo selettivo—è uno strumento, non una religione
Errori Comuni da Evitare
  • Fare mobbing su lavoro di routine (capacità sprecata)
  • Una persona che domina la discussione
  • Non ruotare i ruoli (alcune persone non fanno mai il driver)
  • Fare mobbing troppo a lungo senza pause

Esercizi Pratici