![]() |
![]() |
![]() |
Agile
is een Engelse woord voor beweeglijk, lenig. Agile (project)management is een
iteratieve (zich herhalende) methode om wensen en eisen boven water te krijgen en aan die
steeds veranderende wensen en eisen te blijven voldoen. Agile werken eist betrokkenheid van alle
belanghebbenden en omvat o.m.:
- kleine vaak multi-disciplinaire projectteams die o.m. snel het pakket van eisen te weten
komen (multi-disciplinair om iedereen die kennis van zaken heeft bij het project
te betrekken, de afdeling overstijgend; pakket van eisen vooral vanuit de klant
gezien)
- snel visueel maken wat de klantwensen (doen en niet alleen maar praten
over mogelijkheden en onmogelijkheden; kleine doelen, korte projecten;
experimenteren, uitproberen)
- veel contacten met klanten en leveranciers (om na te gaan of
aan de wensen en eisen wordt voldaan; met leveranciers of aan die wensen en
eisen kán worden voldaan)
- snel veranderingen in het ontwerp aanbrengen (bij voorkeur
in aanwezigheid van de klanten, het gaat tenslotte om de klant)
- let wel: vooral in oudere of hiërarchische organisaties zal er veel tegenwerking
zijn (vaak niet openlijk maar in de uitvoering wel degelijk aanwezig, niet van
de klanten zelf maar van de IT-afdeling of het middle-management; iedereen
verschanst zich op zijn eigen eilandje; men is gewend aan dubbele agenda's).
Door de iteraties wordt een ontwerp of product gemaakt dat steeds beter, meer
nauwgezet aan de
klantwensen tegemoet komt.
Wat in de ICT rapid
application development (RAD) genoemd werd, is nu, in bredere kring
dan alleen de ICT, agile werken. Er is geen echte
volgordelijkheid meer van de ontwikkeling van een (software)product van het ene
team naar het andere team (de zogenoemde watervalmethode), maar men werkt simultaan
aan het product, ook samen met klanten.
Deze vorm van agile werken wordt scrum
genoemd en vindt plaats in zogenoemde sprints die twee tot vier
weken duren. Tijdens de sprint van een paar weken worden de besproken
functionele eisen (sprint backlog) ontworpen, gecodeerd en getest.
Een sprint-team wordt bemand door mensen uit verschillende disciplines waardoor
mogelijkheden en problemen snel boven tafel kunnen komen. De scrum is te zien als het
totaal van activiteiten die iedereen ontplooit om een zo goed mogelijk resultaat
te bewerkstelligen: een demonstreerbaar en werkend (deel)product. (Scrum is bij rugby de
situatie dat van beide teams een groep spelers bijeen staan en elkaar proberen
weg te duwen om zelf de bal te pakken te krijgen.)
Daarom is het dus ook niet meer een zeer langdurig proces, waarbij
steeds het eindresultaat over de muur geworpen wordt naar het volgende team
(analyse, muurtje, ontwerp, muurtje, ontwikkeling / programmering, muurtje,
testen, muurtje, integrale test, muurtje en, na een zeer lange tijd, de
gebruikerstest), maar
een proces waarbij het team intensief samenwerkt om aan het einde van de sprint
met een werkend product te komen. Het werkende product van een sprint is meestal
een deel van het totale systeem, maar wel een werkend deel. In combinatie met
eerder afgeronde sprints (en dus werkende deelproducten) kan het totale systeem (tot
"heden") getest worden. Die laatste stap heet incrementeel, wat wil
zeggen dat elke stap (sprint) een deel van het systeem wordt toegevoegd, tot
uiteindelijk het gehele systeem gereed is.
Doel van deze methode is ook om "te leren van wat er gebeurt" tijdens
de scrums (empririsch werken) en daardoor de functies en de techniek zo
snel mogelijk en op tijd aan te passen of bij te stellen wanneer het project dat
noodzakelijk of wenselijk maakt. Zo ontstaat een steeds realistischer Product
Backlog (de verzameling van functionele eisen, specificaties, user stories van het totale systeem).
agile werken; uitgaande van product backlog (functionele eisen, specificaties, user stories van het totale systeem), sprint backlog (specifiacties enz. voor deze sprint), de sprint (met dagelijkse evaluatie en eventueel aanpassingen, het kleine cirkeltje) en de deliverable (het demonstreerbare en werkende product van de sprint); afbeelding van agile42 (the agile coaching company): ![]() |
Aspecten van agile en scrum zijn (in tegenstelling met "traditionele"
ontwikkelmethoden):
- Veelvuldige interacties tussen
ontwikkelaars en medewerkers van de klant. De interacties zijn
belangrijk om de wensen van de klant te achterhalen. Er is minder focus op
processen.
- Snelle ontwikkeling van software die aan de gezamenlijk opgestelde, op dat
moment bekende eisen voldoet. Door de software te tonen wordt duidelijk of
"dit de bedoeling is van de klant", komen
vrijwel altijd nieuwe wensen van de klant naar voren en wordt de software
aangepast aan de nieuwe eisen.
- Eenvoudige aanpassing van de software en eventueel procedures bij verandering
van de organisatie of de omgeving daarvan. De nadruk ligt niet meer op "het
systeem" zoals bij traditionele automatisering, toen de systemen nogal star
waren, waardoor aanpassingen vaak complex
waren en veel tijd en geld kostten.
- Vóór of tijdens de interacties bestaat de mogelijkheid de specificaties van
een systeem of product te "definiëren" via user stories;
user
stories zijn zeer korte verklaringen van de eindgebruiker/klant van wat
het systeem moet doen en wanneer die bepaalde actie moet plaatsvinden. Elke user story moet ongeveer op een memo-velletje
passen. Waarom het
systeem of product die actie moet uitvoeren, wordt in het verloop van de
gesprekken wel duidelijk (door een nieuw systeem of proces of veranderde
omstandigheden kan het zijn dat die
actie niet meer nodig is). Er is minder noodzaak tot volledig uitgewerkte specificaties.
- Er is minder
aandacht voor omvangrijke documentatie, uit het oogpunt van tijd (en
kosten), maar ook omdat de eisen van een systeem snel veranderen. (Om
misverstanden te vermijden is het bijhouden van een logboek aan te raden; hou de
tekst in het logboek kort maar duidelijk.)
- Agile is eigenlijk ook gekoppeld aan een no-nonsense-gedachte,
bijvoorbeeld om geen tijd te besteden aan zaken en taken die geen meerwaarde
leveren voor de klant. Daar lijkt agile ook op lean
denken.
- Een scrum-team is multi-disciplinair en kan, naast uiteraard de klant, bestaan uit
"ontwikkelaars, testers, ontwerpers, projectleiders en een teamleider".
Aandachtspunt is wel dat er een goede beveiliging van toegang en gegevens moet
zijn; door de snelheid van handelen en de nadruk op voortgang kan dat wel eens vergeten worden.
De Engelse term agile (beweeglijk, lenig) geeft goed weer waar het bij deze
methode om gaat:
- snel handelen (kleine teams, korte lijnen tussen opdrachtgever en uitvoerder,
snel tonen van de mogelijkheden, snel aanpassingen verrichten)
- het herhalende karakter om tot de juiste klantwensen te komen
- op een eenvoudige, gemakkelijke, duidelijke manier het "systeem"
aanpassen aan veranderingen in klantwensen en de omgeving, zowel in het
ontwerptraject als tijdens het verdere verloop van de levenscyclus.
Een paar omgevingen geven wellicht duidelijkheid over de bedoeling en betekenis
van Agile.
Twynstra:
"- Bij traditionele methoden worden bij de start van een project het resultaat, de randvoorwaarden en andere zaken van het project gedetailleerd vastgelegd. Deze uitgangspunten liggen dan gedurende de uitvoering van het project vast. In de praktijk blijkt dat, zeker bij projecten met een lange doorlooptijd, dit niet goed genoeg werkt.
Tijdens het project ontstaan er regelmatig nieuwe inzichten. Inzichten die de gebruikersorganisatie het projectdoel doet bijstellen ten opzichte van het oorspronkelijke doel.
- Het agile aanpakken van ontwikkeltrajecten vraagt ook om een andere wijze van projectmanagement. Hierbij is het streven dat
projectteams snel en herkenbaar klantwaarde leveren. Projectteams werken aan
herkenbare (deel)resultaten voor de eindgebruikers. Zo kan worden vastgesteld of het resultaat inderdaad aan de wensen voldoet. Vervolgens wordt er afgesproken wat het resultaat van de volgende iteratie dient te zijn. Projecten spelen hiermee in op
veranderende behoeften en complexere omgevingen. De focus is hierbij gericht op de
'troughput', het teamwerk en het leiderschap."
Bouwformatie 2012-02, column Frens Pries, directeur
Betonvereniging:
"De helft van de omzet is vaak renovatie en onderhoud en in dat soort trajecten kun je niet alles plannen. Je hebt dan geen mensen nodig die een formulier invullen, maar vakmensen die ter plekke een besluit kunnen nemen. Bouwvakkers zijn geen hersenloze robots die hun eigen werk niet kunnen organiseren.
Alle papieren handboeken, checklists en procedures zijn een surrogaat voor vakmanschap en
proactiviteit. Er is een mooie parallel met de wereld van projectmanagement. In een simpele, weinig turbulente wereld past het traditionele projectmanagement (zoals Prince2) prima.
In een complexe en snel veranderende wereld passen geen bureaucratische en onwankelbare procedures. Momenteel staat agile projectmanagement nadrukkelijk in de belangstelling. Agile is ontstaan in de wereld van ICT en softwareontwikkeling en vertoont veel kenmerken van lean-thinking.
Agile staat voor het individu en interactie, liever dan voor procedures en tools, resultaat boven papieren zekerheid en reageren op verandering boven het strak afwerken van een eenmaal opgesteld
plan. In die zin lijkt agile beter toe te passen in onze huidige bouwomgeving dan het traditionele projectmanagement."
Vertaald naar de bouwwereld betekent agile werken:
- afstappen van de dwang en drang tot volledig uitgewerkte specificaties
- afstappen van dikke mappen met procedures
- veel meer klantcontact en visueel tonen van de mogelijkheden (klantwensen
functioneel boven tafel krijgen; wellicht gebruik van BIM,
maar dan nog makkelijker aanpasbaar en het liefst waar de klant bij is)
- het volledig samenstellen van een gebouw aan de hand van
standaardcomponenten ("lego-stenen"); denk hierbij ook aan wat Industrieel, flexibel en demontabel bouwen
(IFD) en het living building
concept worden genoemd: hou rekening met het feit dat alles snel verandert
en dus aanpasbaar en inwisselbaar moet zijn en, vooral, in een wisselend tempo.
"het agile manifesto, een verklaring van waarden"; klik voor groter! (prodapt consulting): ![]() |
de oude ontwikkelmethode voor software, de watervalmethode, en de agile-versie; klik voor groter! (mendix, "no code, just glory", kleine projectteams met klanten, reële prototypes, visuele modellen): ![]() |
kanban als methode van projectbeheersing:in één blik overzie je de status van het gehele project; klik voor groter (agile scrum group): ![]() |
Documentatie
- Whitepaper
agile-scrum (van Prodapt
consulting)
- Getting agile scrum (van Mike Cohn van Mountain Goat)
Het boek "Management 3.0,
Leading Agile Developers, Developing Agile Leaders" (uitgave 2011) van
Jurgen Appelo schijnt een soort bijbel te zijn voor agile management.
Een citaat, dat toch ook met agile werken te maken heeft: "Ik geloof
niet zo in klantmanagers die de techneut vertellen wat er bij de klant moet
gebeuren. Stuur de experts zelf maar naar de klant. Zorg dat je nerds de
taal van de klant spreken. Dat werkt." (citaat ceo Eddy Thans, Prime
Vision).
En weliswaar geldt dit voor elk project, maar "wie liefde voelt voor z'n
project wil dat ook verwezenlijken" (citaat van Hans
Achterhuis, filosoof).
De term agile is afgeleid van het Latijnse agilis (behendig, snel) van agere
(bewegen, aandrijven; denk ook aan het woord agitatie); bron Online
Etymology Dictionary.
Zie ook o.m. Agile
softwareontwikkeling, Agile
Modeling (w.o. Agile Model Driven Devlopment AMDD), Scrum
Guides, lean bouwen, conceptueel
bouwen, Industrieel, flexibel en demontabel
bouwen (IFD).