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?