Er wordt in het nieuws geregeld melding gemaakt van mislukte IT-projecten. Zo heeft minister Cora van Nieuwenhuizen begin deze maand de overeenkomst met Deloitte voor de invoering van een nieuw systeem voor de inhuur van extern personeel, DigiInhuur opgezegd. Vorig jaar dreigde het al mis te lopen, maar toen heeft Van Nieuwenhuizen Deloitte nog wat extra tijd gegund. De bedoeling was dat het er eind maart alsnog zou worden opgeleverd, maar begin augustus is de overeenkomst toch opgezegd omdat Deloitte nog steeds niet (voldoende) leverde. Geschatte kosten: 6 miljoen.

Het komt helaas veel vaker voor, IT-projecten die veel te laat of gebrekkig worden opgeleverd. Als dit soort gevallen bij de rechter terecht komt, gaat de discussie vaak over de vraag of opdrachtgever de overeenkomst had mogen ontbinden, of dat opdrachtgever eerst nog een ingebrekestelling had moeten sturen. De vraag of de ICT van voldoende kwaliteit was, komt zelden aan de orde. Toch is dat vaak wel een groot deel van het probleem.

Kwaliteit

Nou is het begrip kwaliteit niet eenvoudig contractueel vast te leggen. Veel ICT-contracten verwijzen naar de term ‘Gebrek’. Meestal wordt in de definitie van die term verwezen naar de overeengekomen specificaties. Die specificaties bevatten echter zelden kwaliteitsaspecten van het op te leveren product. Andere ICT-contracten maken bij het vaststellen van de kwaliteit gebruik van termen als ‘goede kwaliteit’, ‘state of the art’, maar niet duidelijk is wat daaronder concreet moet worden verstaan. Echt meetbaar is het in geen geval.

De kwaliteit van het ICT-systeem heeft bijvoorbeeld invloed op de benodigde computercapaciteit, de responstijden of beveiliging. Dit wordt vaak pas duidelijk bij onderhoud of foutherstel. Een van de relevante elementen zijn de kosten van het herstellen van een eventuele fout of gebrek. Bekend is dat het herstellen van een fout tijdens de ontwerpperiode vele malen goedkoper is dan het herstellen van diezelfde fout tijdens onderhoud. En hoe beter een systeem kwalitatief in elkaar zit, dat wil zeggen vakkundig ontwikkeld en voldoende gedocumenteerd, des te lager zijn de kosten van het herstellen van een fout of een gebrek tijdens de onderhoudsfase. Maar hoe meet je dat?

Normen

Om de kwaliteit van een ICT-systeem vast te stellen heeft ISO (International Organization for Standardization) een norm ontwikkeld, de ISO 25010. De ISO omschrijft het begrip ‘kwaliteit’ als volgt: “het geheel van eigenschappen en kenmerken van een product of dienst dat van belang is voor het voldoen aan vastgestelde of vanzelfsprekende behoeften.”

Nou is het hanteren van ISO-normen volgens mij echt een vak apart, maar ik vind de onderwerpen die in deze ISO-norm gehanteerd worden om kwaliteit van een ICT-systeem te bepalen wel interessant en de moeite waard om eens te overdenken.

In de eerste plaats wordt gekeken naar de stakeholders bij het systeem, zoals de ontwikkelaar, kopers, gebruikers en klanten van de organisaties die het ICT-systeem gebruiken. Zij hebben allemaal hun eigen (en andere) belangen bij het systeem. Erkenning daarvan leidt tot een systeem dat tegemoetkomt aan de wensen en de belangen van iedere individuele stakeholder bij het systeem. Vanuit iedere stakeholder moeten de aspecten van kwaliteit worden gedefinieerd en meetbaar worden gemaakt.

In de tweede plaats wordt gekeken naar de geschiktheid voor gebruik (quality in use), de interactie tussen mens en systeem en naar de productkwaliteit, de relatie tussen software en de computerinfrastructuur.

Geschiktheid voor gebruik

Om de geschiktheid voor gebruik te bepalen wordt er gekeken naar de volgende criteria:

  • Effectiviteit: de nauwkeurigheid en volledigheid waarmee gebruikers gespecificeerde doelen behalen;
  • Efficiëntie: De benodigde hulpbronnen die gebruikt zijn in verhouding tot de nauwkeurigheid en volledigheid waarmee gebruikers doelen behalen;
  • Voldoening: De mate waarin gebruikersbehoeften vervuld worden als het product of systeem gebruikt wordt in een gespecificeerde gebruikscontext;
  • Vrijwaring tegen risico: De mate waarin een product of systeem het potentiële risico beperkt met betrekking tot economische status, mensenlevens, gezondheid of de omgeving;
  • Contextdekking: de mate waarin een product of systeem gebruikt kan worden in de gespecificeerde gebruikscontexten.

Productkwaliteit

Om de productkwaliteit te bepalen wordt er gekeken naar de volgende criteria:

  • Functionele geschiktheid: De mate waarin een softwareproduct of computersysteem functies levert die voldoen aan de uitgesproken en veronderstelde behoeften, bij gebruik onder gespecificeerde condities;
  • Prestatie-efficiëntie: De prestaties in verhouding tot de hoeveelheid middelen gebruikt onder genoemde condities (snelheid, capaciteit);
  • Uitwisselbaarheid: De mate waarin een product, systeem of component informatie uit kan wisselen met andere producten, systemen of componenten, en/of het de gewenste functies kan uitvoeren terwijl het dezelfde hard- of software-omgeving deelt;
  • Bruikbaarheid: De mate waarin een product of systeem gebruikt kan worden door gespecificeerde gebruikers om effectief, efficiënt en naar tevredenheid gespecificeerde doelen te bereiken in een gespecificeerde gebruikscontext;
  • Betrouwbaarheid: De mate waarin een systeem, product of component gespecificeerde functies uitvoert onder gespecificeerde condities gedurende een gespecificeerde hoeveelheid tijd;
  • Beveiligbaarheid: De mate waarin een product of systeem informatie en gegevens beschermt zodat personen, andere producten of systemen de juiste mate van gegevenstoegang hebben passend bij hun soort en niveau van autorisatie;
  • Onderhoudbaarheid: De mate waarin een product of systeem effectief en efficiënt gewijzigd kan worden door de aangewezen beheerders;
  • Overdraagbaarheid: De mate waarin een systeem, product of component effectief en efficiënt overgezet kan worden van één hardware, software of andere operationele of gebruiksomgeving naar een andere.

Hoewel de norm een heel aantal criteria benoemt om kwaliteit vast te stellen, ben je er natuurlijk niet met het verwijzen naar de norm. De norm fungeert als een kader voor het vaststellen van softwarekwaliteit, maar geeft niet concreet aan wanneer een systeem goed genoeg is. Opdrachtgever moet zelf invulling geven aan de relevante kwaliteitsaspecten, waarbij de verschillende stakeholders steeds als uitgangspunt worden genomen.

Tot besluit

De criteria van de ISO-norm 25010 kunnen helpen om de kwaliteit van een ICT-systeem beter meetbaar te maken, al zal dat best een investering zijn. Wel ben ik ervan overtuigd dat meer aandacht voor dit aspect van ICT ook kan leiden tot meer succesvolle ICT-projecten. Niet alleen om dat opdrachtgever dan concrete kwaliteitscriteria heeft waar hij de ontwikkelaar aan kan houden, maar ook omdat ik denk dat het vastleggen van die criteria kunnen helpen bij het afgeven van reële(re) planningen.