Uitstellen software investeringen brengt continuiteit business in gevaar
onderhoudbaarheid en kosten
De kosten voor het jaarlijks softwareonderhoud worden bepaald door drie factoren. Ten eerste door de mate waarin de software aan wijzigingen onderhevig is. Ten tweede door het gemak waarmee deze wijzigingen te realiseren zijn oftewel de onderhoudbaarheid. Ten derde door de kosten voor de inzet van de benodigde uren en de technische expertise. Uit ervaringscijfers is op te maken dat bij gemiddeld onderhoud ongeveer vijftien procent van de code wordt gewijzigd. Dit omvat zowel het oplossen van fouten (correctief onderhoud) als aanpassingen door gewijzigde functionele of technische wensen (adaptief onderhoud).
Op basis van productiviteitscijfers kan worden vastgesteld hoeveel inspanning het vergt om jaarlijks vijftien procent van de code te wijzigen. Daarbij moet nog wel een correctiefactor worden meegenomen voor de onderhoudbaarheid. Benchmarkcijfers laten zien dat bijvoorbeeld het onderhoud van software met een lage onderhoudbaarheid (twee sterren) gemiddeld tweemaal zo veel inspanning vereist dan bij software met een hoge onderhoudbaarheid (vier sterren).
Een deel van de wijzigingen zal daarbij leiden tot een toename in code. Als gevolg daarvan zal de onderhoudslast in de loop der jaren stijgen. Voor software met een slechte onderhoudbaarheid is deze toename in code gemiddeld groter en stijgt dus ook de onderhoudslast sterker. Dit is weergegeven in Figuur 1.
__________________________________________________________________________________
Onderhoudbaarheid van software
De onderhoudbaarheid van software is één van de karakteristieken voor software kwaliteit zoals gedefinieerd in de ISO standaard voor de evaluatie van software kwaliteit (ISO 9126). De onderhoudbaarheid van software geeft aan hoeveel inspanning vereist is om wijzigingen aan te brengen in de software. De onderhoudbaarheid wordt bepaald aan de hand van vier sub-karakteristieken, te weten analyseerbaarheid, aanpasbaarheid, stabiliteit en testbaarheid. Om eenvoudig wijzigingen te kunnen aanbrengen in de software moet eenvoudig zijn vast te stellen welk deel van de code moet worden gewijzigd. Daarnaast moet de code eenvoudig aan te passen zijn en moet zij ook na de wijziging correct werken. Tenslotte moet de software eenvoudig te testen zijn, alvorens de nieuwe versie van de software in gebruik kan worden genomen.
__________________________________________________________________________________
Kwaliteit repareren kost geld
Uit Figuur 1 is te concluderen dat het loont om te investeren in de onderhoudbaarheid van de in gebruik zijnde software. De hiervoor benodigde investering hangt af van de huidige toestand van de software en het ambitieniveau met betrekking tot de gewenste kwaliteit.
Deze combinatie bepaalt hoeveel code moet worden aangepast en daarmee de benodigde inspanning en de hoogte van de investering. Daartegenover staat dat na de reparatie de jaarlijkse onderhoudskosten lager zullen zijn, waarmee de investering zich terugverdient. Het kan zijn dat de onderhoudbaarheid van de huidige software dusdanig laag is en reparatie daardoor dusdanig duur, dat dit niet rendabel is.
In dat geval kan het aantrekkelijker zijn een geheel nieuw systeem te ontwikkelen ter vervanging. Indien dit nieuwe systeem exact dezelfde functionaliteit moet hebben als het oude systeem, is op basis van het oude systeem een inschatting te maken van de kosten voor de nieuwbouw. Met al deze gegevens is het mogelijk de effecten door te rekenen van verschillende scenario’s. Zo kan men bijvoorbeeld er voor kiezen de huidige situatie nog even te handhaven, de software te renoveren naar drie of vier sterren, of de functionaliteit opnieuw te bouwen op basis
van vier sterren. Figuur 2 laat een vergelijking zien van de verschillende scenario’s op basis van de cumulatieve kosten in de tijd, ter ondersteuning van de besluitvorming.
__________________________________________________________________________________
SIG/TÜViT kwaliteitsmodel
Op basis van de ISO standaard is door de Software Improvement Group (SIG) samen met TÜV Informationstechnik (TÜViT) een kwaliteitsmodel ontwikkeld om de onderhoudbaarheid van software te meten. Het kwaliteitsmodel meet een zestal eigenschappen van de software, te weten volume, duplicatie, unit omvang, unit complexiteit, unit interfacing en module koppeling. Deze eigenschappen zijn allen bepalend voor het gemak waarmee wijzigingen kunnen worden aangebracht in de software. Zo is bijvoorbeeld in een klein systeem eenvoudiger vast te stellen waar de code moet worden aangepast en als code op verschillende plaatsen is gedupliceerd, zal de wijziging ook op verschillende plaatsen moeten aangebracht. Op basis van de gemeten scores wordt vervolgens een profiel samengesteld, dat kan worden vergeleken met de scores van andere systemen. De rating van de software wordt ten slotte bepaald door de relatieve positie ten opzichte van andere systemen uit de benchmark. De vijf procent best scorende systemen worden gewaardeerd met vijf sterren en de vijf procent slechtst scorende met één ster. De tussenliggende waarderingen vertegenwoordigen elk een tranche van dertig procent.
__________________________________________________________________________________
Wat is het juiste moment om te investeren in softwarekwaliteit?
Een scenario-analyse zoals weergegeven in Figuur 2 helpt bij het maken van een keuze uit de verschillende scenario’s. Uit deze figuur valt af te lezen dat het herbouwen van het systeem het beste alternatief is en naar verwachting binnen drie jaar is terugverdiend. Daarvoor is echter wel een investering nodig met een ontwikkelinspanning van meer dan 35 manjaar. Uitgedrukt in een financiële waarde representeert dit, inclusief de kosten voor projectmanagement, ontwerp en testen, een projectinvestering van ongeveer zeven miljoen euro.
Dit kan voor het bedrijf een dusdanig grote investering zijn, dat de directie deze graag nog even uit wil stellen tot economisch betere tijden. Uitstellen heeft echter tot gevolg dat de jaarlijkse onderhoudsinspanning zal stijgen. Dit leidt niet alleen tot hogere kosten, maar ook tot hogere risico’s voor de bedrijfsvoering. Een hogere onderhoudsinspanning betekent namelijk ook een langere oplostijd voor incidenten en een langere doorlooptijd (time-to-market) voor functionele wijzigingen.
Daarnaast nemen de reparatiekosten in de loop van de tijd toe door een toenemend volume door wijzigingen. In Figuur 3 is weergegeven hoe voor software met twee sterren de kosten in de loop van de tijd toenemen voor reparatie naar drie of vier sterren. En ten slotte brengt uitstel ook het risico met zich mee dat de onderhoudbaarheid als gevolg van wijzigingen verder verslechterd waardoor de reparatiekosten in de tijd nog verder toenemen. Bij het bepalen van het beste moment om te investeren in de kwaliteit van de software van dit systeem, zullen al deze aspecten in ogenschouw moeten worden genomen.
Conclusie
Op langere termijn is een scenario van niets doen vrijwel nooit een aantrekkelijk scenario. Het in dit artikel gegeven voorbeeld is gebaseerd op cijfers voor een softwaresysteem van ongeveer 80 manjaar groot met een onderhoudbaarheid van twee sterren. In dit voorbeeld kwam herbouw van het systeem het gunstigst uit de vergelijking.
Bij systemen met een kleinere omvang en/of een betere onderhoudbaarheid kunnen andere scenario’s echter aantrekkelijker zijn. Daarnaast moeten ook altijd niet-financiële overwegingen worden meegenomen in de besluitvorming, zoals de risico’s voor de bedrijfsvoering die met de verschillende scenario’s samenhangen. Met de hier gepresenteerde hulpmiddelen zijn bedrijven echter in staat om op een meer analytische en onderbouwde wijze de juiste afwegingen te maken ten aanzien van investeringen in softwarekwaliteit.
Om grote investeringen in softwarekwaliteit te voorkomen, doet men er goed aan om de onderhoudbaarheid regelmatig in de gaten te houden. Met kleine investeringen moet de kwaliteit jaarlijks op peil worden gehouden. Hierdoor blijft de software snel en eenvoudig aanpasbaar en houdt men de kosten voor softwareonderhoud laag. Financieel managers en controllers doen er goed aan om de onderhoudskosten van applicaties in kaart te brengen en te volgen.
Om deze kosten niet te veel te laten oplopen, moeten zij zich (mede) verantwoordelijk voelen voor de kwaliteit van de software. Bijvoorbeeld door er voor te zorgen dat er jaarlijks voldoende ruimte is voor investeringen in softwarekwaliteit, en daarmee grote uitgaven in de toekomst te voorkomen.
Daarnaast zullen financials zich meer bezig moeten houden met het bewaken dat investeringen in software goed worden besteed en dat zij van het gewenste kwaliteitsniveau zijn. En mocht men om welke reden dan ook worden geconfronteerd met software met veel achterstallig onderhoud, dan zal men zorgvuldig moeten afwegen of moet worden geïnvesteerd in een renovatie of in een vervanging.
Rick Klompé is senior consultant bij de Software Improvement Group (SIG). Vanuit zijn specialisatie software economics voert hij in opdracht van klanten onderzoeken uit op het gebied van software kwaliteit, software risico’s en applicatie portfolio management.
__________________________________________________________________________________
Bent u op zoek naar perfecte financiële software?
Op woensdag 6 juni 2012 vindt het jaarlijks vakevenement Financial Systems plaats:
• Ontmoet meer dan 30 topaanbieders en 1000 professionele bezoekers op 1 dag
• Compleet overzicht van de Nederlandse markt voor financiële software
• Doorlopend programma van expertsessies en productpresentaties
Bezoek ook Financial systems, dé vakbeurs voor financiële software. Entree is gratis voor de doelgroep. Ga direct naar financial-systems.nl
__________________________________________________________________________________