Wat is de watervalmethode bij softwareontwikkeling?

De watervalmethode is een van de softwareontwikkelingsmethoden die door veel ontwikkelaars wordt gebruikt voor projectbeheer. Het is een lineaire benadering van het begin tot het einde van het project, wat betekent dat elke fase van het ontwikkelingsproces moet worden voltooid voordat er naar de volgende wordt gegaan. Veel organisaties hebben de gewenste resultaten bereikt door gebruik te maken van deze aanpak, die gestructureerd en grondig is en al enkele jaren wordt toegepast.

De watervalmethode begint met het verzamelen van verzoeken van klanten en belanghebbenden aan het begin van het softwareproject, zodat een sequentieel projectplan kan worden ontwikkeld. Alle aspecten van het project worden dus vooraf gedocumenteerd, inclusief user stories, interfaces, features, enz., zodat je nauwkeurige tijdsinschattingen kunt maken en een voorspelbare releasedatum kunt vaststellen. In dit artikel kom je meer te weten over de watervalmethode, de fasen, voordelen en nadelen.

Vijf standaardfasen in de watervalmethode

Zoals eerder vermeld, werkt de methodologie chronologisch, vertrouwend op vaste eisen, data en resultaten. Daarom hoeven teams niet samen te werken, tenzij er voortdurend specifieke integraties nodig zijn. Ze werken meestal zelfstandig, in tegenstelling tot Agile methodes, waarbij de teamleden regelmatig statusrapporten moeten geven en moeten samenwerken.

Dit hoofdstuk behandelt de vijf belangrijkste fasen of stappen van de watervalmethode zoals oorspronkelijk voorgesteld door de bedenker ervan, Winston W. Royce. Bovendien begint elke fase van de softwareontwikkeling pas nadat de vorige is voltooid. Bij het overwegen van een softwareontwikkelingsproject worden de volgende stappen meestal in het proces opgenomen:

  • Vereisten
  • Ontwerp
  • Implementatie
  • Verificatie of testen
  • Uitrol of onderhoud

1. Vereisten

De eerste fase draait om het verzamelen en volledig begrijpen van de projectvereisten van de klant en belanghebbenden. De projectmanager voert deze taak uit, waardoor het team de volgende fasen dienovereenkomstig kan plannen. Meestal worden alle vereisten schriftelijk vastgelegd als één document om nauwkeurigheid te garanderen.

Het zal een overzicht geven van de kosten, aannames, risico’s, afhankelijkheden, succescijfers en voltooiingsdata voor elke fase van het project. Theoretisch zal de communicatie met klanten pas weer op gang komen als het product klaar is nadat de eerste fase is afgerond.

2. Ontwerp

Tijdens de ontwerpfase lossen softwareontwikkelaars technische problemen op die voortkomen uit de vereisten van het product. De oplossing kan bestaan uit lay-outs, scenario’s, gegevensmodellen, enz. Het eerste wat ze doen is een ontwerp maken dat het doel en de parameters van het project schetst, evenals het algemene pad van het verkeer en de integratiepunten van elk onderdeel. Dit wordt de logische ontwerpsubfase genoemd.

Vervolgens wordt het conceptontwerp omgezet in een fysiek ontwerp met behulp van specifieke hardware- en softwaretechnologieën in de subfase fysiek ontwerp. In deze fase worden alle ideeën die in de logische ontwerpfase zijn besproken, omgezet in daadwerkelijke specificaties via de hardware- en softwaretechnologieën van het team.

3. Implementatie

Nu komt de implementatiefase, de fase waarin alles in actie wordt gebracht. Dit is meestal de kortste watervalfase omdat al het onderzoek en ontwerp op dit punt klaar moet zijn. In deze fase maken de programmeurs gebruik van de specificaties en vereisten uit de ontwerpfase om code te ontwikkelen. Het is echter mogelijk dat het team terug moet naar de ontwerpfase als er tijdens de implementatiefase belangrijke aanpassingen nodig zijn.

4. Verificatie of testen

Het verifiëren of testen van een product voordat het wordt vrijgegeven aan klanten is een belangrijke watervalfase die hoe dan ook niet kan worden vermeden. Het is noodzakelijk om te garanderen dat het product foutloos is en dat aan alle vereisten is voldaan om een positieve gebruikerservaring van de software te bieden. Dus in deze fase draagt het ontwikkelteam het project over aan het QA-testteam.

  • Voordat het project wordt ingezet, gaan ze op zoek naar bugs of fouten die moeten worden verholpen en ze zullen elk probleem dat ze tijdens de kwaliteitsborging ontdekken, grondig registreren.
  • Als een andere ontwikkelaar een soortgelijke bug tegenkomt, kan hij de eerdere documentatie gebruiken om het probleem op te lossen.
  • Na het testen op fouten wordt het eindproduct tijdens de verificatiefase beschikbaar gesteld aan de klant.
  • De klant zal het eindproduct inspecteren om er zeker van te zijn dat het voldoet aan de vereisten die aan het begin van het project werden gespecificeerd.

5. Uitrol en onderhoud

Na verificatie en testen wordt het product binnen de juiste deadline bij de klant afgeleverd. Maar het komt voor dat er een nieuwe bug wordt ontdekt of dat er een software-update nodig is nadat het product is uitgerold. In de onderhoudsfase kan het team dus de nodige fixes uitvoeren en bijgewerkte softwareversies uitbrengen om volledige klanttevredenheid te garanderen. Het is gebruikelijk bij softwareontwikkeling om continu aan deze fase te werken.

Wat heb je eraan?

Gezien wat je in de vorige hoofdstukken hebt gelezen, is de watervalmethode een duidelijke, rechtlijnige benadering van projectmanagement die door de jaren heen door talloze organisaties is toegepast. Omdat je vanaf het begin op de hoogte bent van de projectvereisten, weet het team wat en wanneer het moet gebeuren en kan het het project goed plannen om het binnen de opgegeven deadline af te ronden. Hieronder volgen enkele voordelen van de methode:

  • Door ontwerpfouten in een vroeg stadium van het eisen- en ontwerpproces te identificeren, kunnen ontwikkelaars helpen voorkomen dat ze later in de implementatiefase slechte code schrijven.
  • Zodra de vereisten zijn vastgesteld, is het mogelijk om de totale kosten en tijdlijn van het project nauwkeurig in te schatten.
  • Met een georganiseerde aanpak wordt het eenvoudiger om de voortgang te meten aan de hand van goed gedefinieerde mijlpalen.
  • Wanneer nieuwe ontwikkelaars bij een lopend project komen, zullen ze geen problemen hebben om op snelheid te komen omdat het document met eisen alle informatie zou moeten bevatten die ze nodig hebben.
  • Klanten die nieuwe eisen stellen aan het project zullen de productie niet vertragen.

Wat zijn de nadelen?

De voordelen op het ene gebied kunnen leiden tot nadelen op een ander gebied, net als in elk ontwikkelingsproces. Door de nadruk op projectplanning vooraf en toewijding aan specifieke, gedefinieerde voortgang, is de watervalmethode later in het proces minder goed aanpasbaar. Later in het proces wijzigingen aanbrengen kan pijnlijk, tijdrovend en duur zijn. Er zijn nog andere redenen waarom de methodologie niet effectief zou kunnen zijn.

  • In vergelijking met een iteratieve aanpak zoals de Agile methode, kan het langer duren om een project af te ronden als je deze chronologische methode gebruikt.
  • Omdat ze niet in staat zijn om vooraf duidelijk aan te geven wat hun behoeften zijn, kunnen klanten later in het proces om aanpassingen en nieuwe functies vragen, wanneer het een grotere uitdaging is om hieraan te voldoen.
  • De stadia van ontwerp en implementatie staan niet open voor deelname van de klant.
  • Een proces dat bekend staat als “deadline creep” treedt op wanneer één stap wordt uitgesteld en alle andere stappen ook.
  • Het grootste nadeel van deze aanpak is dat het een uitdaging kan zijn om terug te gaan naar een fase die eenmaal is afgerond.

Je hebt in dit artikel veel geleerd over de watervalmethode. Deze aanpak is misschien niet geschikt voor elk softwareontwikkelingsproject. De methode heeft meestal de voorkeur van projectmanagers die projecten managen met precieze vereisten die vanaf het begin een duidelijk beeld geven van hoe de dingen zich zullen ontvouwen en waarbij het onwaarschijnlijk is dat de reikwijdte zal veranderen nadat het project van start is gegaan. Voor sommige projecten kan de aanpak te beperkend lijken, maar het kan een uitstekend hulpmiddel zijn om te voorkomen dat een duidelijk omschreven, voorspelbaar project over het budget en de planning heen gaat. Neem dus een weloverwogen beslissing op basis van de informatie in het artikel.

Interessante links:

Bekijk meer informatie over het watervalmodel in softwareontwikkeling

Wat zijn de voor- en nadelen van de watervalmethode?

Foto’s: Canvas


De auteur: Sascha Thattil werkt bij Software-Developer-India.com, een onderdeel van de YUHIRO Group. YUHIRO is een Duits-Indiase onderneming die programmeurs levert aan IT-bedrijven, agentschappen en IT-afdelingen.

Geef een reactie

Deze site gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie-gegevens worden verwerkt.