Agile: een korreltje zout of een businessversneller? | Kilian Drewel
@ The Interwebs
#randomness (3)
De Vierde Industriële Revolutie (1)
Agile: korreltje zout of serieuze businessversneller?
Alles moet Agile zijn tegenwoordig. Maar zonder context zegt dit woordje natuurlijk welgeteld niks. Waar komt Agile vandaan? En waarom moet alles tegenwoordig zo Agile zijn, zoals organisaties? Een korte introductie in het concept Agile.
Geboren in een skihut
Je kunt niet van veel dingen zeggen dat ze geboren zijn in een skihut (hoewel?), maar Agile is er één van.
We gaan even terug naar 2001, naar de sneeuwige bergtoppen in Wasatch, Utah om precies te zijn. In dit populaire skigebied kwamen zeventien softwareprogrammeurs samen om onder het genot van walmende whiskeydampen en knapperend openhaardvuur met elkaar te discussiëren over software.
Hoewel de verwachtingen van het weekend laag waren en de meningsverschillen groot, werd dat weekend toch de eerste zin geschreven van het Agile Manifesto. Want software ontwikkelen moest radicaal anders.
Individuen en interactie boven processen en tools. Werkende software boven uitgebreide documentatie. Samenwerking met de klant boven contractonderhandeling. Snel kunnen wijzigen in plaats van het strikt volgen van een plan. Vier regels die het begin van de hele Agile heisa inluidde.
De zeventien 'agilites', zoals de aanwezigen zich na de bijeenkomsten noemden, hadden allemaal hun frustraties op het gebied van software-ontwikkeling. Het kwam nog vaak genoeg voor dat software werd ontwikkeld op de waterval-methode.
Dat betekende: vooraf bepalen wat een softwareproject exact inhield, wat de functionele eisen waren, die vooral heel lang en uitgebreid documenteren. Zodra het softwareproject begon waren in het originele plan geen wijzigingen meer mogelijk. Keuzes die vroeg in het project werden gemaakt en halverwege desastreus of bijzonder leken te zijn. Vooral omdat het eindproduct van software niet altijd in zicht is. Tot grote frustratie van de 'agilites'.
Weg met Dilbertesque-organisaties
Het Agile Manifesto legde de zienswijze vast waar de software-ontwikkelaars al jaren aan dachten. Ze hadden ervaringen opgedaan in 'Dilbertesque'-organisaties waar managers het voor het zeggen hadden, zonder maar enig verstand te hebben van software-ontwikkeling. Ze hadden de ontwikkelingen van de auto-industrie in de jaren 90 gezien waar de productietijden van aanzienlijk werden verkleint: van enkele maanden tot drie dagen. Ze hadden meermaals ervaren hoe software nog al te vaak als laatst bij de belangrijke processen betrokken werd.
De aanwezige ontwikkelaars waren zelfs als jaren bezig met programmeermethodieken en managementmethodes die we nu als 'Agile' zouden bestempelen: rapid application development (RAD), Scrum, Kanban, Lean software development. Methodieken die allang bestonden voor het Manifesto er was. Toch was de bijeenkomst een belangrijk moment. Voor sommige developers een kantelpunt.
Na de Wasatch-bijeenkomst volgde meerdere bijeenkomsten, seminars en online discussiegroepen. Het gedachtegoed van Agile begon voeten te krijgen binnen grotere bedrijven zoals Google en IBM. En als Google iets doet dan weet je dat het als een lopend vuurtje gaat – in 2001 was dat ook al zo.
Drie kenmerken van Agile softwareontwikkeling
Agile is op zichzelf geen methodiek. Het is meer een soort gedachtegoed, een managementfilosofie. Maar tussen de regels van het manifesto komt je in ieder geval deze drie elementen tegen.
Agile = iteratief
Veel van de Agile ontwikkelmethodieken hebben een iteratief karakter. Dat betekent dat er in een korte tijdsperiode iets wordt gemaakt. Dat iets kan een bepaalde functionaliteit zijn in software of de inrichting van een database. Het doel van de iteratie is dat er in ieder geval in een korte periode iets wordt opgeleverd. Het idee hiervan is dat je beetje bij beetje het product te zien krijgt en hoe het werkt. Hier wordt ook regelmatig op gereflecteerd.
Agile = communicatief
Veel Agile ontwikkelmethodieken leunen sterk op communicatie. Het liefst zelfs persoonlijk. Schriftelijke communicatie is wel toegestaan, maar complete documentatie liever niet. Dat is ook allemaal veel te lang. Vaak is een Agile-team gehuisvest op één fysieke locatie, waar regelmatig (interne) klanten uitgenodigd worden om samen aan het product te werken. Door het persoonlijke worden wijzigingen in de software snel opgepakt. Een belangrijk aspect is ook het contact met de klant. De wensen en behoeften van de klant staan centraal.
Agile = meten
Een belangrijk aspect bij Agile softwareontwikkeling is dat er regelmatig gemeten wordt. De metrics? Werkende producten, features of prototypes. Na elke iteratie wordt gekeken hoe het opgeleverde product heeft bijgedragen aan de ontwikkel of bedrijfsdoelstellingen. Het doel: constant leren en verbeteren. Een cyclus die gepikt is uit de Lean-methodologie.
O, en verder hebben de 'Agilites' natuurlijk ook zelf twaalf principes opgeschreven in het Manifesto (bron). Dit filmpje illustreert het begrip daarnaast ook erg goed, vind ik.
Weer even terug naar 2018. Tegenwoordig kun je bijna niet meer om Agile heen en wordt het ook in andere contexten gebruikt. Zo past ING Agile toe in zo'n beetje alles. Werken bij ING doe je niet in een team, maar in een 'squad' of in een 'tribe'.
Het nadeel van het te pas en te onpas gebruiken van het woord Agile is dat het nogal beladen is geworden. Niet voor niets heeft communicatieverening Logeion heeft het als jeukwoord van het jaar 2017 bestempeld. NRC-columniste Japke D. Bouma roept zelfs op tot een ander woord.
En ergens is dat jammer, want zo slecht is het gedachtegoed van Agile niet. Stapsgewijs werken omdat je niet precies weet wat de toekomst brengt. Van koers veranderen als blijkt dat je de verkeerde kant op gaat. Van fouten leren in plaats van ongezonde controlemechanismen.
Natuurlijk is de term Agile met een flink korreltje zout te nemen. Maar wie weet is dat korreltje net genoeg om de organisatie in verschuivingsstand te zetten en de juiste richting op te laten bewegen.