Angelo_Hulshout_04

Angelo Hulshout

30 October 2009

In het julinummer van ACM Sigsofts Software Engineering Notes trof ik een artikel aan van een zekere Michael Wing. Hierin beschrijft hij een korte zoektocht naar wat kwaliteit in software eigenlijk betekent. Na allerlei beschouwingen en definities die hij op het web vond, komt hij tot de conclusie dat kwaliteitssoftware eenvoudigweg die software is die ’een plezier is om te gebruiken en te onderhouden‘. Aanleiding voor de zoektocht en deze conclusie was een discussie tussen Wing en een vriend over kwalitatief goed uit eten gaan. De vriend in kwestie stelde dat ’quality food is food that is a pleasure to eat‘.

Het frappante aan Wings stuk is dat een een-op-eenvertaling van deze uitspraak naar software eigenlijk zou moeten luiden dat ’kwaliteitssoftware een plezier is om te gebruiken‘. Het onderhouden, of initieel ontwikkelen, van software moet blijkbaar ook leuk zijn volgens Wing. Als liefhebber van goed eten en ook het klaarmaken daarvan meen ik te weten dat bij het bereiden van een goed maal de nadruk ligt op de juiste combinatie van geuren, kleuren en smaken, die uiteindelijk op het bord terechtkomt. Blijkbaar zijn plezier van het eten of kwaliteit van het eten en het maken ervan hetzelfde. Waarom maakt Wing dan toch een onderscheid tussen maken en gebruiken als het om software gaat?

In mijn beleving en in die van Wing ligt de oorzaak in wat we ’kwaliteit‘ plegen te noemen in softwareontwikkeling. Vrijwel alle kwaliteitsdefinities en -methodes grijpen terug op het proces en de metrieken die worden gebruikt om dit proces en de voortgang ervan te meten. Omdat we het zo gewend zijn, lijkt het heel logisch om dit te doen, maar welke gebruiker loopt nu warm van metrieken als het aantal bugs per module of het aantal regels code per dag geproduceerd door een ontwikkelaar?

Als we op zoek gaan naar een aspect dat gebruikers en ontwikkelaars wel kan raken, dan kunnen we bijvoorbeeld kijken naar security. Het beveiligen van gegevens en kritieke functionaliteit is steeds belangrijker geworden de afgelopen jaren, niet in het minst omdat vrijwel alle apparaten en alle applicaties via een of ander netwerk benaderbaar zijn. Een metriek die bij dit kwaliteitsaspect een belangrijke rol kan spelen, is net als in cryptografie het aantal stappen dat nodig is om een product te kraken ofwel de ingebouwde beveiliging te omzeilen.

Afgaande op recente berichtgeving krijg ik de indruk dat de ontwikkelaars van bijvoorbeeld de ov-chipkaart, het elektronisch patiëntendossier of de website van Stichting Brein op dit punt niet of nauwelijks zijn uitgedaagd. In alle drie de gevallen, maar zeker in de eerste twee, is dit natuurlijk te wijten aan het feit dat er in overheidsprojecten nauwelijks tijd is om over dit soort aspecten na te denken – Wim Hendriksen heeft ons dit al eerder voorgerekend. Tegelijkertijd is het zo dat voor elk netwerkprotocol op het internet wel een hack is te vinden.

Laten we onze architecten, ontwerpers en programmeurs vooral de tijd gunnen om alle gaten te dichten. Dat moet de uitdaging zijn die er straks voor zorgt dat gebruikers een goed gevoel hebben bij het product en de zekerheid dat ze het zonder veiligheidsrisico‘s kunnen gebruiken. Natuurlijk spelen er voor hen ook andere zaken dan beveiliging, maar daarvoor geldt hetzelfde. De kwaliteit is goed als de gebruiker en de ontwikkelaar er een goed gevoel bij hebben.

Ik kan alleen maar hopen dat de ontwikkelaar die aan de slag gaat met de vacature die ik onlangs in mijn mailbox vond dat ook zo ziet. En zo niet, dat het dan niet gaat om een webapplicatie voor het opladen van de ov-chipkaart of ’betalen met je gsm‘: ’Gezocht: PHP-programmeur. We zoeken iemand die goed kan typen, om zo veel mogelijk regels code in korte tijd te schrijven.‘ De herkomst van deze advertentie is op te vragen bij uw columnist.