Alles weten over Agile softwareontwikkeling?
Naast Lean en Six Sigma zijn er veel andere methoden om processen in te richten of te verbeteren. Agile Software Development – agile softwareontwikkeling – is daar één van en erg populair en upcoming binnen de IT. Het is een overkoepelende term voor meerdere software-ontwikkelmethoden, waar bijvoorbeeld Scrum, Kanban en Lean software development onder vallen.
Agile Manifesto
De term ‘agile’ is in 2001 ontstaan tijdens een bijeenkomst van softwareontwikkelaars toen het Agile Manifesto werd opgesteld. Dit statement bevat vier punten die zij belangrijk vinden tijdens de ontwikkeling van software:
- Personen en interacties zijn belangrijker dan processen en tools.
- Software dat werkt is belangrijker dan documentatie.
- Samenwerking met de klant is belangrijker dan onderhandelingen over contracten.
- Omgaan met verandering is belangrijker dan het volgen van een plan.
Hieruit volgden 12 principes waaraan agile softwareontwikkeling aan moet voldoen.
- Klanttevredenheid door snelle, continue levering van bruikbare software.
- Late veranderingen in de wensen van de klant zijn juist welkom.
- Goed werkende software wordt in een periode van een aantal weken geleverd.
- De ontwikkelaars werken dagelijks nauw samen met de mensen die de business goed kennen.
- Projecten worden uitgevoerd door gemotiveerde en betrouwbare personen.
- De beste manier van communiceren is communicatie in de vorm van een gesprek.
- Het opleveren van werkende software is de maatstaf van vooruitgang.
- De ontwikkeling kan altijd blijven doorgaan.
- Er is constant aandacht voor technische kwaliteit en een goed ontwerp.
- Hoe meer er niet gedaan hoeft te worden, hoe beter.
- De teams organiseren zichzelf.
- Aanpassen aan de omstandigheden is een vereiste.
Dit manifesto was een reactie op het traditionele projectmanagement, ook wel de watervalmethode genoemd, waar de nadruk ligt op geplande processtappen en veel documentatie. Bij agile softwareontwikkeling is het juist belangrijk dat er ingespeeld kan worden op (onverwachte) veranderingen tijdens het gehele proces. Door elke twee weken een werkend deelproduct op te leveren krijgt de klant de mogelijkheid om zijn wensen te veranderen en het ontwikkelteam de tijd om verbeteringen door te voeren. Doel is om uiteindelijk een eindproduct op te leveren dat volledig voldoet aan de wensen van de klant en past binnen de wisselende omstandigheden binnen het bedrijf of technische ontwikkelingen die hebben plaatsgevonden.
Kenmerken van Agile
Kenmerkend voor agile ontwikkelmethoden is de korte periode, van meestal 1-4 weken, waarin de software wordt ontwikkeld. Deze periodes worden iteraties genoemd en kunnen gezien worden als deelprojecten die aan het eind van de periode iets bruikbaars op leveren. Dit prototype wordt getest en beoordeeld, waarna verbeteringen doorgevoerd kunnen worden. Zo weet het ontwikkelteam of zij op de goede weg zit en kan er zonder risico begonnen worden aan de nieuwe iteratie. Dit hele proces wordt begeleid door een Scrum Master.
Niet alleen het product wordt beoordeeld, ook het ontwikkelproces. Hiervan is het doel om te streven naar continue verbetering, een kenmerk dat is overgenomen uit de Lean methode.
In tegenstelling tot de watervalmethode, waar documentatie belangrijk is, ligt de nadruk bij agile softwareontwikkeling op persoonlijk contact. Dat is ook de reden dat de agile ontwikkelteams altijd werken op één locatie, om de communicatie te bevorderen.
Een laatste kenmerk van agile is dat tijdens elke iteratie een deelproduct wordt opgeleverd dat daadwerkelijk werkt. Dit product moet meteen kunnen worden toegevoegd aan bestaande software, om te testen of alles naar behoren verloopt.
Wil je meer weten over agile ontwikkelmethoden? Lees ons blog over Scrum en Lean Management waarin we beide methoden met elkaar vergelijken.
Meer leren?
Bekijk ons ruime Lean en lean Six Sixgma trainingsaanbod.