Methodes voor software ontwikkeling zijn een heuse trend. IT-bedrijven laten hun klanten maar al te graag weten dat ze scrum en agile werken, dat ze vooral niets moeten hebben van de watervalmethode en dat ze iteratieve methodes toepassen om de klant optimaal bij het ontwikkelproces te betrekken.
U kent deze termen ongetwijfeld, maar weet u ook wat ze inhouden? De kans is groot dat u geen idee heeft. En datzelfde geldt voor veel IT’ers. In dit artikel ontdekt u de definitie achter termen zoals Agile en Waterval en komt u te weten voor welk type projecten deze methodes zijn bedoeld.
Watervalmethode vs. Agile-softwareontwikkeling
Hoewel er uiteenlopende manieren zijn om software te ontwikkelen, zijn er twee methoden die met kop en schouders boven de rest uitsteken. Het gaat om de watervalmethode en om Agile-softwareontwikkeling. Hieronder vindt u een uitgebreide uitleg over wat deze methoden inhouden en wat hiervan de voordelen en risico’s zijn.
1. Watervalmethode
De watervalmethode is misschien wel de bekendste manier van softwareontwikkeling. Bij waterval wordt het ontwikkelproces opgedeeld in fasen. Deze fasen zijn grofweg als volgt:
- analyse
- basisontwerp
- technisch ontwerp
- bouw
- testen
- integratie
- beheer en onderhoud
Fase 1. Analyse
De analyse wordt ook wel de definitiestudie genoemd. In deze fase doet de analist, consultant of manager onderzoek naar de software die nodig is om de klant te ondersteunen. Er wordt gekeken naar het doel hiervan, maar ook naar de beperkingen en randvoorwaarden. Dit levert een goed beeld op van de kosten en baten. Tijdens de analysefase wordt veel gebrainstormd.
Fase 2. Basisontwerp
Het basisontwerp staat ook wel bekend als het functioneel ontwerp. Tijdens deze fase worden de bevindingen uit fase 1 duidelijk uitgewerkt. De wensen van de klant worden in kaart gebracht en er wordt nagedacht over hoe het programma eruit moet zien. Ook wordt nauwlettend uitgewerkt welke functionaliteiten de software moet bevatten.
Fase 3. Technisch ontwerp
Het technisch ontwerp wordt ook wel het detailontwerp genoemd. Tijdens deze fase wordt vanuit het basisontwerp een daadwerkelijk softwareprogramma uitgedacht. Er wordt dus niet enkel gekeken naar wat de functionaliteiten van het programma zijn, maar ook naar hoe deze worden gerealiseerd. Er wordt tijdens deze fase tevens een onderverdeling gemaakt van technische eenheden (modules, functies etc.).
Fase 4. Bouw
De vierde fase wordt de bouwfase of implementatiefase genoemd. Tijdens deze fase schrijft de developer de broncode van de software en wordt de theorie omgezet naar de praktijk. Dit levert een werkend programma op dat voldoet aan de eisen en verwachtingen.
Fase 5. Testen
Software is zelden in één keer perfect. Daarin is de testfase een essentieel onderdeel van de watervalmethode. Tijdens het testen wordt gecontroleerd of de software volgens het juiste ontwerp is gebouwd en of deze geen zogenaamde bugs bevat. Aan de hand hiervan wordt de haalbaarheid bepaald.
Fase 6. Integratie
In dit stadium van het project is de software ontwikkeld en uitgebreid getest. Kortom: de software is klaar voor actie en kan door de opdrachtgever in gebruik worden genomen. De developer helpt uiteraard om dit op de juiste manier te realiseren. Zo kan het nodig zijn dat er een training wordt gegeven om iedereen binnen het bedrijf wegwijs te maken in de werking van het nieuwe softwareprogramma.
Fase 7. Beheer en onderhoud
Na de oplevering van de software, dient deze gemonitord en beheerd te worden. Op die manier is de software altijd up-to-date en voldoet die aan de laatste voorwaarden op het gebied van veiligheid en functionaliteit. Dit is in principe een doorlopend proces.
Wat is het doel van de watervalmethode?
Het doel van waterval is om een project in stukjes op te delen en zo het overzicht te bewaren. Kenmerkend hieraan is dat er pas naar een nieuwe fase wordt overgegaan wanneer de vorige fase volledig is voltooid. Mocht er een fout worden ontdekt, dan wordt er teruggekeerd naar de fase waarin deze fout zich voordoet. Die fase wordt vervolgens volledig gecorrigeerd en ook de daaropvolgende stappen worden opnieuw uitgevoerd.
Wat zijn de voordelen van de watervalmethode?
Dit zijn de belangrijkste voordelen van de watervalmethode:
- De methode is opgebouwd in fasen en daardoor behapbaar en overzichtelijk
- De werkwijze is bij vrijwel iedereen bekend, waardoor er nauwelijks een leercurve is
- De methode staat bekend om zijn goede documentatie, waardoor de instroom van nieuwe medewerkers binnen het project geen struikelblok vormt
- De totale kosten en tijdlijn van het project kunnen relatief nauwkeurig worden ingeschat
- Dankzij duidelijk gedefinieerde mijlpalen is de voortgang eenvoudig te meten
Wat zijn de risico’s van de watervalmethode?
De watervalmethode heeft niet alleen voordelen. Het gebruik hiervan brengt ook risico’s met zich mee. Welke risico’s dat zijn, vindt u hieronder:
- De methode is niet flexibel en kan daardoor stagneren wanneer die te veel afhankelijk wordt van externe factoren. Denk daarbij aan veranderende eisen en wensen vanuit de opdrachtgever. Zo weten klanten vooraf vaak niet precies wat ze willen.
- Veranderende eisen na het functionele ontwerp niet zomaar worden gerealiseerd.
- De methode is vooral gericht op grote projecten (al is die ook te gebruiken voor kleine projecten met weinig documentatie)
- De oplevering neemt vanwege de chronologische aanpak vaak langer in beslag dan een iteratieve methode zoals Agile
- Klanten worden in mindere mate betrokken bij het design en de implementatiefases
- De planning is niet flexibel, omdat één gemiste deadline ervoor zorgt dat alle deadlines binnen het project opschuiven
2. Agile-softwareontwikkeling
Agile is het Engelse woord voor lenig. En die behendigheid is precies waar agile-softwareontwikkeling om bekendstaat. Binnen Agile vind je uiteenlopende frameworks en ontwikkelmethoden. Enkele voorbeelden hiervan zijn:
- Kanban
- Scrum
- Dynamic System Development Method (DSDM)
- Extreme programming (XP)
- Crystal Clear
- Agile Modeling
- Feature-Driven Development (FFD)
- Adaptive Software Development (ASD)
- Agile Unified Process (AUP)
- SAFe
- EVO
- LeSS
- Lean Software Development
Hoewel elk framework weer een iets andere werkwijze heeft, zijn al deze ontwikkelmethoden gebaseerd op de filosofie achter Agile. Die filosofie kenmerkt zich door de hieronder beschreven werkwijze.
1. Iteraties
Een belangrijk doel van Agile is om risico’s in het ontwikkelproces te minimaliseren. Dit wordt bereikt door in iteratierondes te werken. Elke iteratieve stap wordt beschouwd als een klein project dat op zichzelf staat en voorzien is van een planning, analyse, ontwerp, testfase en documentatie.
Een belangrijk doel van elke iteratie is dat die een praktisch en bruikbaar resultaat oplevert. Dit is nodig om de testfase te doorlopen en het product te optimaliseren. Hoe concreter dit resultaat, hoe beter dit is voor de kwaliteit van het project.
2. Communicatie
In Agile werken staat persoonlijke communicatie centraal. Er wordt veel en intensief gecommuniceerd. De voorkeur gaat daarbij uit naar directe communicatie en niet naar schriftelijke verslaglegging. Omdat de projectmedewerkers tijdens een agile-softwareontwikkeling intensief samenwerken, is uitgebreide documentatie ook in mindere mate nodig.
De Agile-methode is mede hierdoor niet geschikt voor een hiërarchische structuur. In een scrumteam zijn er bijvoorbeeld geen projectmanagers, maar enkel scrummasters die ondersteuning bieden in plaats van de lakens uitdelen. Dit leidt tot gelijkwaardige en open communicatie en bevordert de voortgang van het project.
3. Werkende software
Zoals we zonet al schreven, heeft elke iteratieronde als doel om werkende software (of een onderdeel hiervan) op te leveren. Deze software dient gereed te zijn om getest te worden. Hierdoor kan tijdens elke iteratie eenvoudig worden bepaald of er optimalisaties nodig zijn.
Wat zijn de voordelen van agile-softwareontwikkeling?
Agile werken wordt steeds populairder. Hieronder ontdekt u wat de belangrijkste voordelen zijn van deze methode voor software ontwikkeling.
- De methode is opgedeeld in kleine iteratierondes. Hierdoor is de kans op fouten klein, en kan er tijdig worden bijgestuurd. Deze dynamiek zorgt ervoor dat het project zeer flexibel is ingericht. Dit verkleint de kans op risico’s en dus ook op onvoorziene kosten.
- De methode is snel in te richten, waardoor de doorlooptijd vaak kort is. Het plannen van een agile-project is relatief eenvoudig en omdat er weinig wordt gedocumenteerd, is er geen sprake van administratieve rompslomp.
- De methode biedt goede mogelijkheden voor co-creatie met de klant. Omdat u met z’n allen in dezelfde ruimte zit of online samenkomt, kan de klant hier gemakkelijk aan deelnemen en actief meewerken aan de ontwikkeling van de software.
Wat zijn de risico’s van agile-softwareontwikkeling?
Hoewel Agile met recht een populaire methode is voor software ontwikkeling, brengt deze werkvorm ook risico’s met zich mee. Welke risico’s dit zijn, vindt u in de lijst hieronder.
- De methode kent geen hiërarchische structuur, waardoor het soms ontbreekt aan discipline en motivatie. Dit komt omdat de verantwoordelijkheden gedeeld zijn en vaak niet duidelijk per persoon zijn toegewezen. Dit is waarom Agile vaak het beste werkt in een team van ervaren medewerkers.
- De methode kent weinig documentatie, waardoor het kan ontbreken aan structuur en waardoor het lastiger is om nieuwe deelnemers aan het project wegwijs te maken.
- De methode is niet geschikt voor elk bedrijf, omdat klassiek projectmanagement ontbreekt en er afwijkende verwachtingen zijn op het gebied van samenwerking.
- De methode leent zich niet goed voor een fixed price en wordt meestal op basis van uurtarief gestart. Veel opdrachtgevers durven dit risico niet te nemen en kiezen daardoor liever voor een projectteam dat met de Watervalmethode werkt.
Wat is de beste methode voor software ontwikkeling?
Bij JUUN Software hebben we ervaring met de Watervalmethode én met Agile. Door de jaren heen hebben we beide methoden gebruikt. Onze conclusie is dat men niet zomaar kan zeggen dat Agile beter werkt dan de Watervalmethode, of andersom. Dit hangt namelijk af van diverse factoren. Hieronder leggen we u dat in meer detail uit.
De Watervalmethode is vooral geschikt voor…
- Bedrijven die werken volgens een eigen bedrijfscultuur
- Opdrachtgevers die belang hechten aan een fixed price
- Teams die graag gestructureerd en geordend werken
- Projectteams met een strakke of duidelijke hiërarchie
De Agile-methode is vooral geschikt voor…
- Kleine en dynamische projecten voor softwareontwikkeling
- Start-ups met een flexibele werkmethodiek en bedrijfscultuur
- Opdrachtgevers die graag actief deelnemen aan het project
- Zelfsturende teams met gemotiveerde en ervaren developers
- Projecten waarbij snel schakelen een belangrijke voorwaarde is
Drie redenen om methodisch te werken
Methodes voor softwareontwikkeling zijn enorm populair, maar zijn ze ook echt belangrijk? Bij JUUN Software vinden we van wel. Hieronder leggen we u uit waarom we er zo over denken.
1. Methodisch werken als tweede natuur
Methodisch werken komt voor veel IT-professionals van nature. Zeker na enkele jaren werkervaring. Dat komt omdat het schrijven van code vaak ook een methodisch proces is. Overzicht en orde is daarom voor developers van essentieel belang. Dat geldt tijdens complexe projecten waarin teams multidisciplinair samenwerken, maar zeker ook tijdens projecten voor software ontwikkeling.
2. De neuzen staan dezelfde kant op
Door als team volgens dezelfde methode te werken, staan de neuzen altijd dezelfde kant op. Medewerkers binnen het team weten daardoor wat er van hen verwacht wordt. Ook voor klanten is dit prettig. Die weten hierdoor immers hoe het project is opgezet.
3. Meer focus voor projectleiders tijdens de software ontwikkeling
Een ander voordeel van methodisch werken tijdens software ontwikkeling, is dat projectleiders hierdoor minder werkdruk ervaren. Wanneer een project is gebaseerd op een beproefde methode, scheelt dit de projectleider een hoop werk en planning. Dit voorkomt micromanagement en laat meer tijd over voor belangrijke zaken. Denk bijvoorbeeld aan het managen van teamleden en het in contact blijven met de klant.
Het risico van methodisch werken (en hoe dit te voorkomen)
Methodisch werken brengt ook een risico met zich mee. En dat is dat methodes een beperkend effect kunnen hebben. Soms is het bijvoorbeeld nodig om af te wijken van een bepaalde methode en zo een beter resultaat te ontwikkelen. Denk bijvoorbeeld aan een Agile-project waarbij meer top-down-management nodig blijkt dan vooraf gedacht.
Zolang een softwareteam soepel omgaat met de methodiek, levert dit echter geen nadelen op. Om dit te bereiken, is het belangrijk dat teams op voorhand afspreken dat de methode niet heilig is, maar hooguit een leidraad vormt om het ontwikkelen van de software in goede banen te leiden.
De ontwikkelmethode van JUUN Software
Bij JUUN Software werken we op basis van Agile-principes, maar doen we dat niet volgens een vaste structuur. Het is eerder zo dat we elementen uit Agile toepassen in onze werkwijze voor software ontwikkeling. Zo leveren wij softwareprojecten vaak in delen op en geven we de klant tussentijds inzicht in de voortgang. We werken echter niet in sprints en doorgaans ook niet in dezelfde ruimte als de klant.
Het belangrijkste voor JUUN Software is niet welke ontwikkelmethode we gebruiken, maar in hoeverre die methode past bij de klant. Voor ons is software ontwikkeling namelijk altijd gebaseerd op maatwerk software. We kijken daarom eerst goed naar wat de klant prettig vindt en naar wat die nodig heeft. Vervolgens bepalen we welke methode voor software ontwikkeling daarbij aansluit.
Samenwerken met JUUN Software? Vraag een gesprek aan
Bent u benieuwd wat JUUN Software voor u kan betekenen op het gebied van software ontwikkeling? Dan gaan we graag vrijblijvend met u in gesprek over de mogelijkheden. Kijk onderwijl gerust op onze dienstenpagina en bekijk aldaar ons serviceaanbod.