Agile en Waterfall (ook wel traditioneel genoemd) zijn twee ontwikkelingsmethoden; Agile gebruikt een iteratieve benadering, terwijl Waterfall sequentieel is.
In het geval van een nieuw project, programma of product worden projectmanagers geconfronteerd met de beslissing welk soort leveringsmethodologie moet worden gebruikt. Een leveringsmethode is in wezen een framework: een proces of reeks processen die worden gebruikt om georganiseerde planning, ontwikkeling, uitvoering, fixatie, monitoring, en de balans voor het werk te faciliteren. En twee van de meest gebruikte methodologieën vandaag de dag zijn het traditionele Waterfall-framework, en de nieuwere Agile-benadering. Een derde benadering– waarbij traditionele en flexibele werkmethoden worden gecombineerd – is ook een wijdverbreide toepassing.
Agile is een iteratieve methodologie voor softwareontwikkeling met een doel gericht op samenwerking tussen zelforganiserende en functieoverschrijdende teams. Leer meer over Agile.
Agile onthoudt zich van de traditionele, één-stap-tegelijk benadering waarbij toegewezen resources specifieke toegewezen taken uitvoeren, en het project vervolgens verplaatsen naar de volgende fase of toegewezen resource(s). In plaats daarvan is het afhankelijk van toegewijde teams die in staat zijn om samen en gelijktijdig te werken. Deze teams voeren taken gelijktijdig uit, waardoor het niet langer nodig is te wachten tot taken zijn voltooid, en u in staat wordt gesteld om gemakkelijk te pivoteren om veranderende behoeften of opkomende problemen aan te pakken.
Zoals hierboven vermeld, is Agile iteratief en ondersteunt het continue releases; het verdeelt het werk in meerdere sequenties van herhaalde cycli, genaamd iteraties. Dit levert voortdurend waarde aan de eindgebruiker, in plaats van alles tegelijk te leveren bij het voltooien van het project. Agile speelt een sleutelrol in continue levering en continue verbetering.
Hoewel verschillende teams Agile op een aantal verschillende manieren kunnen benaderen, houdt Agile zich altijd aan de volgende kernprincipes:
Sinds de introductie begin jaren 2000 heeft Agile een aanzienlijke populariteit verworven. De voordelen van de Agile-methodologie zijn onder meer:
Met voorgedefinieerde sprints kunnen nieuwe functies snel en voorspelbaar worden geleverd. Bètatests kunnen ook eerder worden uitgevoerd dan anders mogelijk zou zijn.
Agile legt de focus op eenvoud en samenwerking en geeft teams ongeëvenaarde vrijheid in het zelf organiseren en nemen van cruciale beslissingen.
Teamautonomie in Agile geeft teams de flexibiliteit om de methoden en technieken te kiezen die het beste passen bij het gewenste resultaat. Tegelijkertijd worden projecten zelf flexibeler, waarbij nieuwe of gewijzigde items met achterstand in de loop van de ontwikkeling kunnen worden geïntroduceerd. Vroege bètatests bieden ook essentiële feedback die ontwikkelaars kunnen gebruiken om belangrijke veranderingen aan te brengen.
Agile is afhankelijk van het vermogen van een team om effectief te communiceren, zowel intern als extern. Het benadrukt directheid en helderheid, en zorgt ervoor dat er regelmatige, persoonlijke communicatie plaatsvindt.
In de Agile-methodologie is het de klant of eindgebruiker die de prioriteit van functies bepaalt. Dit geeft ontwikkelingsteams duidelijk inzicht in welke functies de beste waarde voor het bedrijf bieden.
Wanneer ontwikkelaars worden geconfronteerd met strakke deadlines en moeilijke langetermijndoelen, kunnen ze het belang van de klant gemakkelijk uit het oog verliezen. Agile verplaatst die focus, waarbij de behoeften van de klant en andere feedback van de gebruiker als basis voor verbeterde producten worden gebruikt. Dit leidt niet alleen tot een grotere klanttevredenheid, maar ook tot een beter rendement.
Hoewel Agile vaak wordt gezien als de superieure keuze van methodologieën, brengt het wel een handvol nadelen met zich mee waarvan u zich bewust moet zijn voordat u het gebruikt. Dit zijn onder meer de volgende zaken:
Indien klanten niet de tijd of de interesse hebben om nauw samen te werken met het ontwikkelingsteam, zal het project niet over de feedback of inzichten beschikken die het nodig heeft om vooruitgang te boeken.
Als teamleden zich niet volledig inzetten om het project effectief en efficiënt te voltooien, valt het zelfbeheeraspect van Agile uiteen.
Sommige taken, of zelfs bepaalde subtaken, kunnen te tijdrovend zijn om tijdens één sprint te worden voltooid. Om deze problemen aan te pakken, moeten teams ofwel van prioriteiten veranderen of dure extra sprints introduceren.
Het iteratieve en incrementele karakter van Agile is niet zo compatibel met projectbeheer of -toezicht. Teams die niet in staat zijn zichzelf te besturen, zullen minder waarschijnlijk effectief kunnen worden bestuurd.
Het feit dat Agile werksoftware voorrang geeft boven documentatie betekent soms dat essentiële notaties achterblijven. Dit kan een probleem zijn, omdat uitgebreide documentatie helpt implementaties deelbaar te maken, het denken achter specifieke beslissingen kan identificeren en teams in staat stelt gemakkelijker terug te keren naar eerdere fasen.
Vaak zijn bedrijfsprocessen, toolsets, beleid, organisatiestructuren, en controles niet bevorderlijk voor Agile. Als zodanig vereist een effectieve Agile-implementatie brede culturele verandering in de hele organisatie. Dit kan leiden tot verzet van individuen of afdelingen die gewend zijn aan meer traditionele praktijken.
Waterfall, de meer traditionele benadering van ontwikkeling, is een lineaire, sequentiële methodologie die de levenscyclus van softwareontwikkeling verdeelt in afzonderlijke fasen waarin de volgende fase alleen kan doorgaan als de vorige fase is voltooid.
Waterfall, de vroegste ontwikkelingsmethodologie, is eenvoudig te gebruiken en te begrijpen, en is sterk afhankelijk van het vooraf laden van werk, onderzoek, documentatie en planning. Het is een ‘tweemaal meten, eenmaal uitvoeren’-benadering; alle projectvereisten worden aan het begin van het project duidelijk gedefinieerd, en er wordt een gedetailleerd plan opgesteld om aan deze behoeften te voldoen.
De traditionele ontwikkelingsmethodologie verdeelt projecten in zeven verschillende fasen. Elk van deze fasen is onafhankelijk van de andere; een nieuwe fase kan over het algemeen niet beginnen voordat de voorgaande fase is voltooid. Bovendien worden de meeste fasen gescheiden door een ‘stage-gate’, die een reeks vereisten vertegenwoordigt die moeten worden voltooid en managementbeslissingen die moeten worden genomen voordat het project naar de volgende fase kan overgaan. De fasen zijn als volgt:
De Waterfall-methodologie, die voor het eerst in 1970 werd beschreven, is ongeveer een halve eeuw lang consistent gebruikt door ontwikkelingsteams. Dit komt omdat het bepaalde voordelen biedt, waaronder de volgende:
De Waterfall-methodologie is wellicht het gemakkelijkst te beheren, omdat elke fase is gekoppeld aan specifieke deliverables en een duidelijk beoordelingsproces.
In projecten waar meerdere componenten ontworpen moeten worden om integratie met externe systemen mogelijk te maken, is de benadering van Waterfall (waarbij het ontwerp al vroeg in het proces wordt voltooid) een duidelijk voordeel.
De productvereisten worden gedocumenteerd en overeengekomen vóór de start van de ontwikkeling, waardoor een voorspelbare en concrete set functies wordt gecreëerd.
Een betere planning en vooraf geladen documentatie zorgen voor een duidelijk overzicht van de potentiële kosten. Dit maakt een nauwkeurige budgettering mogelijk.
Omdat de volledige omvang van het werk van tevoren bekend is, wordt het meten van de voortgang eenvoudig en nauwkeurig. De voortgang wordt doorgaans gemeten in het ‘statusrapport’, waarin werkitems worden gedefinieerd als groen, geel of rood als het gaat om planning, budget en resources.
Doelen worden geïdentificeerd en vastgesteld voordat het ontwikkelingswerk begint, in plaats van dat ze flexibel blijven om rekening te houden met veranderende behoeften.
Teamleden hebben de bandbreedte om aan andere projecten te werken, en hoeven alleen hun tijd te besteden tijdens hun aangewezen fasen.
Waterfall-methodologieën zorgen voor een eenvoudigere, meer vrije beleving voor klanten; betrokkenheid van eindgebruikers is niet vereist, behalve tijdens de vereisten- en beoordelingsfasen.
Met een duidelijkere focus op planning en documentatie volgen projecten een vaste weg, zijn ze makkelijker te beoordelen en zijn de resultaten duidelijker herkenbaar.
De stijging van Agile getuigt van bepaalde nadelen in de traditionele Waterfall-methodologie. Deze nadelen zijn onder meer:
Omdat Waterfall afhankelijk is van gedetailleerde planning in een vroeg stadium, kunnen projecten die onverwachte problemen, versperringen of veranderende behoeften tegenkomen zich mogelijk niet aanpassen. Watervallen stromen slechts in één richting; het kan onmogelijk of zeer moeilijk zijn om terug te keren naar eerdere stadia om veranderingen aan te brengen.
Stugge gedefinieerde eisen laten weinig ruimte voor inspiratie, innovatie of creativiteit, en kunnen ontwikkelaars ervan weerhouden om te profiteren van onverwachte kansen tijdens de ontwikkeling.
Omdat klanten minder betrokken zijn bij ontwikkelingsprocessen, kan het zijn dat ze zich buitengesloten voelen. Wat misschien nog problematischer is, is dat klanten zich mogelijk niet bewust zijn van wat er zal worden geleverd totdat het project is voltooid. Daarnaast weten ontwikkelaars zelf wellicht niet wat de verwachte uitkomst is voor de klant, waardoor de kloof nog groter wordt. Omdat testen pas aan het einde van het project plaatsvinden, zullen bugs en UX-problemen bovendien eerder onopgemerkt blijven.
Onduidelijke deadlines voor specifieke fasen kunnen ertoe leiden dat projecten niet op tijd af zijn volgens de planning. Om dit te compenseren, zullen de teams zich soms door de laatste stadia en zelfs de testen haasten. Dit kan leiden tot inferieure producten.
Vereisten moeten duidelijk worden geïdentificeerd en goedgekeurd voordat de werkzaamheden kunnen worden gestart. Als dat niet het geval is, kunnen individuele teamleden de vereisten anders interpreteren, wat leidt tot misverstanden.
Met zoveel moeite die wordt besteed aan planning en documentatie zijn er minder middelen beschikbaar voor het daadwerkelijk bouwen van producten.
Agile en Waterfall bieden elk hun eigen voor- en nadelen. Met dit in het achterhoofd kunnen organisaties worden geholpen door de specifieke gebruiksscenario's voor beide opties te begrijpen bij het kiezen van de methodologieën die het beste voor ieder project zullen werken.
Houd bij het nemen van deze beslissingen rekening met het volgende:
Strengere projectvereisten zijn beter geschikt voor Waterfall, terwijl projecten met minder eisen en regels gebruik kunnen maken van creativiteit en vrijheid van Agile.
Strengere projectvereisten zijn beter geschikt voor Waterfall, terwijl projecten met minder eisen en regels gebruik kunnen maken van creativiteit en vrijheid van Agile.
Strikte processen maken het inzetten van Agile zeer moeilijk en profiteren meer van een traditionele Waterfall-benadering. Agile is effectiever als processen flexibeler zijn.
Waterfall is effectief wanneer klanten, eindgebruikers en producteigenaren niet geïnteresseerd zijn in nauwe samenwerking met het ontwikkelingsteam. Gebruikers die meer betrokkenheid willen, profiteren meer van Agile.
Het verbeteren van bestaande verouderde projecten, waar de kenmerken al goed gedefinieerd zijn en integraties zijn opgezet, werkt beter met de Waterfall-benadering. Als het project een nieuwe weg baant en iets probeert te doen dat nog niet is gedaan, dan stelt Agile's iteratieve benadering teams in staat om te leren en zich aan te passen gedurende het proces.
De Waterfall-methodologie legt een voorspelbaar resultaat vast en werkt goed met duidelijk gedefinieerde deadlines en langetermijnprojecten. Kortere deadlines die flexibeler zijn, werken beter binnen Agile.
De voorspelbaarheid van Waterfall is ook zeer geschikt voor inflexibele budgetten, waar elke actie en uitgave vroeg in het proces moet worden gedocumenteerd. Agile vraagt minder stijfheid in het budgetteren, richt zich op functies en ontwikkelingssnelheid, en is niet zo strict als het gaat om kosten.
Kleinere, goed gedefinieerde projecten zijn vaak beter geschikt voor Waterfall. Grotere, complexere projecten profiteren van de Agile-benadering.
Bij het coördineren met externe werknemers of het samenwerken met andere organisaties is Waterfall een betere keuze wegens de verminderde behoefte aan persoonlijke samenwerking. Als één enkele organisatie en co-locationele teamleden alleen verantwoordelijk zijn voor het project, is Agile effectiever.
Omdat Agile en Waterfall beide aanzienlijke voordelen bieden, zijn bedrijven over de hele wereld op zoek naar manieren om deze voordelen te combineren en tegelijkertijd de nadelen te beperken. Het resultaat is hybride projectmanagement.
Hybride projectmanagement brengt Agile en Waterfall samen om een oplossing te creëren die tijd, middelen en gebruikerstevredenheid optimaliseert.