Wat is software eigenlijk?
In dit opzicht is software en zeker maatwerk software iets anders dan een concreet product. Zo is de kwaliteit van een metalen boutje goed vast te stellen aan de hand van algemeen gehanteerde normen op het gebied van treksterkte, schroefdraad, materiaalsamenstelling. En hoewel de kwaliteit van een complex product als een auto zich lastiger laat meten, zijn er toch geaccepteerde normen als de Euro NCAP (voor botsproeven) en brandstofverbruik die getallen opleveren waaarmee kwaliteit gemeten en vergeleken kan worden.
Wat is kwaliteit van software?
Kwaliteit van een software oplossing laat zich lastig meten. Software met kwaliteit leveren laat zich in algemene termen definiëren als “het voldoen aan de verwachtingen van de klant“, maar ook deze definitie is lastig te kwantitatief te bepalen, wanneer de verwachtingen van de klant niet scherp bekend en meetbaar zijn, of, in een nog lastiger geval, in de loop van de tijd wijzigen als gevolg van voortschrijdend inzicht. Dit is als schieten op een bewegend doel, waarvan de spelregels tijdens de wedstrijd worden gewijzigd.
ISO Norm 25010
De ISO norm 25010 (sinds 2011 de vervanger van ISO norm 9126) benoemt 13 kwaliteitskenmerken van software: 8 in de categorie kwaliteit van het product zelf (Functionele geschiktheid, Prestatie-efficiëntie, Uitwisselbaarheid, Bruikbaarheid, Betrouwbaarheid, Beveiligbaarheid, Onderhoudbaarheid en Overdraagbaarheid) en 5 in de categorie kwaliteit tijdens het gebruik (Effectiviteit, Efficiëntie, Voldoening, Vrijheid van risico, Context dekking). Nuttige begrippen die zeker helpen om alle aspecten van de kwaliteit van een softwareoplossing te behandelen.
In de praktijk bepalen van kwaliteit van software
In mijn praktijk als gerechtelijk deskundige ICT ben ik meermalen gevraagd een uitspraak te doen over de kwaliteit van de geleverde softwareoplossing. Bij de beantwoording daarvan richt ik mij minimaal op de volgende aspecten:
Technische kwaliteit – Denk hierbij aan de gestructureerdheid van de broncode, naamgeving, de indeling en consistentie van schermen en rapporten, de documentatie in – en van de broncode, de kwaliteit van het database ontwerp, e.d. Dit zijn allemaal aspecten waarin ik mij goed thuisvoel, zeker als het gaat om een ontwikkeling in een Windows/Microsoft omgeving, een omgeving waarin ik meer dan 25 jaar lang ervaring heb. De ISO factoren die gaan over de kwaliteit van het product zijn een goede aanvulling op de technische programmeerkwaliteit.
Functionele kwaliteit – In hoeverre is aan de vraag van de klant voldaan? Kern hierbij is dat de vraag van de klant toetsbaar is. In een traditionele systeemontwikkeling is er het functioneel ontwerp, in een agile ontwikkelingstraject de gebruikersscenario’s, use cases, testcases, e.d. Kwaliteitsbepaling op dit aspect is lastiger, zeker omdat de functionele beschrijving in de praktijk nooit uitsluitsel geeft over 100% van de afgesproken functionaliteit. Gedegen documentatie voor en tijdens het project over keuze die gemaakt zijn, helpen om de functionele kwaliteit in de eindfase te bepalen.
Business kwaliteit – Dit is een lastig onderwerp. In hoeverre geeft de oplossing een kwaliteit vanuit het oogpunt van de business? Een vooraf opgesteld terugverdien scenario die in de praktijk getoetst wordt kan hierbij (op termijn) antwoord geven. En ook de 5 onderwerpen die genoemd zijn in de ISO cateogrie kwaliteit tijdens het gebruik, geven aanwijzingen. De business kwaliteit laat zich lastig direct na leverign en ingebruikname bepalen, antwoord op deze vraag ontstaat pas in de loop van de tijd.
Andere suggesties voor het meten van kwaliteit?
Heeft u suggesties voor meer praktische maatregelen? Ik hoor het graag…