Watervalmodel versus agile ontwikkeling: verloop, planning, omgaan met wijzigingen, testen en welke projecten passen

Het watervalmodel is een ontwikkelmodel dat eisendefinitie, ontwerp, programmeren en testen op volgorde van stroomopwaarts naar stroomafwaarts doorloopt, en in principe pas naar de volgende fase gaat als de opleveringen van de vorige fase zijn vastgesteld. Omdat het hele plan aan het begin vastligt, zijn voortgang en kosten goed te beheersen, maar fouten in de eisen die pas in latere fasen worden ontdekt, veroorzaken veel herwerk. Agile ontwikkeling is een verzamelnaam voor benaderingen die korte iteraties van enkele weken herhalen, elke keer werkende software bouwen, feedback van gebruikers verwerken en het plan bijstellen als de eisen veranderen; Scrum en extreme programming (XP) zijn typische methoden. Waterval past wanneer de eisen duidelijk en stabiel zijn, en agile wanneer de eisen gemakkelijk veranderen en je bruikbare functies vroeg wilt opleveren.

KenmerkWatervalmodelAgile ontwikkeling
Hoe de fasen verlopenEisen → ontwerp → programmeren → testen, elk één keer, op volgorde vanaf stroomopwaartsKorte iteraties (sprints in Scrum) met planning, ontwerp, implementatie en testen, vele keren herhaald
PlanningOmvang, planning en kosten van het hele project worden aan het begin vastgelegd, en het werk volgt dat planEr wordt een globale richting bepaald, en het plan wordt elke iteratie bijgesteld, met de hoogste prioriteit eerst
Omgaan met gewijzigde eisenWijzigingen nadat de opleveringen van de vorige fase zijn vastgesteld, veroorzaken veel herwerk en doorlopen een procedure voor wijzigingsbeheerVerandering wordt verondersteld en gemakkelijk opgenomen in het plan voor de volgende iteratie
Wanneer werkende software verschijntVooral tegen het einde van de ontwikkeling; na het testen in één keer opgeleverdElke iteratie levert werkende software op (een increment, in Scrum)
Wanneer wordt getestNa het programmeren: unit-, integratie-, systeem- en acceptatietests op volgorde (in het V-model gekoppeld aan de ontwerpfasen)Elke iteratie; wijzigingen worden vaak elke keer gecontroleerd met geautomatiseerde tests en continuous integration
DocumentatieEisenspecificaties, ontwerpdocumenten enz. worden per fase geschreven en via reviews vastgesteldWerkende software staat voorop, en documentatie blijft vaak beperkt tot wat nodig is
Betrokkenheid van de klantVooral bij de eisendefinitie aan het begin en de acceptatietest aan het eindeBeoordeelt het product elke iteratie en geeft feedback; in Scrum bepaalt de product owner de prioriteiten van wat er wordt gebouwd
VoortgangsbewakingGemeten aan afgeronde fasen en opleveringen; goed te beheren met een WBS en Gantt-diagrammenElke iteratie gemeten aan functies die af zijn en werken
Passende projectenDuidelijke, stabiele eisen; specificaties die vroeg samen met hardware moeten worden vastgelegd; contracten die omvang en kosten vooraf moeten vastleggenEisen die gemakkelijk veranderen, of nieuwe diensten waarbij je tijdens het bouwen de reacties van gebruikers wilt toetsen

De getalswaarden zijn typische ordegroottes en variëren per procesgeneratie en product.

Wanneer welke variant?

Watervalmodel
Wanneer de eisen vanaf het begin duidelijk zijn en waarschijnlijk niet veranderen, wanneer veel organisaties betrokken zijn en in elke fase goedkeuringen en documenten vereist zijn, of wanneer, zoals bij embedded apparaten, de specificatie vroeg moet worden vastgelegd om bij de hardware te passen.
Agile ontwikkeling
Wanneer aan het begin niet duidelijk is wat gebruikers werkelijk helpt, wanneer je prioriteiten wilt bijstellen als markt en eisen veranderen, of wanneer je bruikbare functies vroeg wilt opleveren, al is het beetje bij beetje. Het veronderstelt dat gebruikers of de opdrachtgever de hele ontwikkeling door betrokken blijven.

Veelgestelde vragen

Slaat agile ontwikkeling plannen en ontwerpdocumenten over?

Nee. Agile ontwikkeling plant wel; in plaats van elk detail aan het begin vast te leggen, stelt ze het plan elke iteratie bij. In Scrum bepaalt de sprintplanning aan het begin van elke sprint wat er in die sprint wordt gebouwd. Documenten die nodig zijn, worden ook geschreven.

Wat is het Manifest voor Agile Softwareontwikkeling?

Een verklaring van de ideeën achter agile ontwikkeling, in 2001 geschreven door een groep softwareontwikkelaars. Het formuleert vier waarden: mensen en hun onderlinge interactie boven processen en tools, werkende software boven allesomvattende documentatie, samenwerking met de klant boven contractonderhandelingen, en inspelen op verandering boven het volgen van een plan. Het is zo geformuleerd dat de punten rechts weliswaar waarde hebben, maar de punten links meer worden gewaardeerd.

Hoe verschillen Scrum en agile ontwikkeling?

Agile ontwikkeling is een verzamelnaam voor ideeën en benaderingen die software in korte iteraties ontwikkelen en daarbij op verandering inspelen. Scrum is een van de typische frameworks om dat in de praktijk te brengen; het definieert drie rollen (product owner, Scrum master en ontwikkelaars) en evenementen binnen sprints met een vaste lengte van een maand of korter.

Worden waterval en agile ooit gecombineerd?

Ja. Zo worden bijvoorbeeld eerst de algemene eisen en het globale ontwerp bepaald, waarna implementatie en testen in korte iteraties verlopen. Binnen de watervaltraditie worden ook al lang technieken gebruikt om herwerk te beperken, zoals prototyping om eisen te bevestigen en het spiraalmodel, dat de fasen meerdere keren herhaalt.

Test uw begrip

Welke eigenschap van het watervalmodel voor softwareontwikkeling is juist?

  1. AFasen zoals requirementsdefinitie, ontwerp, implementatie en testen worden van stroomopwaarts af in volgorde doorlopen, en in principe begint de volgende fase pas als de resultaten van de vorige fase zijn vastgelegd
  2. BKorte iteraties worden herhaald; elke iteratie levert werkende software op en verwerkt feedback van gebruikers
  3. CEerst wordt een prototype gebouwd en aan gebruikers getoond om hun eisen te bevestigen, waarna de volledige ontwikkeling begint
Antwoord en toelichting tonen

Antwoord: A. Fasen zoals requirementsdefinitie, ontwerp, implementatie en testen worden van stroomopwaarts af in volgorde doorlopen, en in principe begint de volgende fase pas als de resultaten van de vorige fase zijn vastgelegd

Het watervalmodel is een ontwikkelmodel waarin de fasen elkaar opvolgen in de volgorde requirementsdefinitie, ontwerp, programmeren en testen, zoals water dat naar beneden stroomt. Omdat de resultaten van elke fase via reviews worden vastgelegd, is het model gemakkelijk te plannen en is de voortgang goed te volgen, maar een fout in de eisen die pas in een latere fase wordt ontdekt, veroorzaakt veel herstelwerk. Het wordt gebruikt als de eisen duidelijk zijn en weinig zullen veranderen, of als de specificatie vroeg samen met de hardware moet worden vastgelegd. Gebruikersfeedback verwerken via iteraties is kenmerkend voor iteratieve benaderingen zoals agile ontwikkeling, en eisen bevestigen met een prototype is kenmerkend voor het prototypingmodel.

Welke test hoort in het V-model voor softwareontwikkeling bij de fase requirementsdefinitie en controleert of aan wat in die fase is vastgelegd wordt voldaan?

  1. AUnittest
  2. BIntegratietest
  3. CAcceptatietest
Antwoord en toelichting tonen

Antwoord: C. Acceptatietest

Het V-model is een ontwikkelmodel dat links de fasen plaatst die van requirementsdefinitie via ontwerp naar implementatie afdalen, rechts de testfasen die weer opklimmen, en elk paar overeenkomstige fasen met elkaar verbindt. De acceptatietest (operationele test) hoort bij de requirementsdefinitie, en naarmate de ontwerpfasen gedetailleerder worden, horen daar achtereenvolgens de systeemtest, de integratietest en de unittest bij. De koppeling van de tussenliggende fasen verschilt wat tussen organisaties en handboeken, en soms wordt ook de systeemtest aan de requirementsdefinitie gekoppeld, maar iedereen is het erover eens dat de acceptatietest, die de eisen vanuit het standpunt van opdrachtgever of gebruiker controleert, bij de requirementsdefinitie hoort. De kern van het model is dat testplannen en acceptatiecriteria al worden opgesteld tijdens de overeenkomstige ontwerpfase.

Welke rol is in Scrum verantwoordelijk voor de inhoud en de volgorde (prioriteit) van de items op de Product Backlog en voor het maximaliseren van de waarde van het product?

  1. AScrum Master
  2. BProduct Owner
  3. CDevelopers
Antwoord en toelichting tonen

Antwoord: B. Product Owner

Een Scrum Team bestaat uit drie rollen: de Product Owner, de Scrum Master en de Developers. De Product Owner beheert de Product Backlog, de lijst van wat er gebouwd moet worden, beslist welke items het eerst worden gebouwd en is verantwoordelijk voor het maximaliseren van de waarde van het product. De Scrum Master verspreidt de werkwijze van Scrum in het team en de organisatie en helpt belemmeringen weg te nemen. De Developers zijn de mensen die in elke Sprint een werkend Increment maken.

  1. Welk Scrum-event vindt aan het eind van een Sprint plaats om het opgeleverde Increment (het werkende product) aan stakeholders te tonen, feedback te verzamelen en de verdere koers en de Product Backlog bij te stellen?
  2. Hoe heet bij agile ontwikkeling, bijvoorbeeld met Extreme Programming (XP), de activiteit waarbij de interne structuur van een programma zo wordt herschikt dat het gemakkelijker te begrijpen en te wijzigen is, zonder het van buiten zichtbare gedrag te veranderen?
  3. Welke beschrijving van continuous integration (CI) is juist?

Oefenvragen over Softwareontwikkeling en projectmanagement

Belangrijke termen uitgelegd

Watervalmodel
Model voor softwareontwikkeling waarin fasen zoals requirementsdefinitie, ontwerp, programmeren en testen van stroomopwaarts af in volgorde worden doorlopen, en in principe de volgende fase pas begint als de resultaten van de vorige fase zijn vastgelegd. Planning en voortgang zijn gemakkelijk te beheersen, maar een fout in de eisen die pas in een latere fase wordt ontdekt, veroorzaakt veel herstelwerk.
Agile ontwikkeling (agile development)
Verzamelnaam voor manieren van softwareontwikkeling die korte iteraties van enkele weken herhalen, elke keer werkende software opleveren, feedback van gebruikers verwerken en het plan bijstellen om veranderende eisen te volgen. Bekende methoden zijn Scrum en Extreme Programming (XP).
Scrum
Een bekend raamwerk voor agile ontwikkeling. Met drie rollen, de Product Owner, de Scrum Master en de Developers, en de events binnen Sprints met een vaste lengte van hoogstens één maand (Sprint Planning, de Daily Scrum, de Sprint Review en de Sprint Retrospective) wordt stap voor stap een werkend product gebouwd.
V-model
Ontwikkelmodel dat de fasen die van requirementsdefinitie via ontwerp naar implementatie afdalen en de testfasen die van unittest naar acceptatietest weer opklimmen in een V-vorm plaatst, en de twee kanten aan elkaar koppelt, zoals requirementsdefinitie met de acceptatietest, ontwerp met de integratie- en systeemtest, en moduleontwerp met de unittest. Welke ontwerpfase met welke test wordt gekoppeld, verschilt wat tussen organisaties en handboeken.
Testgedreven ontwikkeling (TDD)
Manier van softwareontwikkeling in een korte, herhaalde cyclus: schrijf eerst een test voor de te bouwen functie, schrijf dan de minimale code om de test te laten slagen, en refactor daarna terwijl de tests blijven slagen. De methode werd verspreid als praktijk van Extreme Programming (XP).
CI/CD (continuous integration en continuous delivery)
Samengestelde naam voor continuous integration (CI), waarbij ontwikkelaars hun wijzigingen vaak samenvoegen in een gedeelde branch en elke samenvoeging een build en geautomatiseerde tests start, en continuous delivery (CD), die geteste wijzigingen op elk moment gereed houdt om in productie te worden gebracht. Als ook de release zelf is geautomatiseerd, heet het continuous deployment.
WBS (work breakdown structure)
Een boom die de opleverproducten van een project en het werk dat daarvoor nodig is opsplitst, van het hoogste niveau naar lagere niveaus (Work Breakdown Structure). De laagste elementen heten werkpakketten en zijn de eenheden voor schatten, plannen, mensen toewijzen en voortgang bewaken.

Verwante vergelijkingen