Mob programming: Complexe logica bouwen in twee weken

Johan van Overbeeke & Peter v. Vliet

13 mei 2024

Mob programming is een vooruitstrevende samenwerkvorm waarbij het volledige ontwikkelteam samen aan één enkele taak werkt op één computer. Het uitgangspunt is: één persoon (de ‘driver’) schrijft code aangestuurd door de ‘navigator’, terwijl de rest van het team (de ‘advisors’) actief deelneemt door strategische input en besluitvorming te leveren. Dit proces is een uitbreiding van het bekendere pair programming en is bijzonder effectief in situaties waar complexe problemen snel opgelost moeten worden. Maar onze developers zouden geen Enrise-developers zijn als ze niet hun eigen touch aan mob programming zouden geven. 

De buikpijn van de opdrachtgever

Een van onze gewaardeerde opdrachtgevers in de energiesector stond voor een flinke uitdaging. De bestaande logica voor het inschatten van transportkosten liet geregeld te wensen over. Soms was de inschatting te hoog. Maar veel vaker nog te laag. Dit resulteerde iedere maand in fikse onverwachte kosten. De taak voor onze developers was duidelijk: bouw een systeem om efficiënt te kunnen berekenen hoeveel producten van specifieke afmetingen op een pallet passen. En daarmee samenhangende kosten. En oh ja, als het even kan ook nog snel. Want tijd is tenslotte geld. Wat dachten jullie van: een deadline van twee weken… 

Let’s do some mob programming

Ons zelfsturingsmodel geeft development teams maximale vrijheid om zelf tot de beste aanpak te komen. Voor het team, bestaande uit vier leden, was het vinden van die aanpak een redelijke uitdaging. Naast de eerder genoemde deadline speelden ook zaken als geplande vakanties, parttime werken en overhead taken een rol. Omdat het werk op elkaar werd voortgebouwd, kon het – ondanks de inefficiëntie –  niet anders dan serieel opgepakt worden. Niet ideaal dus als je vier mensen optimaal wil inzetten. Na een voorstel van backend developer Johan van Overbeeke besloot het team een methodiek te adopteren die nog niet eerder bij Enrise was toegepast: mob programming. Gezien de tijdsdruk en de complexiteit van de taak leek dit de beste aanpak.

Fase 1: Beginnen en aanpassen

De eerste week van het project werd gewerkt volgens de gangbare methodieken  van mob programming. Elk teamlid nam afwisselend de rol van driver, navigator of advisor op zich, waarbij de rollen om de vijftien minuten wisselden. Dit waren intensieve sessies. Stop experts in een hok en je hebt discipline nodig om constructief te blijven. Soms is het voor het proces beter om even te zwijgen. Of om je mening pas later te delen. Dit vraagt veel geduld en vertrouwen in elkaars expertise. Deze zaken zijn cruciaal om iedereen volledig betrokken en op de hoogte te houden van de ontwikkelingen. Echter, door verschillende mate van ervaring met de materie en benaderingen van het probleem veroorzaakten de frequente rolwisselingen veel ruis. Dit leidde tot onafgemaakt werk en tijdverlies, wat het team ertoe aanzette hun strategie te heroverwegen. Tijd om de boel eens flink te Enrisen…

Fase 2: Optimalisatie en focus

Na de initiële leercurve besloot het team in de tweede week om de rigide rolwisselingen aan te passen. De focus lag nu op het benutten van individuele sterktes: de persoon met de meest effectieve oplossing voor een probleem behield de rol van navigator tot het probleem was opgelost of een ander teamlid een beter idee voorstelde. Deze aanpak verminderde de frequentie van rolwisselingen en stelde het team in staat om dieper op de materie in te gaan. De driver rol bleef onveranderd, dus alle oplossingen werden hardop besproken voordat ze in code landden. Het resultaat: Meer efficiëntie, meer focus en een hogere productie. 

Resultaten en impact

De aangepaste aanpak bewees zijn waarde snel: binnen twee weken had het team een robuuste logica ontwikkeld die de transportkosten veel preciezer benaderde. Deze effectieve oplossing kan een flinke kostenreductie aan klantzijde opleveren. Het bood opdrachtgever ook weer ruimte om verder in de toekomst te kijken. Een goed voorbeeld van hoe investeringen in Enrise developers zich altijd uitbetalen. Out of the box denken werkt. In plaats van maar een klein stukje van de gewenste functionaliteit staat er nu een complete oplossing. Door brainpower efficiënt in te zetten kun je bergen werk met elkaar verzetten. Begrip voor en vertrouwen in het proces is daarvoor essentieel. 

Conclusie

Een ding staat vast: mob programming hielp onze opdrachtgever in korte tijd een complex logistiek probleem op te lossen. Maar net zo belangrijk: het versterkte ook de samenwerking en kennisdeling binnen het Enrise ontwikkelteam. Als dit project iets heeft aangetoond is het wel dat intensieve samenwerking en de bereidheid om traditionele werkwijzen te heroverwegen kunnen leiden tot geweldige resultaten. En dat terwijl er echt wel druk op de ketel staat. We kunnen daarom niet anders concluderen dat mob programming een uitermate krachtige tool is voor teams die geconfronteerd worden met complexe uitdagingen en strakke deadlines.