De software development life cycle, afgekort als SDLC, is een conceptueel model dat alle fases en taken beschrijft van elke stap in een project om software te schrijven en te gebruiken. Oorspronkelijk komt deze term uit de Agile (letterlijk vertaald staat dit voor behendig en lenig) werkwijze, waarbij met ervan uitgaat dat de omstandigheden (lees: wensen en eisen) tijdens een project voortdurend veranderen.
Om deze veranderingen te kunnen beheersen wordt een project door SDLC opgeknipt in korte, overzichtelijke periodes van twee tot acht weken. Dit worden ook wel sprints genoemd. Inmiddels hebben andere methodes, zoals Scrum en DevOps, deze werkwijze geadopteerd.
Een software development life cycle is een langetermijnvisie voor software waarin planning tot en met onderhoud en het uiteindelijke in gebruik nemen van de software wordt vastgelegd in overzichtelijke fases.
Standaard SDLC-fases
Het aantal fases in een SDLC kan variëren, afhankelijk van de toepassing, beoogde doelen en gebruikte technieken. Normaal gesproken zijn er tussen de vijf en zeven fases waarbij design, development, testen en opleveren de meest basale fases zijn.
Evalueren van bestaande systemen
Welke bestaande systemen zijn er al, en op welke wijze moeten deze geïntegreerd worden in het nieuwe softwaresysteem. Deze evaluatie brengt direct de sterke en zwakke punten aan het licht van de bestaande omgeving. Zo heb je een krachtige startpositie bij het ontwerpen van de nieuwe systeemvereisten.
Vastleggen van de systeemvereisten
Welke afhankelijkheden zijn belangrijk en welke functionaliteiten mogen niet ontbreken in de nieuw te ontwikkelen software. Gaat de nieuwe software een bestaand pakket vervangen, dan worden ook zaken als conversie belangrijk. Natuurlijk is het ook van belang om vast te leggen welke eisen er worden gesteld aan de hardware, immers een Windows-applicatie vergt andere specificaties van een server dan een PHP-applicatie.
Design van de applicatie
In de designfase worden de specificaties omgezet in een designplan waarbij de architectuur, hardware, technieken en communicatie worden beschreven.
Ontwikkeling van de nieuwe software
Gedurende het proces van softwareontwikkeling wordt code geschreven, getest en opgeleverd. Vooral het testen kan een flinke stap zijn in het ontwikkeltraject, waarbij in complexe applicaties het testen en fixen vaak net zoveel tijd kost als de oorspronkelijke ontwikkeling.
In gebruik nemen van de software
Eindelijk is het dan zover, de software kan in gebruik worden genomen. Soms wordt dit in fases gedaan omdat de impact van een nieuw systeem op een organisatie best groot kan zijn.
Monitoren van de software
Hoe stabiel is de software en blijft de performance, ook na de in gebruik name, nog goed. Hiervoor worden vaak logfiles gebruikt of externe tools.
Onderhoud van de software
Het ondergeschoven kindje in de ict-branche is het onderhoud en de doorontwikkeling van software. In een offertetraject zie je regelmatig dat hier nauwelijks tot zelfs geen aandacht aan wordt geschonken. In vrijwel alle gevallen zijn de kosten voor onderhoud en reparatie -gerekend over de gemiddelde levensduur van de software- gelijk dan wel hoger aan de initiële investering.