Wat is Agile?
Agile is begin jaren 90 ontstaan als alternatieve methode voor projectmanagement bij een groep ontevreden programmeurs. Zij liepen zoals zovelen die projecten doen tegen de bekende lijst van ‘projectproblemen’ aan: hoge werkdruk, onhaalbare deadlines, budgetoverschrijdingen, spanningen tussen projectleden, kwaliteitsproblemen, enzovoort. De vraag was of er niet een betere projectaanpak zou zijn die een groot deel van bovenstaande problemen zou ondervangen.
Traditionele projectaanpak
In de traditionele projectmanagement methodes (ook wel waterval aanpak) werd en wordt er vooraf een dik projectplan gemaakt waarin men zo goed mogelijk het pad naar het resultaat probeert te beschrijven, in te schatten qua kosten en tijd en de projectleiders daarna het projectteam daaraan probeert te houden. De Agile aanpak gaat uit van een andere benadering: agilisten gaan ervan uit dat het heel moeilijk-zo niet onmogelijk is- om vooraf een project in een goed plan en ontwerp te vatten. Daardoor zullen planningen van tijd, geld en projectresultaat altijd anders uitpakken dan in het plan. Waarom zou je dan nog zo veel tijd besteden aan het schrijven van een projectplan als het toch niet uitkomt? Agile projecten volgen een andere benadering waarbij het project tijdpad opgedeeld wordt in een aantal korte iteraties van bijvoorbeeld 2 of 3 weken. Het team gaat vervolgens per iteratie kijken wat op dat moment het meest belangrijke werk is. Na een werkperiode van 2 of 3 weken wordt er weer opnieuw gekeken naar de situatie op dat moment.
In onderstaande video van Henrik Kniberg wordt het agile proces uitgelegd (Engelstalig).
In essentie komt de Agile aanpak hier op neer:
In plaats van dat je vooraf een uitgebreid projectplan maakt met ontwerpen en onderzoeken vooraf ga je in de Agile projecten direct aan de slag. In een korte tijdframes (iteraties, timeboxen of in Scrum terminologie: sprints) van ongeveer 1 tot 4 weken bouw je een deel van het project. En dan na die periode (iteratie, timebox, sprint) bekijk je opnieuw wat dan het belangrijkste is om te doen in de volgende iteratie. Zo kom je tot het eindresultaat in een x aantal iteraties. Er zijn nog een aantal details en nadere aspecten maar In een paar zinnen is dat hoe de Agile aanpak werkt in de kern werkt.
Agile brengt een aantal nieuwe uitgangspunten en inzichten naar projecten zoals:
- Teamleden hebben veel meer te zeggen over het project en zijn dus vaak in meerdere afwisselende rollen: adviseur, uitvoerder, ontwerper, planner
- Het ontwerp van een projectresultaat ontstaat gaandeweg en wordt niet of nauwelijks vooraf bepaald
- Projectstappen (mijlpalen, tussenresultaten) worden in kleinere delen geknipt waardoor het werk overzichtelijker wordt en er sneller bijgestuurd kan worden als een te bouwen element niet uitpakt als gewenst
- Teams worden uitgenodigd dingen uit te proberen waardoor innovativiteit en creativiteit ontstaat (en meer motivatie!)
- De planning van het project gaat op basis van de kleinere elementen realistischer (in tegenstelling tot grote deadlines over ‘een paar maanden’)
- Het team gaat vrijwel direct bouwen en zal niet wachten op instructies van een projectplan
Agile werken heeft een paar grote voordelen:
- Door de iteratieve aanpak kan je het project in een andere richting sturen als dat nodig is, bijvoorbeeld als de specificaties van een beoogd projectresultaat tussentijds wijzigen
- Door het regelmatig opleveren van tussenresultaat komen problemen en fouten eerder aan het licht
- Het hele team wordt betrokken bij de bouw en ontwikkeling van een project in plaats van losse gespecialiseerde ontwerpers, projectleider(s), bouwers en testers
- Het team komt minder onder druk te staan doordat er minder kans is op te veel werk in een iteratie ‘proppen’ (in vergelijking tot de druk om een –vaak niet realistische- deadline te halen)
- Door de relatief korte iteraties is de voortgang van het werk zichtbaarder wat motiverend werkt voor het team alsmede meer inzicht geeft in de voortgang aan opdrachtgevers
- Agile werkt onder andere goed bij creatieve projecten zoals onder andere softwareontwikkeling, productontwikkeling, research en development projecten. Ook is het goed toepasbaar bij veel studentenprojecten in het onderwijs.
(zie ook: het Agile manifest)
Na het succes van Agile methodes als Extreme Programming, Scrum en DSDM in de ICT wereld wordt de aanpak nu vaker in andere omgevingen toegepast. Er lijken partijen te zijn die Scrum overal willen toepassen maar dat is geen goed idee. Evenmin is Agile altijd een betere aanpak dan traditioneel projectmanagement. Soms is het wel een goed idee om vooraf een project goed door te denken voordat men aan de slag gaat. Agile werken is niet zonder valkuilen of nadelen.
Soorten Agile, wat is Scrum?
Net zoals bij ‘gewoon’ projectmanagement zijn er bij Agile allerlei stromingen ontstaan. De bekendste zijn: Extreme Programming, Scrum, DSDM, Chrystal Clear en vele Agile methodes voor grote groepen (“scaled Agile”). Vooral Scrum is populair geworden en is nu de meest gebruikte Agile richting, alhoewel…lees ook: Wat is Scrum?
Ook net zoals bij de projectmanagement methodes volgt bijna niemand de Agile methodes naar de letter. En ook dus Scrum niet. Er zijn allerlei eigen variaties op Scrum ontstaan en daarmee ook de discussie over wat dan wel of niet werkt, hoe streng je bepaalde Scrum spelregels moet toepassen (“moet een iteratie een vaste periode zijn of mag die varieren?”) en überhaupt of een project wel Scrum of Agile mag heten. Zo komen wij teams tegen die denken dat ze ‘Agile’ zijn als ze een keer per week bij elkaar komen en een todo lijst bespreken (die ze dan omgedoopt hebben naar de Agile benaming: product backlog) of een bouwplaats waar Scrum was ‘geïntroduceerd’ omdat het team nu elke ochtend begon met een staand werkoverleg (maar verder niets uit de Scrum methode overnam).
Dat organisaties experimenteren met werkwijzen en hun eigen sausje van Agile of projectmanagement toepassen is alleen maar goed. Het blijft mensen- en maatwerk en we moeten blijven innoveren, ook op organisatorisch vlak.
De verwarring die er ontstaan is door eigen variaties is wel soms onhandig omdat het onduidelijkheid en communicatieruis brengt. Zo kwamen we naar aanleiding van onze Agile Scan een organisatie tegen waar er wel drie verschillende definities bleken te leven van de Scrum rollen en hun bijbehorende taken en verantwoordelijkheden. Geen wonder dat de Agile projecten niet liepen en men naar elkaar bleef wijzen!
Een projectteam (en moederorganisatie) moet in ieder geval met elkaar besluiten wat Agile voor hen betekent voordat ze hun eigen Agile benadering gaan toepassen. Maar niet weinig komen we bedrijven tegen die nog niet helemaal Agile durven te werken of het om andere redenen ‘half’ implementeren. En dan bijvoorbeeld toch maar een projectleider in stand houden, terwijl die in een Agile team geen rol meer heeft en -sterker nog- in de weg gaat zitten bij het Agile proces. De uitspraken: ”wij hoeven niet te plannen want wij werken Agile” of “Agile is meer een houding en mindset dus we hoeven niet gestructureerd te werken” komen we ook regelmatig tegen. Maar Agile is niet zo vrijblijvend en zeker meer dan alleen een mindset. De belangrijkere onderliggende vraag is: hoe organiseren wij ons project en welke afspraken maken we dan met elkaar over de aanpak?
Het advies aan organisaties en projectleiders is dan ook: leer de Agile aanpak zodat je kan besluiten of en hoe je het kan gebruiken in je projecten (of niet).