• Home
  • Blog
  • Mob-programmering - 5 udviklere på en enkelt computer?!

Mob-programmering - 5 udviklere på en enkelt computer?!

Før corona. Fem udviklere i et rum kigger på en stor skærm. Fire af dem diskuterer, den sidste skriver. En buzzer lyder. Alle flytter sig et sted hen og fortsætter, som om intet var hændt. Hvad sker der her?

Postet den
9. apr. 2021
Læsetid
6 Minutter
Skrevet af
Knowly

At udføre eksperimenter for at forbedre vores processer er en del af vores daglige arbejde. Så når jeg hører om noget, der kan hjælpe os med at blive bedre, vil jeg gerne undersøge det. I starten af 2019 deltog jeg i Domain Driven Design Europe-konferencen. I pauserne snakkede jeg meget med andre deltagere, mest udviklere.

I mange af disse samtaler kom workshoppen Mobprogrammering fra konferencen et år tidligere op. Udviklerne var virkelig, virkelig begejstrede for mob-programmering: flere udviklere, der arbejder i samme rum på en enkelt pc. De forklarede, hvor meget de havde lært og var vokset som team som følge af disse sessioner. Det var et klart signal til mig om at lære mere om det. Derefter besluttede jeg, at vi ville eksperimentere med det.

En vigtig del af et eksperiment er hypotesen. Uden den ved man ikke, om eksperimentet lykkedes. Min teori var, at mob-programmering ville hjælpe os med at dele viden mellem udviklere, mens vi byggede ren kode.

Jeg planlagde og forberedte vores første mob-programmeringssession, hvilket ikke var så svært:

  • Få en computer koblet til en stor skærm

  • Sæt et bord foran skærmen.

  • Føj fem sæder til bordet.

  • Sæt nogle snacks og forsyninger på bordet.

Og der stod vi så, fem udviklere i et rum med kun én computer:

Hvad skete der under vores første mob-programmeringssession?

Wesley sætter sig ved tastaturet (vi bruger hans pc) og får automatisk tildelt rollen som driver. Driveren er en intelligent inputenhed: Han kan skrive, men har ikke lov til at træffe beslutninger. De andre udviklere får rollen som navigator. Det er dem, der diskuterer, hvad der skal ske, og fortæller chaufføren, hvad han skal gøre.

Føreren er en intelligent inputenhed: Han kan skrive, men har ikke lov til at træffe beslutninger.

Vi begynder at arbejde på en simpel opvarmningshistorie, hvor vi skal fjerne noget forældet indhold i sidefoden.

Navigatørerne fortæller Wesley, at han skal starte Docker. Vi ser straks en fejlmeddelelse. Wesley forklarer, at det sker nogle gange, men at det altid løses med et par forsøg. Vi prøver ikke igen, men navigatørerne forklarer, hvilke indstillinger der skal ændres. Fra nu af starter Docker altid uden fejl;

Wesley skriver på en seddel, hvad han har lært om Docker. Han sætter sedlen på det store ark papir, der hedder Learnings.

Jeg skriver på en seddel, at det var Docker, som ikke startede, der holdt os tilbage. Jeg giver den til Waste Snake, et stort ark papir med en slange tegnet på. På dette ark sætter man sedler, der beskriver alt, hvad der holder gruppen tilbage fra den egentlige programmering:

Efter 12 minutter lyder en buzzer. Alle skal skifte til højre. Chaufføren bliver navigatør, og en af navigatørerne bliver chauffør. Det er lidt besværligt, og det tager lidt tid at komme i gang igen. Men vi bliver meget bedre til det efter et par skift.

Vi afslutter historien og begynder at arbejde på den næste: Yii2-visning forårsager falske kommentarer i HTML, som forårsager HTML-ugyldiggørelse. En interessant historie. Den er allerede blevet taget op to gange af forskellige udviklere, men de er begge kørt fast. Alle bidrager med historien. Til sidst løser vi problemet på en måde, som alle er meget tilfredse med.

Efter to timer slutter sessionen.

Hvad lærte vi af vores første mob-programmeringssession?

Vi holder et retrospektivt møde for at diskutere, hvad der gik godt, og hvad vi kan forbedre. Det vigtigste er, at vi fik løst historien bedre/grundigere i én iteration, end hvis en enkelt person havde arbejdet på den.

Vi løste historien bedre/grundigere i én iteration, end hvis en enkelt person havde arbejdet på den.

Alle føler sig fulde af energi under retrospektivet. Vi kunne alle lide eksperimentet. Det bliver tydeligt, at mob-programmering faktisk hjælper os med at dele viden, mens vi bygger ren kode.

De fleste erfaringer var ret indlysende, som når en genvej var ukendt for driveren, eller når man konfigurerede værktøjer til at hjælpe en mere effektivt. Det blev tydeligt, hvor let det er at tilføje spild til din egen udviklingsproces ved at bruge workarounds, hvis et system opfører sig uventet. Det bekræfter behovet for at tage forbedringskataen til sig.

Andre erfaringer var mere subtile. For eksempel at finde måder at opdele et vanskeligt problem i mindre problemer. Eller forslagene til, hvordan man virkelig kan arbejde testdrevet ved først at oprette en fejlende test i stedet for bare at tilføje en test bagefter.

Eksperimentet lykkedes! Den næste session er straks planlagt

En af de mere udfordrende ting at få styr på var kommunikationsniveauet mellem navigatører og chauffør. Man ønsker ikke at skære alting ud i pap, især ikke for de mere erfarne udviklere. Men man vil heller ikke lade en yngre udvikler føle, at han bliver kastet ud på dybt vand. Med tiden lærer mobben, hvordan man henvender sig til de enkelte chauffører på den rigtige måde.

Programmering af fjernstyret mob

I Holland er vi i øjeblikket i en lockdown. Vores kontor er lukket, og alle arbejder på afstand. Det gør mob-programmering som beskrevet ovenfor umulig, fordi vi ikke kan være i samme rum.

Men vi ville stadig gerne lave mob-programmeringssessioner. Ved at prøve os frem kom vi frem til følgende for en fremragende fjernprogrammeringssession:

  • Alle har et webkamera, og alle tænder det under en session.

  • Vi bruger Whereby som vært for vores møder, fordi man kan dele sin skærm og stadig se hinandens kamerafeeds.

  • Driveren logger på en dedikeret computer via en fjernskrivebordsforbindelse (vi oprettede en mob-brugerkonto på det interne netværk til dette).

  • Vi oprettede en separat mob-brugerkonto til Git. Det gør det meget nemt at skifte roller.

Hvordan kan jeg eksperimentere med det i mit eget arbejdsmiljø?

Af alle de artikler, blogs og e-bøger, jeg har læst om mob-programmering, kan jeg på det kraftigste anbefale at læse disse to:

Derefter er det bare at vælge en dato med dit team og prøve det af. God fornøjelse!

Se mere i vores blogs

Caroline

Caroline

12. dec. 2024

Vores sekundære beskæftigelsesfordele forklaret

Lønnen er vigtig, når du vælger job, men lad os ikke glemme de frynsegoder, der følger med. De sekundære fordele kan virkelig forsøde aftalen! Og vi mener, at vi har sammensat en fantastisk pakke. Dyk ned i alle vores vidunderlige ekstraydelser!

Læs mere
Caroline

Caroline

8. apr. 2025

Arbejde og trivsel!

Det er givende at arbejde hos Easy LMS! Naturligvis betaler vi en konkurrencedygtig løn, befordring og tilskud til home office samt tilbyder 25 feriedage om året! Derudover er vi stolte af at kunne tilbyde dig fordele, som får dig til at føle dig veltilpas og til at yde dit bedste. Dit velbefindende, fysisk og psykisk er højeste prioritet! Det er det, fordi vores medarbejdere er rygraden i vores organisation.

Læs mere
Caroline

Caroline

22. apr. 2025

Din første måned

Når du har fået nyt arbejde, er du ivrig efter at komme i gang! På samme tid er der en sund dosis af nervøsitet. Hvad venter dig? Hvordan vil dine første uger se ud? Og hvor hurtig kan du rent faktisk tilføre værdi? Det sidste er vores fokus. Vores onboarding for softwareingeniører er klar og tydelig og vil hjælpe dig med at lære vores virksomhed at kende, dine kolleger samt introducerer dig til dine opgaver på ingen tid! Oplev, hvordan vi giver dig en kickstart!

Læs mere