Agile vs Waterval
Heeft jouw project een duidelijk gedefinieerd einddoel of ben je nog niet geheel zeker van hoe jouw nieuwe webapplicatie, platform of mobiele app eruit moet komen te zien? Opereer je in een snel veranderende markt waar je jouw applicatie continu op aan moet passen óf verwacht je weinig veranderingen? Afhankelijk van datgene dat voor jouw bedrijf belangrijk is, kies je een software ontwikkelingsmethode die daarbij past. We vergelijken in dit blog de Agile methode met de Waterfall methode. Twee bekende ontwikkelmethodieken in software land, met ieder hun eigen voor- en nadelen.
Waterval: software ontwikkeling in vaste fases
Het Watervalmodel voor software ontwikkeling bestaat uit een aantal vooraf gedefinieerde fasen. De naam verklapt meteen ook de werking van de methode. Als een waterval doorloop je de verschillende stappen van boven naar beneden. Er wordt pas een nieuwe fase ingegaan zodra de vorige fase is afgerond.
Waterfall methode fases:
Fase 1: Definitie van het doel
Samen met de klant wordt gebrainstormd over het doel van de softwareontwikkeling. Waarom wil je deze webapplicatie maken? Wat is het nut van het platform? In welke behoefte voorziet de mobiele app?
Fase 2: Eisen en wensen
Waar moet het systeem aan voldoen? Wat zijn must haves en wat is nice to have?
Fase 3: Ontwerp
Hoe gaat de webapplicatie eruit zien? Welke functionaliteiten horen erin? Welke knop doet wat?
Fase 4: Bouwen
De software ontwikkelaars gaan aan de slag met het bouwen van de applicatie. Programmeren, programmeren, programmeren…
Fase 5: Testfase
Het systeem wordt getest. Werken alle functionaliteiten? Doet iedere knop wat hij moet doen? Zitten er bugs in het systeem? Vaak wordt een groep gebruikers gevraagd de applicatie te testen, zodat feedback (user experience) verwerkt kan worden.
Fase 6: Implementatie
De nieuwe applicatie wordt in gebruik genomen.
Fase 7: Onderhoud
Ieder systeem heeft onderhoud nodig. Hiermee zorg je ervoor dat de applicatie blijft werken, dat bugs voorkomen of verwijderd worden en dat de software up to date blijft.
Voordelen Waterval
- Goed te gebruiken voor kleinere projecten waar de eisen en wensen vooraf duidelijk zijn;
- Gestructureerd proces, omdat de stappen één-voor-één worden uitgevoerd;
- Planning, budget en resultaat zijn vooraf helder.
Nadelen Waterval
- Geen tussentijdse feedback van gebruikers;
- Er wordt pas getest nadat de applicatie gebouwd is;
- Het is moeilijker, en daardoor vaak ook duurder en tijdrovender, om fouten of bugs te corrigeren;
- Het proces is behoorlijk rigide, weinig ruimte voor verandering.
Agile vs Waterfall grafisch weergegeven.
Agile: flexibele software ontwikkeling
Software ontwikkelen via de Agile methode is compleet anders dan de traditionele Waterval methode. Waar je bij Waterval eerst alle eisen en wensen in kaart brengt, voordat er ook maar iets wordt ontworpen, ga je bij Agile direct aan de slag. Gedurende de ontwikkeling van de software worden de eisen en wensen steeds duidelijker. De Watervalmethode is een sequentieel proces, zonder overlap tussen de verschillenden fasen, terwijl de Agile methode een iteratief proces is, een soort cyclus die zich continu herhaald. De software wordt ontwikkeld in korte overzichtelijke timeboxes, ofwel iteraties. Na iedere iteratie/ontwikkelperiode, van bijvoorbeeld twee weken, wordt er iets bruikbaars opgeleverd dat getoond, getest en beoordeeld wordt. Doordat bij iedere iteratie of (design) sprint alle noodzakelijke stappen van planning, ontwerp, ontwikkelen en testen steeds opnieuw doorlopen worden, beperk je het risico op fouten of een afwijkend resultaat. Je kunt dus continu bijsturen tijdens het proces. Doordat de klant nauw bij de ontwikkeling betrokken wordt en de productontwikkeling van dichtbij bijwoont, ontstaan er weer nieuwe ideeën en wordt het eindresultaat steeds concreter.
Als je op een Agile manier software ontwikkelt, ligt de focus op het opleveren van concrete resultaten na iedere periode/cyclus, terwijl de focus bij Waterval ligt op het eindresultaat. De Watervalmethode is dan ook behoorlijk gestructureerd en soms rigide, terwijl de Agile methode bekend staat om haar flexibiliteit.
Bekende Agile frameworks zijn bijvoorbeeld Scrum en Kanban. Bij Scrum werken cross-functionele teams in sprints, van gemiddeld 2 weken, aan productontwikkeling. Er worden geen nieuwe taken of werkzaamheden toegevoegd. De focus ligt op het op te leveren resultaat na iedere sprint. Kanban maakt geen gebruik van sprints, maar hangt de uit te voeren taken op een Kanban bord om structuur en overzicht te houden. Kanban is een visuele agile methodiek die vaak wordt ingezet om productieprocessen te verbeteren. Het is geen vast onderdeel van de dag en nieuwe taken kunnen continu worden toegevoegd. De Kanban methode geeft nóg meer flexibiliteit, maar heeft ook het gevaar dat planningen niet altijd gehaald worden.
In deze afbeelding wordt de Scrum aanpak, inclusief een eventuele onderzoeks- en ontwerpfase, uitgebeeld. Eerder schreef één van onze ontwikkelaars over hoe hij de methode in zijn dagelijkse werkzaamheden toepast. Zijn blogpost lees je hier.
Voordelen Agile
- Veel contact met de klant en gebruikers, daardoor kun je continu bijsturen en feedback verwerken om de kwaliteit van het product te verbeteren;
- Flexibele methode, omdat alle fases van planning, ontwerp, ontwikkelen en testen meerdere keren worden doorlopen;
- Je kunt snel inspelen op veranderingen in de markt of eisen of wensen van de klant;
- Iedere iteratie levert een tastbaar resultaat op;
- Geschikt voor (grote) complexe projecten waar het eindresultaat vooraf niet vast staat.
Nadelen Agile
- Het is een intensief proces. Zowel voor het software ontwikkelteam als voor de klant. Er is bijna dagelijks contact;
- Als je niet gewend of getraind bent om agile te werken, is het best ingewikkeld het einddoel scherp te houden en het overzicht te bewaren;
- Software ontwikkelaars dienen de voortgang goed te bewaken en klanten hierin mee te nemen, zodat er overeenstemming is over de deadline en het budget.
Conclusie Agile vs Waterval
Beide software ontwikkelmethoden worden nog steeds veel toegepast. Omdat veel platformen en apps nieuw en onbekend zijn en soms zelfs nieuwe online proposities bieden, is Agile de afgelopen jaren erg populair geworden. Het stelt een team in staat om tijdens het proces nieuwe kennis op te doen, wat onontkoombaar is. Dat betekent niet dat Waterval ondergeschikt is. Als je een proces wilt digitaliseren waarvan al lang en breed bekend is hoe het in elkaar zit, zoals bij een klantportaal, dan is er wellicht minder behoefte aan de flexibiliteit van de Agile methodes.