• Home
  • Blog
  • Mob programmeren - 5 ontwikkelaars op één computer?!

Mob programmeren - 5 ontwikkelaars op één computer?!

Pre-corona. Vijf ontwikkelaars in een kamer kijken naar een groot scherm. Vier van hen discussiëren, de andere is aan het typen. Er klinkt een zoemer. Iedereen verschuift van plaats en gaat verder alsof er niets is gebeurd. Wat is hier aan de hand?

Geplaatst op
9 apr. 2021
Leestijd
6 Minuten
Geschreven door
Knowly

Experimenten uitvoeren om onze processen te verbeteren is onderdeel van ons dagelijks werk. Dus als ik iets hoor dat ons zou kunnen helpen verbeteren, wil ik het onderzoeken. Begin 2019 nam ik deel aan de Domain Driven Design Europe conventie. Tijdens de pauzes kletste ik veel met andere deelnemers, voornamelijk ontwikkelaars.

In veel van deze gesprekken kwam de workshop Mob Programming van de conventie een jaar eerder ter sprake. De ontwikkelaars waren echt heel enthousiast over mob programming: meerdere ontwikkelaars die in dezelfde ruimte op één pc werken. Ze legden uit hoeveel ze hadden geleerd en hoeveel ze als team waren gegroeid door deze sessies. Dat was voor mij een duidelijk signaal om er meer over te leren. Daarna besloot ik dat we ermee zouden experimenteren.

Een essentieel onderdeel van een experiment is de hypothese. Zonder die hypothese weet je niet of het experiment geslaagd is. Mijn theorie was dat mob-programmeren ons zou helpen kennis te delen tussen ontwikkelaars terwijl we schone code bouwen.

Ik plande en bereidde onze eerste sessie mob-programmeren voor, wat niet zo moeilijk was:

  • Krijg een computer aangesloten op een groot scherm

  • Plaats een tafel voor het scherm.

  • Voeg vijf stoelen toe aan de tafel.

  • Plaats wat snacks en benodigdheden op tafel.

En daar zaten we dan, vijf ontwikkelaars in een kamer met maar één computer:

Wat gebeurde er tijdens onze eerste sessie mob-programmeren?

Wesley gaat bij het toetsenbord zitten (we gebruiken zijn pc) en krijgt automatisch de rol van driver. De bestuurder is een intelligent invoerapparaat: hij kan typen maar mag geen beslissingen nemen. De andere ontwikkelaars krijgen de rol van navigator. Zij bespreken wat er moet gebeuren en vertellen de bestuurder wat hij moet doen.

De bestuurder is een intelligent invoerapparaat: hij kan typen maar mag geen beslissingen nemen

We beginnen aan een eenvoudig opwarmingsverhaal waarbij we wat verouderde inhoud in de voettekst van de site moeten verwijderen.

De navigators vertellen Wesley dat hij Docker moet starten. We zien meteen een foutmelding. Wesley legt uit dat dit soms gebeurt, maar dat het altijd verholpen is met een paar keer opnieuw proberen. We proberen niet opnieuw, maar de navigators leggen uit welke instellingen we moeten veranderen. Vanaf nu start Docker altijd zonder foutmelding. 

Wesley schrijft op een sticky note wat hij heeft geleerd over Docker. Hij plaatst deze sticky note op het grote vel papier dat Learnings heet.

Ik schrijf op een plakbriefje dat het niet starten van Docker ons tegenhield. Ik voer het naar de Waste Snake, een groot vel papier met een slang erop getekend. Op dit vel plak je plakbriefjes die alles beschrijven wat de groep tegenhoudt om echt te programmeren:

Na 12 minuten klinkt er een zoemer. Iedereen moet naar rechts schakelen. De bestuurder wordt navigator en een van de navigators wordt de bestuurder. Het is een beetje een gedoe en het kost wat tijd om weer op gang te komen. Maar na een paar keer schakelen gaat het al een stuk beter.

We ronden het verhaal af en beginnen aan het volgende: Yii2 view veroorzaakt vals commentaar in HTML, waardoor HTML ongeldig wordt. Een interessant verhaal. Het is al twee keer opgepakt door verschillende ontwikkelaars, maar ze liepen allebei vast. Iedereen doet mee met het verhaal. Uiteindelijk hebben we het probleem opgelost op een manier waar iedereen erg tevreden over is.

Na twee uur eindigt de sessie.

Wat hebben we geleerd van onze eerste sessie maffiaprogrammering?

We houden een retrospectieve vergadering om te bespreken wat goed ging en wat we kunnen verbeteren. De belangrijkste conclusie is: we hebben het verhaal beter / grondiger opgelost in één iteratie dan wanneer één persoon eraan zou hebben gewerkt.

We hebben het verhaal beter / grondiger opgelost in één iteratie dan wanneer één persoon eraan zou hebben gewerkt.

Iedereen voelt zich energiek tijdens de terugblik. We vonden het allemaal een leuk experiment. Het wordt duidelijk dat mob programming ons inderdaad helpt om kennis te delen terwijl we schone code bouwen.

De meeste lessen waren vrij voor de hand liggend, zoals wanneer een snelkoppeling onbekend was voor de driver, of het configureren van tools om je efficiënter te helpen. Het werd duidelijk hoe gemakkelijk het is om verspilling toe te voegen aan je eigen ontwikkelproces door workarounds te gebruiken als een systeem zich onverwacht gedraagt. Dit bevestigt de noodzaak om de Verbeter Kata te omarmen.

Andere lessen waren subtieler. Bijvoorbeeld het vinden van manieren om een moeilijk probleem op te splitsen in kleinere problemen. Of de suggesties over hoe je echt Test Driven kunt werken door eerst een falende test te maken in plaats van achteraf een test toe te voegen.

Het experiment is geslaagd! De volgende sessie is meteen gepland

Een van de moeilijkere dingen om goed te krijgen was het communicatieniveau tussen navigators en de bestuurder. Je wilt niet alles uit de doeken doen, vooral niet voor de meer ervaren ontwikkelaars. Maar je wilt een junior ontwikkelaar ook niet het gevoel geven dat hij in het diepe wordt gegooid. Na verloop van tijd leert de groep hoe individuele bestuurders op de juiste manier aan te spreken.

Remote mob programmeren

In Nederland zitten we momenteel in een lockdown. Ons kantoor is gesloten en iedereen werkt op afstand. Dit maakt 'mob programming' zoals hierboven beschreven onmogelijk omdat we niet in dezelfde ruimte kunnen zijn.

We wilden echter nog steeds mob-programmeersessies doen. Met vallen en opstaan kwamen we op het volgende uit voor een uitstekende remote mob-programmeersessie:

  • Iedereen heeft een webcam, en iedereen zet hem aan tijdens een sessie.

  • Wij gebruiken Whereby om onze vergaderingen te hosten, omdat je je scherm kunt delen en toch elkaars camerafeeds kunt zien.

  • De bestuurder logt in op een speciale computer via een externe desktopverbinding (hiervoor hebben we een mob-gebruikersaccount gemaakt op het interne netwerk).

  • We hebben een apart mob-gebruikersaccount gemaakt voor Git. Dit maakt het heel gemakkelijk om van rol te wisselen.

Hoe kan ik hiermee experimenteren in mijn eigen werkomgeving?

Van alle artikelen, blogs en e-boeken die ik heb gelezen over het programmeren van maffia, kan ik sterk aanraden om deze twee te lezen:

Kies daarna gewoon een datum met je team en probeer het uit. Veel plezier!

Bekijk meer van onze blogs

Caroline

Caroline

12 dec. 2024

Onze secundaire arbeidsvoorwaarden uitgelegd

Hoewel je salaris belangrijk is bij het kiezen van een baan, mogen we de extra's die erbij komen kijken niet vergeten. De secundaire arbeidsvoorwaarden kunnen de deal echt zoeter maken! En wij denken dat we een fantastisch pakket hebben samengesteld. Duik in al onze geweldige extra's!

Meer lezen
Caroline

Caroline

8 apr. 2025

Werken en jezelf ontwikkelen!

Werken voor Easy LMS is bevredigend! Natuurlijk bieden we je een goed salaris, vergoeden we je voor je reiskosten en het thuiswerken en hebben we 25 vakantiedagen per jaar! Maar we zijn ook trots dat we een aantal voordelen bieden die ervoor zorgen dat jij je op je best voelt en werkt. Jouw gezondheid, fysiek en mentaal, is een topprioriteit! Onze werknemers zijn namelijk de ruggengraat van onze organisatie.

Meer lezen
Caroline

Caroline

22 apr. 2025

Je eerste maand

Als je een nieuwe baan hebt, sta je te popelen om aan de slag te gaan! Tegelijkertijd is er altijd een gezonde dosis spanning. Wat staat je te wachten? Hoe zullen je eerste weken eruit zien? En hoe snel kan je echt waarde toevoegen? Dat laatste is onze focus. Met ons overzichtelijke inwerkprogramma voor software engineers leer je ons bedrijf, je collega's en je taken in een mum van tijd kennen! Ervaar hoe wij voor een vliegende start zorgen!

Meer lezen