Agile werken
Agile is geen methode, maar een denkwijze. Agile betekent zoveel als scherpte, behendigheid, alertheid. Het impliceert souplesse; veerkracht; lenigheid. In de IT betekent 'agility' het vermogen
de business in staat te stellen razendsnel in te spelen op nieuwe ontwikkelingen in de markt.
-
Iteratieve ontwikkeling; de agile-methoden proberen de kans van slagen van automatiseringstrajecten te vergroten door software te
ontwikkelen in korte overzichtelijke perioden (timeboxes), die 'iteraties' genoemd worden. Elke iteratie vormt een deelsysteem die bij oplevering wordt toegevoegd aan iteraties die eerder
zijn opgeleverd. Elke iteratie is als het ware een miniatuurproject op zichzelf. En omvat alle noodzakelijke taken: planning, analyse, ontwerp, testen en documentatie. Aan het eind van de
iteratie wordt het product getoond, getest en het product en proces beoordeeld. Hierdoor wordt het risico beperkt en weet men snel of men op de goede weg zit. Na oplevering van een iteratie
wordt naar de projectprioriteiten gekeken om te bepalen hoe de volgende iteratie eruit ziet.
-
Incrementele ontwikkeling; dat wil zeggen dat op voorhand het eindresultaat nog niet duidelijk is. En dat gaande het ontwikkelproces
het eindresultaat zichzelf zal vormen. Achterliggende gedachte hierbij is dat het bij grote IT-systemen onmogelijk is om het eindresultaat al in detail te kunnen beschrijven. Daarnaast laat
incrementeel ontwikkelen ruimte om wijzigingen door te voeren als de omgeving daarom vraagt.
Basisprincipes Agile
James Martin is de grondlegger van de iteratieve en incrementele ontwikkelmethode. In 1991 publiceerde hij zijn boek Rapid Application Development die gebaseerd is op de principes van
iteratief en incrementeel ontwikkelen zoals deze later zijn vastgelegd in het Manifesto for Agile Software. Deze principes zijn:
-
Individuen en interactie GAAN VOOR processen en hulpmiddelen;
-
Werkend resultaat GAAN VOOR lijvige documentatie;
-
Samenwerking met de klant GAAN VOOR contractonderhandelingen;
-
Reageren op verandering GAAN VOOR strikt het plan volgen.
In het Manifesto for Agile Software zijn bovenstaande principes in een aantal uitgangspunten uitgewerkt. Deze uitgangspunten vormen de basis voor de ontwikkelmethoden die op Agile
zijn gebaseerd:
-
Klanttevredenheid; hoogste prioriteit door snelle en werkende software op te leveren.
-
Verandering is de enige zekerheid; omarm dit en maak hier je concurrentievoordeel van.
-
Regelmatige opleveringen; liever in weken dan in maanden.
-
Dagelijkse samenwerking; mensen uit de business en ontwikkelaars moeten dagelijks samenwerken.
-
Gemotiveerde en deskundige medewerkers; stel teams samen met de juiste mensen.
-
Face tot face; is de meest efficiënte en effectieve manier om met elkaar te
praten.
-
Werkende software; is de belangrijkste criterium voor voortgang.
-
Constante ontwikkeling; Agile processen bevorderen een contante en duurzame systeemontwikkeling.
-
Kwaliteit; continue aandacht voor technische kwaliteit en voor kwaliteit van het ontwerp.
-
Eenvoud, stuur op eenvoud. Less is more!
-
Zelfsturende teams; leveren de beste architecturen, eisen en ontwerpen en systemen op.
-
Continue verbetering; teams zoeken op vaste tijden naar mogelijkheden om werkwijze te verbeteren.
De agile-methode voor systeemontwikkeling is een soort meta-model waar veel ontwikkelmethodieken onder vallen. En waar de uitgangspunten zoals hierboven beschreven handen en voeten is gegeven.
Het onderscheid tussen deze ontwikkelmethodieken is dan ook klein. Het verschil wordt bepaald door hoe de teamsamenstelling tot stand komt en de methoden & technieken die worden
voorgeschreven. RUP en SCRUM zijn de belangrijkste exponenten van Agile.