• Home
  • Blog
  • Programmazione di massa - 5 sviluppatori su un solo computer?!

Programmazione di massa - 5 sviluppatori su un solo computer?!

Pre-corona. Cinque sviluppatori in una stanza guardano un grande schermo. Quattro di loro stanno discutendo, l'altro sta scrivendo. Un cicalino suona. Tutti si spostano di posto e continuano come se nulla fosse. Cosa sta succedendo qui?

Postato il
9 apr 2021
Tempo di lettura
6 Minuti
Scritto da
Knowly

Eseguire esperimenti per migliorare i nostri processi fa parte del nostro lavoro quotidiano. Quindi, quando sento parlare di qualcosa che potrebbe aiutarci a migliorare, voglio indagare. All'inizio del 2019 ho partecipato alla convention Domain Driven Design Europe. Durante le pause, ho chiacchierato molto con gli altri partecipanti, per lo più sviluppatori.

In molte di queste conversazioni è emerso il workshop Mob Programming della convention di un anno prima. Gli sviluppatori erano davvero entusiasti della programmazione mob: più sviluppatori che lavorano nella stessa stanza su un unico PC. Hanno spiegato quanto hanno imparato e sono cresciuti come team grazie a queste sessioni. Questo è stato per me un chiaro segnale per saperne di più. Dopo di che, ho deciso che l'avremmo sperimentata.

Una parte fondamentale di un esperimento è l'ipotesi. Senza di essa, non si può sapere se l'esperimento è riuscito. La mia teoria era che la programmazione dei gruppi di lavoro ci avrebbe aiutato a condividere le conoscenze tra gli sviluppatori e a costruire codice pulito.

Ho pianificato e preparato la nostra prima sessione di programmazione mob, che non è stata poi così difficile:

  • Prendete un computer collegato a un grande schermo

  • Posizionate un tavolo davanti allo schermo.

  • Aggiungete cinque posti a sedere al tavolo.

  • Mettete sul tavolo alcuni spuntini e provviste.

Ed eravamo lì, cinque sviluppatori in una stanza con un solo computer:

Cosa è successo durante la nostra prima sessione di programmazione mob?

Wesley si siede vicino alla tastiera (stiamo usando il suo PC) e gli viene automaticamente assegnato il ruolo di driver. Il conducente è un dispositivo di input intelligente: può digitare ma non può prendere decisioni. Gli altri sviluppatori hanno il ruolo di navigatore. Sono loro a discutere di ciò che dovrebbe accadere e a dire al conducente cosa fare.

Il conducente è un dispositivo di input intelligente: può digitare ma non può prendere decisioni.

Iniziamo a lavorare su una semplice storia di riscaldamento in cui dobbiamo rimuovere alcuni contenuti obsoleti nel footer del sito.

I navigatori dicono a Wesley di avviare Docker. Viene immediatamente visualizzato un messaggio di errore. Wesley spiega che a volte succede, ma si risolve sempre con un paio di tentativi. Noi non riproviamo, ma i navigatori ci spiegano quali impostazioni modificare. D'ora in poi, Docker si avvia sempre senza errori;

Wesley scrive su una nota adesiva ciò che ha imparato su Docker. Mette questa nota adesiva sul grande foglio di carta chiamato Apprendimenti.

Scrivo su una nota adesiva che il mancato avvio di Docker ci ha ostacolato. Lo passo al Waste Snake, un grande foglio di carta con un serpente disegnato sopra. Su questo foglio si mettono note adesive che descrivono tutto ciò che trattiene il gruppo dalla programmazione vera e propria:

Dopo 12 minuti suona un cicalino. Tutti devono spostarsi a destra. L'autista diventa navigatore e uno dei navigatori diventa autista. È un po' complicato e ci vuole un po' di tempo per ricominciare. Ma dopo un paio di cambi si migliora molto.

Finiamo la storia e iniziamo a lavorare sulla prossima: La vista Yii2 provoca commenti fasulli nell'HTML, che causano l'invalidazione dell'HTML. Una storia interessante. È già stata ripresa due volte da diversi sviluppatori, ma entrambe si sono arenate. Tutti partecipano alla storia. Alla fine, risolviamo il problema in modo che tutti siano molto soddisfatti.

Dopo due ore, la sessione termina.

Cosa abbiamo imparato dalla nostra prima sessione di programmazione mob?

Facciamo una riunione retrospettiva per discutere cosa è andato bene e cosa possiamo migliorare. Il risultato principale è che abbiamo risolto la storia in modo migliore e più approfondito in un'iterazione rispetto a quando ci avrebbe lavorato una sola persona.

Abbiamo risolto la storia in modo migliore e più approfondito in un'unica iterazione rispetto a quando ci avrebbe lavorato una sola persona.

Durante la retrospettiva, tutti si sentono pieni di energia. L'esperimento è piaciuto a tutti. Risulta evidente che la programmazione via web ci aiuta a condividere le conoscenze e a costruire codice pulito.

La maggior parte degli insegnamenti è stata abbastanza ovvia, come ad esempio quando una scorciatoia era sconosciuta al driver, o la configurazione di strumenti che aiutano ad essere più efficienti. È apparso evidente quanto sia facile aggiungere sprechi al proprio processo di sviluppo utilizzando soluzioni alternative se un sistema si comporta in modo inaspettato. Questo convalida la necessità di abbracciare il Kata del miglioramento.

Altri insegnamenti sono stati più sottili. Ad esempio, la ricerca di modi per suddividere un problema difficile in problemi più piccoli. Oppure i suggerimenti su come lavorare davvero in modo Test Driven, creando prima un test che fallisce invece di aggiungere un test solo dopo.

L'esperimento è riuscito! La prossima sessione è subito programmata

Uno degli aspetti più impegnativi da mettere a punto è stato il livello di comunicazione tra i navigatori e il conducente. Non si vuole spiegare tutto, soprattutto agli sviluppatori più esperti. Ma non si vuole nemmeno che uno sviluppatore più giovane si senta come se fosse stato gettato in un mare di guai. Con il tempo, la folla impara a rivolgersi ai singoli driver nel modo giusto.

Programmazione della mafia a distanza

Nei Paesi Bassi siamo attualmente in isolamento. Il nostro ufficio è chiuso e tutti lavorano in remoto. Questo rende impossibile la programmazione di gruppi di lavoro come quella descritta sopra, perché non possiamo essere nella stessa stanza.

Tuttavia, volevamo ancora fare sessioni di programmazione mob. Attraverso tentativi ed errori, siamo giunti alla seguente soluzione per un'eccellente sessione di programmazione mob a distanza:

  • Tutti hanno una webcam, e tutti la accendono durante una sessione.

  • Usiamo Whereby per ospitare le nostre riunioni, perché è possibile condividere lo schermo e vedere comunque i feed delle telecamere degli altri.

  • L'autista si collega a un computer dedicato tramite una connessione desktop remota (abbiamo creato un account utente mob sulla rete interna per questo).

  • Abbiamo creato un account utente mob separato per Git. In questo modo è molto facile scambiare i ruoli.

Come posso sperimentarlo nel mio ambiente di lavoro?

Di tutti gli articoli, i blog e gli e-book che ho letto sulla programmazione delle mafie, posso consigliare vivamente la lettura di questi due:

Dopodiché, scegliete una data con la vostra squadra e provate. Buon divertimento!

Leggi di più dal nostro blog

Caroline

Caroline

12 dic 2024

Le nostre prestazioni di lavoro secondario spiegate

Sebbene lo stipendio sia un aspetto importante nella scelta di un lavoro, non dimentichiamo i vantaggi che ne derivano. I benefici secondari possono davvero addolcire l'affare! E noi crediamo di aver messo insieme un pacchetto fantastico. Scoprite tutti i nostri meravigliosi extra!

Leggi di più
Caroline

Caroline

8 apr 2025

Lavorare e prosperare!

Lavorare per Easy LMS è gratificante! Ovviamente diamo uno stipendio competitivo, indennità di viaggio e lavoro da casa e 25 giorni di vacanze pagate all'anno! Ma siamo anche fieri di offrirti dei vantaggi che ti aiutano a sentirti migliore e a fare il meglio. Il tuo benessere fisico e mentale è una priorità assoluta! Perché i nostri dipendenti sono la colonna vertebrale della nostra organizzazione.

Leggi di più
Caroline

Caroline

22 apr 2025

Il tuo primo mese

Quando hai un nuovo lavoro, non vedi l'ora di cominciare! Allo stesso tempo, però, c'è sempre una certa dose di nervosismo. Ti chiedi che cosa puoi aspettarti, cosa farai nel corso delle prime settimane e come potrai cominciare ad aggiungere davvero valore. Quest'ultimo punto è quello su cui ci concentriamo maggiormente. Il nostro chiaro programma di onboarding per i software engineer ti aiuterà a conoscere la nostra azienda, i tuoi colleghi e i tuoi task in pochissimo tempo! Scopri come lanceremo la tua carriera!

Leggi di più