blije klanten
Wat is Agile softwareontwikkeling?
Lean en Six Sigma zijn niet de enige methodes die zich richten op het beter inrichten of verbeteren van processen. Zo is Agile softwareontwikkeling (ook wel Agile Software Development) flink aan het stijgen in populariteit binnen de IT. Agile softwareontwikkeling is een overkoepelend begrip voor meerdere softwareontwikkelingsmethoden zoals bijvoorbeeld Kanban, Lean software development en Scrum.
De behoefte aan een nieuwe methode binnen projectmanagement
Lange tijd lag de nadruk binnen het traditionele projectmanagement op geplande processtappen en veel documentatie. Dit heet ook wel de watervalmethode. Het viel echter steeds meer op dat het ook belangrijk was dat er ingespeeld kon worden op (onverwachte) veranderingen tijdens het gehele proces. Door een manier te ontwikkelen waarbij de klant elke twee weken een deelproduct opgeleverd krijgt, heeft de klant de mogelijkheid om zijn wensen te veranderen en het ontwikkelteam de tijd om verbeteringen door te voeren. Op deze manier kan een eindproduct worden geleverd dat volledig aansluit bij de klantwensen en bovendien past bij de wisselende omstandigheden binnen het bedrijf of de technische ontwikkelingen die hebben plaatsgevonden. Vanuit deze gedachtegang kwam het Agile manifesto opzetten.
Het Agile Manifesto
Het begrip ‘agile’ werd voor het eerst gebruikt in 2001 tijdens een bijeenkomst van softwareontwikkelaars toen het Agile Manifesto werd opgesteld. Het is een statement dat vier belangrijke punten benoemt om in acht te nemen tijdens de ontwikkeling van software:
- Personen en interacties zijn belangrijker dan processen en tools.
- Werkende software is belangrijker dan documentatie.
- De samenwerking met de klant is belangrijker dan de onderhandeling over contracten.
- Omgaan met verandering is belangrijker dan het volgen van een plan.
Vervolgens vloeiden hier 12 principes uit voort waaraan Agile softwareontwikkeling moet voldoen:
- Late veranderingen in de klantwens zijn juist welkom.
- Goed werkende software wordt in een periode van een aantal weken geleverd.
- Klanttevredenheid door snelle, continue levering van bruikbare software.
- Gemotiveerde en betrouwbare personen voeren de projecten uit.
- De ontwikkelaars werken dagelijks nauw samen met de mensen die de business goed kennen.
- De ontwikkeling kan altijd blijven doorgaan.
- Er is sprake van continue aandacht voor technische kwaliteit en een goed ontwerp.
- Een belangrijke vereiste is de aanpassing aan de omstandigheden.
- Des te minder je hoeft te doen, hoe beter.
- De beste manier van communiceren is communicatie in de vorm van een gesprek.
- De maatstaf van vooruitgang is het opleveren van werkende software.
- De teams organiseren zichzelf.
De kenmerken van Agile Softwareontwikkeling
Er zijn een aantal kenmerken van Agile ontwikkelingsmethoden. Een opsomming volgt hieronder:
- Korte periodes: de software wordt meestal ontwikkeld binnen korte periodes van 1-4 weken. De periodes heten iteraties en zijn als het ware deelprojecten die steeds iets bruikbaars op leveren. Het prototype uit deze projecten wordt getest en beoordeeld, zodat je vervolgens verbeteringen kan doorvoeren. Op deze manier weet het ontwikkelteam of ze op de goede weg zitten en kunnen ze met deze kennis de volgende iteratie instappen. De Scrum Master is de begeleider van dit hele proces.
- Het streven naar continue verbetering: aangezien je niet alleen het product beoordeeld, maar het gehele ontwikkelingsproces is er sprake van een streven naar continue verbetering. Dit kenmerken is overgenomen uit de Lean methode.
- Nadruk op persoonlijk contact: bij de watervalmethode is vooral de documentatie belangrijk, maar bij Agile softwareontwikkeling draait het om persoonlijk contact. Agile ontwikkelingsteams werken dan ook vaak op één locatie, zodat de communicatie zo efficiënt mogelijk verloopt.
- Na elke iteratie wordt een werkend prototype opgeleverd: gedurende elke iteratie wordt er gewerkt aan een deelproduct dat daadwerkelijk werkt. Het is belangrijk dat je dit product meteen aan bestaande software kan toevoegen, om te testen of alles naar behoren verloopt.
Meer leren over Agile of een Agile transformatie ondergaan? Neem dan ook een kijkje op de website van Agile Scrum Group.