Waterfall-methodologie: een uitgebreide handleiding

Atlassian Door Atlassian
Onderwerpen zoeken

Als je al een tijdje in projectmanagement zit, ben je de Waterfall-methodologie vast wel eens tegengekomen. Het is een ouderwetse softwareontwikkelingsmethode uit de jaren 70.

In een Waterfall-proces moet je elke projectfase voltooien voordat je naar de volgende fase gaat. Het is behoorlijk star en lineair. De methode is sterk afhankelijk van alle vereisten en het denkwerk dat je hebt gedaan voordat je begint.

Geen zorgen als je er nog nooit van hebt gehoord. Laten we de Waterfall-methode op een rijtje zetten en kijken hoe die werkt.

Wat is de Waterfall-methodologie?

De Waterfall-methodologie is een gevestigde projectmanagementworkflow. Net als bij een waterval loopt elke procesfase opeenvolgend in elkaar over in vijf fasen (vereisten, ontwerp, implementatie, verificatie en onderhoud).

De methodologie is afkomstig uit een onderzoeksartikel uit 1970 van computerwetenschapper Winston Royce over softwareontwikkeling. Hoewel Royce dit model nooit de naam 'Waterfall' heeft gegeven, wordt de ontwikkeling van een lineair, rigoureus projectmanagementsysteem aan hem toegeschreven.

In tegenstelling tot andere methoden, zoals de Agile-methodologie, is er bij de Waterfall-methode geen sprake van flexibiliteit. Je moet een fase voltooien voordat je aan de volgende begint. Je team kan pas verder als alle problemen zijn opgelost. Bovendien, zoals in onze handleiding inleiding tot projectmanagement staat, kan je team geen bugs of technische schulden oplossen als het al naar de volgende projectfase is overgegaan.

Wat zijn de fasen van de Waterfall-methodologie?

De Waterfall-methodologie bestaat uit vijf fasen: vereisten, ontwerp, implementatie, verificatie en onderhoud. In dit gedeelte bekijken we de vijf specifieke fasen van Waterfall-ontwikkeling en leggen we uit waarom het cruciaal is om elke fase te voltooien voordat de volgende fase begint.

Vereisten

In de fase 'vereisten' staat wat het systeem moet kunnen. In deze fase bepaal je de scope van het project, van zakelijke verplichtingen tot gebruikersbehoeften. Dit geeft je een overkoepelend overzicht van het hele project. De vereisten moeten het volgende omschrijven:

  • de middelen die nodig zijn voor het project.
  • waar elk teamlid aan gaat werken en in welke fase.
  • een tijdlijn voor het hele project waarin staat hoe lang elke fase duurt.
  • informatie over elke fase van het proces.

Maar deze vereisten "kunnen variëren van zeer abstracte tot een gedetailleerde wiskundige specificatie", aldus Steven Zeil, hoogleraar computerwetenschappen aan de Old Dominion University. Dat komt omdat de vereisten misschien niet de exacte implementatie beschrijven. Dat is iets wat later aan bod komt bij de ontwikkeling.

Ontwerp

Nadat alle vereisten zijn verzameld, is het tijd om over te gaan naar de ontwerpfase. In deze fase ontwikkelen ontwerpers oplossingen die voldoen aan de vereisten. In deze fase:

  • stellen ontwerpers planningen en projectmijlpalen op;
  • bepalen ontwerpers de precieze deliverables;
  • maken ontwerpers ontwerpen en/of blauwdrukken voor de deliverables.

Deliverables kunnen bestaan uit software of uit een fysiek product. Ontwerpers bepalen bijvoorbeeld de systeemarchitectuur en gebruiksscenario's voor software. Voor een fysiek product bepalen ze de exacte specificaties voor productie.

Implementatie

Zodra het ontwerp klaar en goedgekeurd is, is het tijd om het te implementeren. De ontwerpers dragen de specificaties over aan de ontwikkelaars om te bouwen.

Om dit te bereiken:

  • ontwikkelen de ontwikkelaars een implementatieplan;
  • verzamelen de ontwikkelaars alle gegevens of onderzoeken die nodig zijn voor de bouw;
  • wijzen de ontwikkelaars specifieke taken en middelen toe aan het team.

In deze fase ontdek je misschien zelfs welke delen van het ontwerp niet geïmplementeerd kunnen worden. Als dit een groot probleem vormt, moet je een stapje terug doen en opnieuw beginnen met de ontwerpfase.

Verificatie

Nadat de ontwikkelaars het ontwerp hebben gecodeerd, is het tijd voor kwaliteitsborging. Het is belangrijk om alle usecases te testen om een goede gebruikerservaring te garanderen. Je wilt immers geen defect product releasen aan klanten.

Verder:

  • schrijft QA testcases;
  • documenteert QA eventuele bugs en fouten die moeten worden opgelost;
  • test QA één aspect tegelijk;
  • bepaalt QA welke QA-statistieken moeten worden bijgehouden;
  • omvat QA verschillende gebruiksscenario's en omgevingen.

Onderhoud

Na de release van het product moeten ontwikkelaars mogelijk bugs oplossen. Klanten stellen je supportmedewerkers op de hoogte van eventuele problemen. Daarna is het aan het team om die aanvragen op te pakken en nieuwere releases van je product uit te brengen.

Zoals je kunt zien, is elke fase afhankelijk van de fase die eraan voorafgaat. Er is weinig ruimte voor fouten tussen of tijdens de fasen.

Als een belanghebbende bijvoorbeeld een vereiste wil toevoegen tijdens de verificatiefase, moet je het hele project opnieuw bekijken. Dat zou kunnen betekenen dat je alles moet weggooien en opnieuw moet beginnen.

Voordelen van de Waterfall-methodologie

Dankzij de voordelen van de Waterfall-methodologie is dit een duurzame workflow voor projecten die een vast resultaat hebben. Uit een enquête uit 2020 bleek dat 56% van de projectprofessionals in het voorgaande jaar traditionele modellen of Waterfall-modellen hadden gebruikt.

Enkele voordelen van Waterfall-planning zijn onder andere:

  • Duidelijke projectstructuur: in de Waterfall-methodologie is er weinig ruimte voor verwarring vanwege de strakke planning. Er is een duidelijk einddoel waar je naar toe werkt.
  • Vaste kosten: de strakke planning zorgt ervoor dat de tijd en kosten van het project vooraf bekend zijn.
  • Easier tracking: Assessing progress is faster because there is less cross-functional work. You can even manage the entirety of the project in a Gantt chart, which you can find in Jira.
  • Een herhaalbaar proces: als een project slaagt, kun je het proces opnieuw gebruiken voor een ander project met vergelijkbare vereisten.
  • Uitgebreide projectdocumentatie: de Waterfall-methodologie biedt je een blauwdruk en een historisch projectdossier, zodat je een uitgebreid overzicht hebt van een project.
  • Verbeterd risicobeheer: het risico wordt beperkt doordat er vooraf veel wordt gepland. Hierdoor kunnen ontwikkelaars ontwerpproblemen opsporen voordat ze een code schrijven.
  • Vergrote verantwoordelijkheid en aansprakelijkheid: teams nemen de verantwoordelijkheid in elke procesfase. Elke fase heeft duidelijke doelen, mijlpalen en tijdlijnen.
  • Nauwkeurigere uitvoering voor niet-deskundig personeel: met Waterfall kunnen minder ervaren teamleden zich bij het proces aansluiten.
  • Minder vertragingen vanwege aanvullende vereisten: aangezien je team van tevoren weet wat de behoeften zijn, is er geen sprake van aanvullende verzoeken van belanghebbenden of klanten.

Beperkingen van de Waterfall-methodologie

De Waterfall-methodologie heeft een paar beperkingen. Daarom kiezen veel productteams voor een Agile-methode.

De Waterfall-methode doet het heel goed met voorspelbare projecten, maar valt uiteen bij een project met veel variabelen en onbekende factoren. Laten we eens kijken naar enkele beperkingen van de Waterfall-planning:

  • Langere levertijden: de levering van het eindproduct kan langer duren dan normaal vanwege het onbuigzame stapsgewijze proces, in tegenstelling tot een iteratief proces zoals Agile of Lean.
  • Beperkte flexibiliteit voor innovatie: elke onverwachte gebeurtenis kan onheil betekenen voor een project met dit model. Eén probleem zou het project twee stappen terug kunnen brengen.
  • Beperkte mogelijkheden voor feedback van klanten: zodra de fase 'vereisten' is voltooid, is het project niet meer in handen van de klant.
  • Heel veel functie-aanvragen: omdat klanten weinig zeggenschap hebben over de uitvoering van het project, kunnen er na de lancering veel aanvragen voor verandering zijn, bijvoorbeeld de toevoeging van nieuwe functies aan de bestaande code. Dit kan leiden tot verdere onderhoudsproblemen en de lancering uitstellen.
  • Uitstelling van de deadline: als er in één fase een groot probleem optreedt, komt alles tot stilstand. Er kan niets gebeuren totdat het team het probleem heeft opgelost. Het kan zelfs nodig zijn om terug te gaan naar een vorige fase om het probleem op te lossen.

Hieronder is een illustratie van een project waarbij gebruik wordt gemaakt van de Waterfall-aanpak. Zoals je kunt zien, is het project opgedeeld in starre tijdsblokken. Deze onbeweeglijkheid zorgt voor een omgeving waarin ontwikkelaars, productmanagers en belanghebbenden worden aangemoedigd om voor elk tijdsblok de maximale hoeveelheid tijd te vragen, aangezien er in de toekomst misschien geen mogelijkheid is om dit te herhalen.

Voorbeeld watervalrelease | Atlassian agile coach

Waarin verschilt de Waterfall-methode van Agile projectmanagement?

Agile projectmanagement en de Waterfall-methodologie hebben hetzelfde einddoel: een kristalheldere projectuitvoering. Waar teams in de Waterfall-planning geïsoleerd zijn in de verschillende fasen, maakt Agile het mogelijk om multifunctioneel te werken tijdens meerdere fasen van een project. In plaats van starre stappen te volgen, werken teams volgens een cyclus van planning, uitvoering en evaluatie, die ze steeds herhalen.

Het 'Agile Manifesto' legt uit wat de voordelen zijn van Agile ten opzichte van het Waterfall-model:

  • Mensen en hun onderlinge interactie boven processen en tools
  • Werkende software boven allesomvattende documentatie
  • Samenwerking met de klant boven contractonderhandelingen
  • Inspelen op verandering door een plan te volgen

If you're looking for tools that support Agile project management and serve the same end goal as Waterfall, consider Jira. It’s best suited for Agile projects, and helps you:

Atlassian's Agile tools support the product development lifecycle. There are even Agile metrics for tracking purposes. Jira lets you drive forward the Agile process. It uses intake forms to track work being done by internal teams and offers a repeatable process for requests.

Deze Jira-producten zijn standaard geïntegreerd in de app en brengen teams samen zodat ze sneller kunnen werken.

Agile-methodologie gebruiken voor projectmanagement

De Waterfall-methodologie bestaat al lang in projectmanagement, maar is vaak niet de juiste keuze voor moderne softwareontwikkelaars. De Agile-methodologie biedt meer flexibiliteit.

Dit is waarom de meeste teams de voorkeur geven aan een Agile-proces:

  • Aanpassingsvermogen aan veranderingen: als er iets gebeurt, kan je team zich meteen beter aanpassen. De onbuigzaamheid van Waterfall maakt het moeilijk om eventuele versperringen aan te pakken.
  • Continue feedbackloop: voor continue verbetering is een feedbackloop nodig. Met Agile kun je tijdens het proces feedback van belanghebbenden verzamelen en dienovereenkomstig herhalen.
  • Sterkere communicatie: teams werken samen in een Agile-proces. Waterfall is een reeks overdrachten tussen verschillende teams, wat de effectieve communicatie belemmert.


Here is where a project management tool such as Jira comes in handy for an Agile methodology. You can also use a project management template for your Agile projects. Your team can plan, collaborate, deliver, and report on projects in one tool. That keeps everyone aligned throughout any project and streamlines project management.

Waterfall-methodologie: veelgestelde vragen

Voor wie is de Waterfall-methodologie het meest geschikt?

De Waterfall-methodologie werkt het beste voor projectmanagers die werken aan projecten die het volgende bevatten:

  • Minder complexe doelstellingen: projecten zonder ingewikkelde vereisten zijn het meest geschikt voor Waterfall.
  • Voorspelbare resultaten: Waterfall werkt het beste voor projecten die repliceerbaar en bewezen zijn.
  • Verminderde kans op een scope-creep van het project: een project waarbij klanten waarschijnlijk niet op het laatste moment met vereisten zullen komen, is geschikt voor Waterfall.

Voor wie is de Waterfall-methodologie het meest geschikt?

De agile methodologie is perfect voor flexibele teams met een iteratieve mentaliteit, zoals:

  • Multifunctionele teams: een team van mensen met verschillende vaardigheden waarmee ze aan verschillende aspecten van een project kunnen werken. Dit zijn vormen van samenwerking die flexibel zijn.
  • Zelforganiserende teams: autonome teams die niet veel ondersteuning nodig hebben. Ze omarmen dubbelzinnigheid in een project en zijn geweldige probleemoplossers. Deze mentaliteit geeft hen ook meer zeggenschap over de resultaten.
  • Startups en kleine bedrijven: deze hebben baat bij de mentaliteit "om snel te handelen en grenzen te verleggen". Ze kunnen dus snel falen, leren en zich verbeteren.

Tot slot werkt Agile goed voor projecten waarbij de klant centraal staat, waarbij je dankzij hun input kunt herhalen.

Met welke factoren moet ik rekening houden voordat ik een projectmanagementaanpak implementeer?

Bij het kiezen van de juiste methodologie voor projectmanagement zijn er vier belangrijke factoren waarmee rekening moet worden gehouden: de complexiteit van het project, de doelstellingen van de organisatie, de expertise van het team en de betrokkenheid van belanghebbenden.

Laten we ze allemaal op een rijtje zetten:

  • Complexiteit van het project: Waterfall kan helpen om grotere, complexere projecten op te splitsen in kleinere sets van verwachtingen en doelen. Maar de onbuigzaamheid gaat niet goed samen met onbekende zaken of veranderingen. Agile is beter voor complexe projecten met veel variabelen.
  • Organisatiedoelstellingen: wat wil jouw organisatie bereiken? Wil het bedrijf innoveren of de status quo behouden? Een agile aanpak is het beste als je organisatie silo's wil doorbreken. Teams zullen meer samenwerken en meer autonomie hebben.
  • Teamexpertise: agile is een uitstekende keuze als je team multifunctioneel is en met verschillende vaardigheden kan werken. Als je teamleden sterk afhankelijk zijn van unieke vaardigheden, is Waterfall misschien beter.
  • Betrokkenheid van belanghebbenden: als je belanghebbenden meer aan de slag willen, helpt Agile je daar het beste bij omdat het continue feedback en herhaling mogelijk maakt.