Waterval versus agile, welke methode is beter?
Een vaak gestelde vraag is: wat is nou beter? Waterval of agile? In deze blog vertellen we je daar meer over. Om te beginnen, is het handig om eerst te kijken wat een waterval methode en een agile methode (of aanpak) is.
Waterval methode
De waterval methode is een klassieke aanpak voor projecten. Het gaat er vanuit dat je eerst het gewenste eindresultaat zo volledig mogelijk specificeert, ontwerpt, bouwt, test en in productie neemt. Wanneer het eindresultaat in productie is genomen, kunnen de beoogde gebruikers er mee aan de slag. Doorgaans is dat laat of aan het einde van het project. Dat betekent dat de gebruikers dan pas in de praktijk ervaren of het eindresultaat echt is wat ze nodig hebben. Als dat niet goed blijkt aan te sluiten, dan kan dat veel herstelwerk en dus kosten en vertraging opleveren. Doorgaans is het zo dat hoe vroeger een fout wordt ontdekt, hoe minder tijd en geld het kost om het te herstellen. Voorbeeldje: een fout in een bouwtekening herstel je sneller dan een slechte fundering wanneer het gebouw al staat.
Agile methode
Een agile werkwijze gaat uit van het opleveren in stappen, zogenaamde sprints, waarbij steeds zoveel mogelijk een werkend product of een werkende uitbreiding daarop wordt opgeleverd. Aan het einde van de eerste oplevering heeft het product vaak een minimum aantal functies. Dat kan een Minimum Viable Product (MVP) zijn om een hypothese te testen. Of je maakt een Minimum Marketable Product waarmee je al echt een product gaat verkopen.
Doordat de gebruikers in een vroeg stadium aan de slag kunnen met het product, krijg je ook in een korte tijd feedback. De feedback kun je dan weer gebruiken om het product gericht te ontwikkelen en zo de maximale toegevoegde waarde te creëren. Per volgende sprint voegt het Agile team steeds functionaliteit aan het product toe.
Dit zie je ook terug in de korte animatievideo. Hierin laten we op een simpele manier het verschil zien tussen ontwikkelen middels de waterval methode en ontwikkelen volgens de agile methode.
Lees deze blog verder onder de video.
Is waterval of agile beter?
Of waterval of juist agile beter is, is geen algemeen antwoord; het ligt aan de situatie. Als de oplossingsrichting helder is en de eisen of specificaties vastliggen dan is een waterval aanpak een goede werkwijze. Is het voor de klant moeilijk om vooraf de eisen eenduidig te definiëren en is er onzekerheid over de oplossingsrichting dan ligt een agile aanpak meer voor de hand. Om een voorbeeld te geven: het ontwikkelen van het ontwerp van een nieuw pand kan goed op een agile wijze. Het is doorgaans minder handig om op een agile manier te gaan bouwen, beton en stenen zijn nu eenmaal wat minder flexibel als ze eenmaal zijn geplaatst.
Je kunt ook kijken naar de Stacey-matrix. Deze matrix laat zien dat overeenstemming over de eisen aan het product en de mate van zekerheid over de oplossingsrichting belangrijke factoren zijn om de juiste keuze voor de aanpak te maken.
Daarnaast kun je in de animatievideo een voorbeeld van de verschillen zien. Het voorbeeld betreft de ontwikkeling van een betaal-app volgens een waterval aanpak enerzijds en met een agile aanpak anderzijds.
In een watervalaanpak is er geen sprake van iteraties en incrementen. Je stelt – met elkaar – eerst de eisen of specificaties vast. Vervolgens ga je met het team de oplossing ontwerpen, bouwen en testen. Als alles goed is gegaan keurt de klant daarna het eindresultaat goed en neemt het in gebruik. Het risico hierbij is dat het uiteindelijke product niet aansluit bij de verwachtingen van de klant.
Binnen Agile, bijvoorbeeld Scrum maak je wel gebruik van iteraties en incrementen. De klant krijgt regelmatig een volgende, uitgebreidere versie van het gevraagde product vanuit het (project)team. Op basis van feedback van de klant kan het team dan een betere versie van het product bouwen en opleveren. Zo minimaliseer je het risico van een product dat niet aansluit bij wat de klant nodig heeft.
Incrementeel en iteratief
Een belangrijk gegeven in het Agile werken, is het werken in sprints waarmee incrementeel en iteratief wordt gewerkt. Incrementeel wil zeggen dat je steeds iets toegevoegd aan het op te leveren product. Iteratief staat voor herhalend, in dit geval herhalend opleveren van een product met steeds een stukje erbij.
Zo creëer je een doorlopend oplever- en leerproces. En om te leren heb je na ‘iets plannen’ en ‘iets maken’ een terugkoppeling nodig om verder te verbeteren. Met agile werken maak je de tijd die je besteedt aan iets verzinnen/plannen en iets maken kort. Zo kun je dus eerder om feedback vragen op een tussentijds resultaat. Om goede feedback te krijgen, is het belangrijk om een wérkend deelproduct op te leveren. In agile is de kleinste versie van een op te leveren werkend product het Minimum Viable Product (MVP).
Als je precies weet wat je wilt, kun je dat vermoedelijk beter direct maken met een watervalaanpak. Maar, als dit uiteindelijk toch niet aansluit op wat de gebruikers of organisatie nodig heeft, dan kan ‘de waste’ erg groot zijn. Bij agile is dit risico minder groot, je kunt hoogstens na afloop van een sprint erachter komen dat deze voor niks is geweest.
Echter als agile op de juiste manier gemanaged wordt, kan het zeer gunstig uitpakken. Een voordeel is dat het te besteden aantal uren vast staat en daarmee ook de kosten van de inzet van mensen geen verrassing zal zijn. Bovendien richt de werkwijze zich erop dat de meest waardevolle eigenschappen en functies van het op te leveren resultaat als eerste worden opgepakt en ingevuld. Hier is het cruciaal dat de Product Owner de juiste prioriteiten toekent op basis van wat de business nodig heeft. Een ander voordeel van agile is dat door de tussentijdse opleveringen er eerder waarde wordt geleverd aan de klant of gebruiker. Je kunt echter niet zeggen dat de ene methode beter is dan de andere, ze bieden allebei voordelen en nadelen afhankelijk van de situatie waarin ze worden toegepast.
Conclusie
Het is belangrijk om de juiste aanpak bij de juiste situatie te kiezen.
Waterval is vooral succesvol wanneer het eindresultaat van een project duidelijk is of duidelijk te maken is én redelijk stabiel blijft. Agile is vooral van toegevoegde waarde wanneer niet goed duidelijk is wat het eindresultaat moet worden en er sprake is van een behoorlijke onzekerheid.
Kiezen voor een waterval aanpak terwijl een agile aanpak meer op zijn plaats kan resulteren in onnodige omwegen, extra kosten en inefficiëntie. Echter, dat geldt omgekeerd uiteraard ook.
Mocht je meer willen weten over agile werken en wat het jouw organisatie precies op kan leveren? Neem dan contact met ons op
Mocht je dit een goed artikel vinden, stellen we het erg op prijs als je het wilt delen! Wil je meer lezen over Agile, kijk dan ook bijvoorbeeld eens naar deze blogs: