SDLC-methodologieën zijn de methoden en principes waarmee softwareontwikkelaars door het SDLC-framework met industriestandaarden navigeren en deze beheren.
SDLC staat voor software development life cycle, de manier waarop engineers en ontwikkelaars de fasen van een softwareproject bijhouden en beheren. Sommige ontwikkelaars zien SDLC graag als de softwareontwikkelingsversie van de wetenschappelijke methode. SDLC helpt ervoor te zorgen dat engineers de juiste stappen nemen en de juiste vragen stellen om een product of update uit te brengen. SDLC wordt soms ook wel een voorbeeld van een waardestroom genoemd, d.w.z. het volledige end-to-end proces om een waardevol softwareproduct af te leveren.
Er zijn circa zeven basisfasen in het SDLC-framework die er ongeveer als volgt uitzien:
- Analyse (klantbehoeften en softwarevereisten)
- Een plan opstellen
- Een ontwerp voorbereiden
- Codering/softwareontwikkeling starten
- Tests uitvoeren
- Inzetten
- Onderhouden
Deze stroom wordt tijdens softwareontwikkelingsprojecten gevolgd om de kwaliteit van de software te handhaven en tegelijkertijd de kosten laag te gehouden en de productietijd te verkorten. Hoewel deze stappen relatief standaard zijn voor verschillende bedrijven en branches, kunnen de gebruikte technieken en strategieën voor het uitvoeren van deze stappen verschillen. En dat is het moment waarop de SDLC-methodologieën ter sprake komen. In dit artikel worden de verschillende methodologieën en technieken besproken die worden gebruikt om SDLC succesvol te implementeren in moderne omgevingen voor softwareontwikkeling.
Over het algemeen is de watervalmethodologie de oudste en meest directe benadering van SDLC, waarbij één fase wordt voltooid alvorens verder te gaan met de volgende. Elke fase heeft een eigen ontwerp en substappen die een 'waterval’ vormen of van nature naar de volgende fase overstromen. Het ontwikkelingsteam neemt de tijd om elke fase volledig te voltooien voordat het verder gaat met de volgende.
Het belangrijkste concept van deze methodologie is dat zodra een fase is voltooid, er niet meer kan worden teruggegaan. Elke fase is afhankelijk van het succes en de informatie van de vorige fase. Elke fase heeft een afzonderlijk plan, maar dat plan is gebaseerd op de fase ervoor. Voor sommige mensen is de watervalmethodologie te hypothetisch of ideaal - ze denken dat deze methode nooit bedoeld is voor werkelijk gebruik in echte projecten, die in de praktijk complex en dynamisch zijn.
Het watervalmodel werkt het beste voor projecten die net zo eenvoudig zijn als de gebruikte technieken, zoals voor software die geen constante feedback van klanten zal hebben of waarvan de vereisten niet zullen veranderen. Sommige experts beweren zelfs dat de watervalmethode vanwege zijn inflexibiliteit verouderd is. De watervaltechniek heeft echter als basis gediend voor nieuwere en meer aanpasbare SDLC-methodologieën.
De lean SDLC-methodologie gebruikt dezelfde methoden en principes als de lean productiemethoden, die gericht zijn op het wegnemen van verspilling en het focussen op het geheel in plaats van op de onderdelen. Meer specifiek omvatten de productieprincipes die de lean methodiek toepast in softwareontwikkeling:
- Verspilling wegnemen
Wat is essentieel? Val het team niet lastig met multitasking en met onnodige documentatie, vergaderingen of een buitensporige planning. - Het leerproces versterken
Wees aanwezig in elke fase van het proces en moedig voortdurende verbetering aan. - Zo laat mogelijk beslissingen nemen
Optimaliseer je tijd en besteed veel denktijd en inspanningen aan een taak om ervoor te zorgen dat de klant de beste waarde krijgt. - Zo snel mogelijk resultaten leveren
Het is essentieel om tijd en energie te besparen om producten of updates sneller uit te brengen. - Het team stimuleren en integriteit opbouwen
Verspilling wegnemen betekent ook dat er geen microbeheer meer nodig is en dat teams worden vertrouwd om te communiceren en zich aan het werk te wijden. - Focus op het grote geheel
Details zijn belangrijk, maar niet ten koste van de voortgang of het bereiken van doelen.
De lean methodologie stelt de vraag: kunnen we meer doen met minder? Het doel ervan is om de snelheid van productontwikkeling te verhogen en de kosten te verlagen (uiteraard zonder het kaliber van het product te verliezen). Deze methodologie streeft ernaar de inspanningen en resources te optimaliseren om meer waarde te creëren voor de klant door middel van continue verbetering en respect.
Hoewel de watervalbenadering er als eerste was, is de agile methodologie de favoriet voor ontwikkelaars in de hele branche. Deze methodologie bouwt voort op de watervalmethoden en helpt teams flexibeler en dynamischer te zijn. Omdat de agile methodologie gemakkelijker kan worden aangepast, biedt deze ook mogelijkheden voor innovatie, productie van hoge kwaliteit en complexe ontwikkelingsprojecten.
Een van de kernprincipes van de agile benadering is het omarmen van snelle mislukkingen om een beter resultaat te bereiken. Hiertoe maakt deze methodologie gebruik van doorlopende releasecycli waarbij elke iteratie kleine, stapsgewijze wijzigingen heeft ten opzichte van de vorige. Dit wordt gedaan om het product grondig te testen en continu aan te passen, om kleine problemen in een project te identificeren en grote dure problemen te voorkomen. Belanghebbenden moeten gedurende deze cycli ook op de hoogte worden gehouden.
Een nadeel van het agile framework is de hoeveel tijd die het kost om je product of functie te ‘perfectioneren’ - wanneer is het werk ooit af? Een uitbreiding van de agile methodologie zijn de 'geschaalde agile' methoden, waarmee teams zich kunnen richten op het sneller creëren van hoogwaardige producten. Enkele van deze werkwijzen omvatten de volgende submethoden:
Extreme programmering (XP) wordt gebruikt om flexibele, maar hoogwaardige code te bouwen die goed getest en geschreven is. Dit wordt gedaan met methoden zoals pair programming, tests van eenheden en functionele tests, en continue communicatie. De primaire waarden van extreme programmering zijn:
- Communicatie
- Eenvoud
- Feedback
- Respect
- Moed
Dit framework richt zich op tijdbeheer en planning die compatibel zijn met de agile methodologie. ‘Kanban' betekent 'uithangbord' in het Japans en het basisprincipe is dat het productieproces wordt bijgehouden en ondersteund met visuele kaarten, waarop de nodige stappen en tijdsbestekken worden uiteengezet. Bij deze planningstechniek draait alles om de continue flow en cyclustijd, het verplaatsen van taken vanuit fasen zoals To-Do, In voortgang, Controleren en Voltooien.
Scrum is een ander agile-vriendelijk framework dat hulp biedt bij tijdbeheer, maar ook gericht is op rollen en teamsamenwerking, om frequente leveringen tijdens de productie te bevorderen. Het belangrijkste concept in scrum is de sprintcyclus, waarbij het allemaal om snelheid draait. De stappen/samenwerkingen voor op scrum gebaseerde ontwikkeling omvatten:
- Vergaderingen plannen waarin teams sprintprioriteiten vaststellen
- Verplichtingsbijeenkomsten waarin het team de vereisten en resources bekijkt die nodig zijn voor hun aanstaande sprint
- Dagelijkse standup-vergaderingen; dit zijn korte synchronisaties waarbij het team zich richt op dagelijkse werklasten, mogelijke obstakels enz.
- Demo-bijeenkomsten waarbij het team na de sprint de nieuwe geïmplementeerde functionaliteit bespreekt
- Retrospectieve vergaderingen, ook na de sprint, waarbij het team nadenkt over de geleerde lessen, wat er goed ging, wat er niet goed ging enz.
In het iteratieve model is de softwareontwikkeling gericht op herhaling. In plaats van een grondige en gedetailleerde beschrijving van alle vereisten te gebruiken, proberen deze ontwikkelingsteams een reeks softwarevereisten uit en gaan ze meteen door naar de testfase om de vereisten voor dat project volledig te evalueren en vast te stellen. Door de software zo stukje bij beetje op te bouwen, blijft het project verfijnd en verzorgd totdat het systeem volledig is ontwikkeld en klaar is voor de lancering.
Deze iteraties worden snel en goedkoop gemaakt, waardoor dit een duurzame methode is. Een van de belangrijkste aspecten waarmee je rekening moet houden bij iteratieve SDLC-methodologieën is het zorgvuldig bijhouden van resources zodat je geen tijd, geld en energie verspilt. Vanwege de snelheid waarmee deze tests worden uitgevoerd, is het niet ongebruikelijk dat teams meerdere fasen tegelijkertijd uitvoeren.
DevOps is een van de nieuwere SDLC-methodologieën, die wordt beïnvloed door zowel agile als lean methoden, terwijl het succes van softwareprojecten wordt gemaximaliseerd door betere samenwerking tussen de ontwikkelings- en operationele teams. Omdat deze twee teams zo nauw samenwerken (of soms zelfs worden gecombineerd tot één team), omvatten de DevOps-werkwijzen meer discipline, constante feedback, procesverbetering en automatisering.
Idealiter gaat deze methodologie verder dan de traditionele denkpatronen om te voldoen aan de eisen van hoge snelheid en productietempo's waarbij gebruik gemaakt wordt van innovatieve technologie en beheerprocessen voor infrastructuur. Het doel is tijd te besparen en de communicatie te stimuleren, zodat iedereen de obstakels en prioriteiten van het project begrijpt. Zodoende vormen noch de ontwikkeling noch de activiteiten een belemmering voor anderen.
Dan is er ook nog de spiraalmethode, die volledig draait om flexibiliteit en maatwerk. Net als het iteratieve model maken spiraaltechnieken gebruik van herhaling om de doelstellingen van het project te versterken. Om dit te doen, doorlopen teams herhaaldelijk vier fasen totdat het project als voltooid wordt beschouwd: planning, risicobeheer, engineering en evaluatie. Hierdoor kunnen ontwikkelaars problemen snel opsporen en het product verfijnen tot ze tevreden zijn met het resultaat. Volgens de spiraalaanpak is er geen universele benadering voor SDLC en moet elk project worden aangepast aan de behoeften.
Tot slot hebben we het V-vormige model, een uitbreiding van de watervalmethode met een moderne twist. Bij deze techniek draait alles om het testen. In elke fase van het ontwikkelingsproces worden tests uitgevoerd. Dit model wordt het ‘V-model’ genoemd omdat er twee concepten worden gebruikt: validatie en verificatie.
In de validatiefasen stellen teams de vereisten en het algehele ontwerp van het project op. Elk van deze validatiefasen correleert met een verificatiefase, waarin tests en gebruikersacceptatiemethoden worden uitgevoerd. Net als bij het watervalmodel begint elke fase pas nadat de vorige fase is voltooid. Dit is vooral handig als je veel onbekende vereisten hebt, hoewel de lineaire structuur ook beperkend kan zijn.
Deze SDLC-methodologieën vormen de kern van het succes van een ontwikkelingsteam. Dergelijke herhaalbare processen helpen de uitgaven terug te brengen, snellere producten te produceren en high-end software uit te brengen. Methoden zoals de agile of lean benaderingen worden steeds populairder in SDLC-ruimtes, maar hun aanpassingsvermogen kan overweldigend zijn voor de ontwikkelingsteams.
Om de communicatie te verbeteren, workflows te stroomlijnen, tests bij te houden en de voortgang te bewaken, biedt ServiceNow innovatieve platforms voor het beheer van je SDLC-methodologieën, hoe flexibel je softwareontwikkelingsproces ook is. De integratie in de planningsfasen is eenvoudig met bestaande agile tools zoals Jira en Azure DevOps Boards met behulp van Strategic Portfolio Management. We bieden ook uitgebreide integratie met DevOps-pipelines met behulp van de DevOps-mogelijkheden van het ITSM Pro platform van ServiceNow.
Je kunt je gegevens blijven optimaliseren met dit integratieniveau en tegelijkertijd hoogwaardige toepassingen en services met ServiceNow verkrijgen, zodat je prioriteit kunt geven aan value stream management (VSM) voor een betere creatie, onderhoud en governance van je softwareontwikkelingsprojecten. Lees meer over wat ServiceNow kan doen om je SDLC-methodologie te stroomlijnen.