agile

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).