Omvangrijke en complexe softwaresystemen worden zelden of nooit foutloos ontwikkeld. De kwaliteit van software zou vele malen beter moeten, zeggen professoren Chris Verhoef en Jan Friso Groote. Er moet dan wel een Software Deltaplan komen, om een toekomstige vloedgolf aan softwareproblemen te keren.
Het is maar de vraag of de Maeslantkering, het in 1997 opgeleverde kroonjuweel van de Nederlandse Deltawerken, werkelijk sluit wanneer gevaar dreigt (zie kader). Uit internationale benchmarks zou namelijk blijken dat dergelijke omvangrijke projecten meer fouten in de software bevatten dan gewenst is. Dat zeggen Verhoef, hoogleraar aan de VU (Vrije Universiteit Amsterdam), en Groote, hoogleraar aan de TUE (Technische Universiteit Eindhoven). Dit voorbeeld, en volgens de professoren nog vele andere voorbeelden, tonen aan dat het tijd is voor een nieuw Deltaplan. Deze keer niet om het zeewater tegen te houden, maar om de negatieve gevolgen van problematische it te beperken door softwareontwikkeling tegen het licht te houden.
Een Software Deltaplan, het klinkt nogal zwaar. Is het werkelijk nodig, en van levensbelang voor de samenleving? Groote denkt van wel. “Onze samenleving heeft zich bepaalde normen opgelegd inzake haar functioneren. Software voldoet niet aan die norm, dus is een ingreep noodzakelijk. Net als bij de watersnoodramp in 1953. We hadden gemakkelijk kunnen zeggen dat de schade best te dragen viel en we weer zouden overgaan tot de orde van de dag. Dat deden we niet. We zeiden tot hier en niet verder, en dat mocht best wat kosten. Voor software zouden we diezelfde beslissing moeten nemen. Software is een primaire pijler onder onze samenleving geworden. De energievoorziening, het bankwezen, zelfs de waterkering, het vervoer, de voedselvoorziening en amusement is van software afhankelijk geworden. Ik denk dat onze samenleving van de haar ten dienste staande apparaten mag verwachten dat zij betrouwbaar zijn en doen wat verwacht wordt. Software heeft die eigenschap niet – nog niet, in ieder geval. Het doet vaak wat we verwachten, maar te vaak gaat er iets mis. Software ontwikkelen die wel de vereiste correctheid heeft is de enige manier om hier verbetering in te brengen.”
Wildwestsituatie
Is de lezer nog niet geheel overtuigd dat verbetering nodig is op het gebied van softwareontwikkeling? “Luister maar naar het nieuws”, zegt Verhoef. “Hoe vaak is de AEX niet down? Dat gebeurt toch regelmatig. Benchmarks geven aan dat het de directe kosten al gauw 6,45 miljoen dollar per uur bedragen wanneer zo’n operatie uit de lucht is. Er zijn tal van andere voorbeelden waaruit blijkt dat niet werkende software tot allerlei vormen van schade leidt. Veel van die schade is onzichtbaar omdat we het niet direct in rekening brengen. Treinreizigers bijvoorbeeld die door softwarefouten te laat op hun werk komen, zullen als individu de NS niet snel aanklagen.”
Een belangrijke oorzaak is volgens Verhoef gebrek aan professionaliteit. Dat probleem veranderen we niet zolang mensen zonder enige kennis van zaken toch aan it kunnen werken. Verhoef: “Werken aan it is geen beschermd beroep. Dat is een groot probleem. Als je naar een huisarts gaat, weet je dat hij gecertificeerd en gelicentieerd is. Je weet dat je een advies krijgt dat op wetenschappelijke leest geschoeid is. Dan worden nog steeds fouten gemaakt, maar er zijn wel bepaalde minimale eisen aan zo’n persoon gesteld, waardoor je een minimumkwaliteitsniveau kunt garanderen. In de informatietechnologie is dat minimumkwaliteitsniveau er niet. Om de vergelijking met de medische wetenschap door te trekken: we hebben te maken met het kwakzalvereffect zoals dat vroeger onder doktoren bestond, waarbij mensen van de buitenkant niet kunnen zien wie goed en wie slecht is, en ze dus kiezen voor degene die het goedkoopst is. We leven op dit moment gewoon in een wildwestsituatie, waarbij iedereen maar software kan ontwikkelen en implementeren. Werken aan bedrijfskritische software zou een gelicentieerde en gecontroleerde professie moeten worden.”
Onderzoekbudget
Verhoef en Groote beseffen dat je softwarefouten nooit helemaal kunt voorkomen, maar ze zijn ervan overtuigd dat beperking mogelijk is. Eén stap is de professionaliseringsslag via certificering en licentiering van it-professionals. “Het onderwijs op universiteiten, hogescholen en managementscholen moet echter ook verbeterd worden”, zegt Verhoef. “Op dit moment worden nauwelijks praktijkmensen met de juiste vaardigheden afgeleverd, bijvoorbeeld mensen die op de juiste manier complexe it-projecten kunnen managen en mensen die risico’s kunnen beheren. Daarnaast is fundamenteel onderzoek nodig dat te maken heeft met de complexiteit van software, met het effectief ontwikkelen, beheren en veranderen ervan. Als we hier niet iets aan doen, wordt de Nederlandse it-industrie uiteindelijk zwakker. Dat zal economisch serieuze consequenties hebben.”
Een ander punt in een op te stellen Software Deltaplan is dat meer geld beschikbaar moet komen voor onderzoek. Voor natuurkundig onderzoek bijvoorbeeld wordt nog altijd meer geld gereserveerd dan voor informaticaonderzoek. Groote: “Meer geld is een understatement. De stichting Nederlandse organisatie voor Wetenschappelijk Onderzoek trekt voor informatica per jaar ongeveer tien miljoen euro uit, terwijl ze aan natuurkunde jaarlijks honderd miljoen uitgeeft. Voor 2006 heeft NWO door geldgebrek de normale subsidieronde voor informatica zelfs geschrapt, terwijl die van natuurkunde gewoon doorgaat. Als informatica nou relatief nauwelijks van belang was in Nederland, was dit gerechtvaardigd. Het belang van informatica tegenover natuurkunde zou echter een acute omkering van de middelen onmiddellijk rechtvaardigen.”
“Recentelijk sprak ik een studiegenoot, nu onderzoeker in de natuurkunde. Hij zegt dat veel van het onderzoek binnen dat vakgebied volstrekt overbodig is. ‘We kunnen niet publiekelijk beweren dat we het geld niet nodig hebben. Er staan veel mensen op de loonlijst, en wat weg is krijgen we nooit meer terug. We kunnen dus niet anders dan zeggen dan hoe belangrijk die natuurkunde is’, vatte hij het natuurkundige dilemma treffend samen.”
Calimero-denken
Softwareontwikkeling is grensoverschrijdend. Is een fundamentele facelift voor de software-industrie een taak die in Nederland ligt? Moet zo’n Software Deltaplan niet op Europees niveau worden uitgewerkt? “Dat is onzin”, zegt Verhoef. “We hebben in Nederland ontzettend veel te maken met software. We stonden in 1998 al op de vierde plaats in Europa als het gaat om it-uitgaven. Het is een beetje het Calimero-denken dat Nederland te klein zou zijn om hierover na te denken. In Nederland zijn we gauw geneigd om te wachten tot de wereld om ons heen iets doet, maar in it-uitgaven zijn we echt groot. We moeten zelf dus actie ondernemen en investeren in de ontwikkeling en verdere professionalisering van informatietechnologie.”
De omringende landen zien overigens wel de noodzaak in van kennisopbouw rond softwareontwikkeling en professionalisering van het vak. Ierland heeft bijvoorbeeld het onderzoeksinstituut LERO (Irish Software Research Centre) opgezet. In die instelling zijn miljoenen euro’s gepompt – volgens Verhoef vijftig- tot honderd miljoen. LERO houdt zich puur bezig met softwareontwikkeling. In Duitsland is het initiatief genomen tot IESE (Instituut voor Experimentele Software Engineering), dat op een experimentele manier software analyseert en ontwikkelt. Australië heeft NICTA (National ICT Australia), een onderzoeksinstituut waar miljoenen Australische dollars in zijn gestopt. In de Verenigde Staten werken een paar honderd mensen bij SEI (Software Engineering Institute) op een innovatieve manier aan de fundamenten van software-engineering. Bij SEI is bijvoorbeeld cmm (capability maturity model) uitgedacht, een model waarmee organisaties het proces van softwareontwikkeling binnen de organisatie beter in de hand kunnen houden.
Wat heeft Nederland? Verhoef: “Als het gaat om dat soort instituten, die zich specifiek richten op softwareonderzoek en engineering, is er in Nederland niets. Er wordt wel mondjesmaat hier en daar wat geïnvesteerd in softwareonderzoek, maar dat zet geen zoden aan de dijk. Ierland heeft zich als doel gesteld dat het binnen vijf jaar ongeveer vijftig gepromoveerde mensen die verstand hebben van software-engineering aflevert. Als we een kenniseconomie willen blijven, zal Nederland ook in dat soort projecten moeten investeren – zeker omdat algemeen bekend is dat informatietechnologie vrijwel altijd aan de basis staat van de ontwikkeling van een kenniseconomie.”
Politieke actie
Softwareontwikkeling gaat volgens Groote vooral mis waar omgevingen ingewikkeld en omvangrijk zijn. “De kern van het probleem is eigenlijk complexiteit. De meeste mensen hebben de neiging om de werking van een programma te begrijpen in termen van één run. Daar is zelfs een officiële term voor, een ‘use case’. Een programma gaat echter niet over een of enkele runs. Het gaat over het verwerken van alle mogelijke invoer die ooit aangeboden kan worden. Het is gemakkelijk om je een voorstelling te maken van een reisje Utrecht-Amsterdam. Het is de taak van een programmeur zich voor te stellen wat op iedere mogelijke reis kan gebeuren en code te schrijven om alle gebeurtenissen goed af te vangen. Om het in termen van de Maeslantkering te houden: hij moet er ook nog een bewijs bij leveren dat slechts eens in de tienduizend jaar een reisje Utrecht-Amsterdam in het honderd kan lopen.”
Een Software Deltaplan is volgens de professoren het antwoord. Net als bij de Deltawerken ligt de uitdaging vooral in het doen. Een belangrijk aspect, meent Groote, is dat teams in staat zullen zijn om bewezen correct geprogrammeerde systemen op te leveren. Dat moet zo gedaan zijn dat het verifieerbaar is, dat een ander team kan vaststellen dat het klopt. Groote: “Zet een team op de software in de Maeslantkering en geef dat de verplichting om van alle software te laten zien dat die altijd conform verwachting werkt. Het kan ook bescheidener, bijvoorbeeld door te kijken hoe het zit met de software in stemmachines, het nieuwe paspoort, de nieuwe ov-kaart, de stadsbussen in Eindhoven die zo nu en dan op hol slaan of de onbemande parkshuttles van Connexxion die op elkaar botsen.”
Wat is de kans dat een forse investering in zo’n onderzoeksproject resultaat oplevert? “Welke garantie hadden de Amerikanen toen ze gingen investeren in de atoombom of een reis naar de maan”, zegt Groote. “We spreken hier over technologie die we graag willen hebben en waarvan we denken dat het mogelijk is. Ik weet wel dat in Nederland de politiek zich nauwelijks met onderzoek bemoeit, maar Den Haag zou op het hoogste niveau actie moeten ondernemen. Daar ligt de verantwoordelijkheid voor invoering en opvolging van een Software Deltaplan.”