software
IT

Softwaredevelopment: Van agile tot de waterval, zo ontwikkel je software

23.11.2022
door Tom Cassauwers

Software is complex, maar tegelijk doet het onze hedendaagse digitale wereld werken. Het verwacht dus goede aanpakken om software te ontwikkelen, die gaan van agile en lean tot werken als een waterval. Maar wat betekenen deze woorden echt? We verduidelijken zes softwareontwikkelingsmethoden.

Agile

Agile is niet enkel een vaak terugkerend modewoord populair bij bedrijven, het is ook de filosofie achter heel wat hedendaagse softwareontwikkeling. De hoeksteen van agile is om iteratief te werk te gaan. Niet langer gaan softwareontwikkelaars dus helemaal steunen op strakke, lineaire plannen, maar gaan ze hun werk constant bijsturen en testen. Softwareontwikkeling moet dus agile, oftewel wendbaar, zijn. Een project kan zo snel van pad veranderen wanneer er problemen opduiken of omstandigheden veranderen. Het doel is om erg vroeg werkende versies van de software voor de gebruiker te plaatsen, met een oog op wat zij willen. Agile-aanpakken verwachten dus een erg specifieke teamcultuur, maar wanneer ze goed geïmplementeerd worden helpen ze je om gebruikers centraal te plaatsen.

Scrum

Scrum is een van de populairste toepassingen van de agile-filosofie. Centraal aan scrum is het gebruik van sprints, korte perioden van bijvoorbeeld twee of vier weken, waar snel aan een stuk software wordt gewerkt. Tijdens zo’n sprint doet het team elke ochtend een korte scrum-meeting, een term afkomstig uit rugby, waar no-nonsense de obstakels voor vooruitgang van het project worden aangekaart. Binnen deze aanpak duikt ook de scrum master op, een soort coach die het project in goede banen leidt. Aan het einde van de sprint moet er iets van software klaar zijn om naar de klant te gaan. Zo wordt een groter project onderverdeeld in kortere sprints, waarna delen van een groter softwaresysteem bij de gebruikers getest worden. Dit laat een iteratief, agile-model van softwareontwikkeling toe.

Lean

Lean is nog zo’n modewoord dat vaak valt in de technologiewereld. Het is echter ook een andere, erg belangrijke softwareontwikkelingsmethodologie. Origineel komt het concept lean voort uit de Japanse auto-industrie, waar het werd gebruikt om efficiënt en met weinig fouten wagens te produceren. Daarna kwam het ook terecht in de software-industrie. Lean steunt zo op zeven basisprincipes: eliminate waste, amplify learning, decide as late as possible, deliver as fast as possible, empower the team, build integrity in en optimize the whole. De invloed van agile is hier opnieuw zichtbaar: de focus ligt op snel en iteratief software afleveren en wendbaar blijven als team, met daarbovenop een nadruk op zo efficiënt, of lean, mogelijk werken.

software

DevOps

DevOps is een methodologie die de voorbije jaren erg populair werd in de softwarewereld. Het is een samenvoeging van development, oftewel softwareontwikkeling, en operations, oftewel bedrijfsoperaties. Het kernidee achter DevOps is dat IT-teams niet in silo’s mogen vervallen. De verschillende onderdelen van een IT-team, zoals softwareontwikkeling, kwaliteitscontrole en beveiliging, moeten nauw samenwerken. De verschillende teams proberen zo zichtbaar mogelijk voor elkaar te zijn, en hun prioriteiten en aandachtspunten constant met elkaar te delen. Deze geïntegreerde teams werken vervolgens samen op basis van een snelle en wendbare ontwikkelingscyclus van plannen, ontwikkelen, aanbieden en uitvoeren. DevOps is zo complementair met agile-werkwijzen, en ook hier ligt de nadruk op snelle releasecycli die het toelaten om vroeg klantfeedback te krijgen.

Waterfall

Niet alle methodologieën in software zijn echter verbonden aan agile. Een van de bekendere werkwijzen waartegen de agile-beweging zich afzette, is het zogenoemde watervalmodel. Afkomstig uit ingenieurswetenschappen en de bouwindustrie legt het watervalmodel de nadruk op zaken lineair en sequentieel doen. Een team gaat dus een voor een door de verschillende fasen van een project, van het vastleggen van de voorwaarden en het ontwikkelen van de software tot het testen en uiteindelijk afleveren ervan. Hierop steunt de metafoor van de waterval, het water stroomt zo steeds verder naar beneden. Dat staat in schril contrast met agile-aanpakken, die iteratief het project bijsturen. Deze methode is makkelijker te organiseren intern, omdat er een duidelijke, logische planning is. Bijsturen is echter moeilijker en het klantencontact vindt pas plaats aan het einde van het project.

V-model

Een verder ontwikkelde versie van het watervalmodel is het zogenaamde V-model. Volgens dit model bestaat een project uit drie grote fasen: de projectdefinitie, de implementatie en de test en validatie. Deze drie fasen vormen een V, de projectdefinitie vormt de linkerkant, de implementatie is het kruispunt tussen de twee, en de rechterkant van de letter wordt gevormd door de test- en validatie-fase. Deze meer lineaire aanpak geeft zo een erg gestructureerde manier om software te ontwikkelen, waar elke fase van de projectdefinitie een corresponderende fase heeft tijdens het testen en valideren van de software. Opnieuw betekent deze aanpak dat er minder ruimte is voor wendbaarheid, zeker vergeleken met een agile-aanpak. Maar de drieledige structuur geeft meer duidelijkheid tijdens het projectmanagement.

Vorig artikel
Volgend artikel