Agile zijn, niet Agile doen

In februari 2001 kwamen zeventien softwareontwikkelaars bijeen in Snowbird, Utah. Ze waren de manier waarop software op dat moment ontwikkeld werd, zat. De op dat moment dominante Watervalmethode trok veel tijd uit voor grondige analyse vóór de daadwerkelijke implementatie. Maar in de praktijk bleek die analyse al verouderd te zijn tegen de tijd dat ontwikkelaars hun eerste regels code begonnen te schrijven. Het gevolg: gemiste deadlines, opgeblazen budgetten en gestresste softwareontwikkelaars die in de laatste fase van het project alle stappen tegelijkertijd moesten doen.

De uitkomst van de driedaagse sessie in Snowbird deed de industrie op zijn grondvesten schudden. Het Agile Manifest pleit voor “mensen en hun onderlinge interactie boven processen en hulpmiddelen; werkende software boven allesomvattende documentatie; samenwerking met de klant boven contractonderhandelingen, en inspelen op verandering boven het volgen van een plan.” Software kon alleen slagen door continu te leren en stap voor stap kleine veranderingen door te voeren.

Frameworks

Sindsdien is Agile - in naam althans - het dominante ontwikkelparadigma in de wereld van softwareontwikkeling. Agile frameworks als Scrum, Lean, Kanban, SAFe en LeSS maakten opmars door om ontwikkelaars te helpen hun werkwijze af te stemmen op de unieke aard van software.

Scrum was het succesvolst. De meerderheid van de ontwikkelaars anno nu hakt de ontwikkeling van een applicatie op in korte Sprints, meestal van twee weken. Deze beginnen met een Retrospective, waarin ze zich afvragen wat er vorige Sprint goed ging en wat niet, en een Planning, waarin ze een inschatting maken van wat er de komende twee gedaan moet worden. Elke dag houden ze een Daily Scrum, waarin het team kort de voortgang aan elkaar rapporteert. En elke Sprint eindigt, ten slotte, met een Review, waarin de gemaakte voortgang wordt gepresenteerd aan de relevante stakeholders.

Misverstanden

Toch zijn de gemiste deadlines en opgeblazen budgetten nog niet uit de wereld van de softwareontwikkeling verdwenen. Heeft Agile gefaald? Of heeft Agile nooit écht een voet aan de grond gekregen? In Clean Agile pleit Robert “Uncle Bob” Martin, initiatiefnemer van de bijeenkomst en Snowbird en auteur van het klassieke Clean Code, voor dat laatste. Het succes van Agile is zowel een vloek als een zegen geweest. Een zegen, omdat het het inefficiënte Waterval heeft verdreven, maar een vloek omdat de kerngedachte achter Agile zo vaak verkeerd begrepen is dat deze geheel verloren dreigt te gaan. Clean Agile is zijn poging de vele misverstanden recht te zetten.

Een voorbeeld van zo’n misverstand, is het idee dat Agile ervoor zorgt dat teams sneller software ontwikkelen. Dit is niet waar. De korte iteraties die de kern vormen van Agile processen, zorgen er hooguit voor dat teams eerder software opleveren dan wanneer ze zouden Watervallen. Met dien verstande, uiteraard, dat niet elke oplevering alle gewenste functionaliteit bevat. Dat zou ook helemaal niet kunnen, natuurlijk. Hoe efficiënt Agile ook is, het zorgt er niet voor dat een team binnen twee, vier of zes weken een volledig volwassen product aflevert. (Aangenomen dat het project niet bijzonder klein is in scope.) Dat is een belofte die geen enkel ontwikkelparadigma waar kan maken.

Technische praktijken

Een ander misverstand is dat Agile synoniem zou zijn met het volgen van een bepaald bedrijfsproces. Ironisch genoeg heeft juist Scrum, met zijn nadruk op een goed gedefinieerde procedure, de indruk gewekt dat Agile met name interessant is voor managers. Helemaal onjuist is die veronderstelling niet, want er is wel een managementcomponent. Eén van de doelen van Agiles korte iteraties is managers in een vroege fase inzicht te kunnen geven in de snelheid en voortgang van het project.

Maar het inrichten van een proces is niet voldoende om Agile te laten slagen. Martin hamert op het belang van technische praktijken zoals refactoren en Test Driven Development. De iteratieve aard van Agile noodzaakt ontwikkelaars om constant hun code aan te passen om nieuwe wijzigingen mogelijk te maken, zonder de bestaande functionaliteiten te breken. Dat is alleen mogelijk als er voldoende automatische tests zijn om zulke wijzigingen met vertrouwen door te kunnen voeren.

Door en voor ontwikkelaars

Die technische praktijken komen echter niet in het Agile Manifest voor, en zijn daarom twintig jaar lang structureel over het hoofd gezien. Dat heeft managers de kans gegeven om aan de haal te gaan met Agile, terwijl het paradigma door en voor ontwikkelaars is geformuleerd. Zonder de technische praktijken is deze manier van ontwikkelen vooral geschikt om heel snel een heel grote rommel te maken! Het laatste hoofdstuk van het boek, geschreven door gastauteur Sandro Mancuso, biedt een interessante blik op de herwinning en doorontwikkeling van de oorspronkelijke ideeën van Agile in de Software Craftmanship-gemeenschap.

Zulke essentiele vakliteratuur als Clean Code is Clean Agile niet - maar, eerlijk, wel boek over softwareontwikkeling is dat wel? Martins laatste telg is vlot geschreven, en bevat één van de meest hilarische typeringen van Waterval ooit op papier gezet. Bovendien zit het barstensvol met door de praktijk geharde inzichten. Het is makkelijk om te roepen dat Agile niet werkt. Maar Agile zijn is veel moeilijker dan Agile doen. Het boek is daarom van harte aan te bevelen aan elke Scrummende softwareontwikkelaar (maar meer nog aan elke zombie-Scrummer!).

Deze recensie verscheen oorspronkelijk op De Leesclub van Alles.

agile ontwikkeling · boeken · paradigma's · recensies · productiviteit · scrum