De WBSO wordt mogelijk verregaand gemoderniseerd. Aanpassing is nodig aan nieuwe ontwikkelingen op softwaregebied. Staatssecretaris Mona Keijzer (Economische Zaken) gaat onderzoeken of het mogelijk is om, naast ontwikkelingsprojecten op het gebied van artificial intelligence (ai) en machine learning (ml), ook (hoogstaande) toepassingen van ai en ml te ondersteunen.
Ook wordt bekeken of er binnen de WBSO (Wet bevordering speur- en ontwikkelingswerk) meer mogelijkheden kunnen komen voor het ondersteunen van modellering en simulatie door middel van ict-tools, bijvoorbeeld op voorwaarde dat de modellering of simulatie is gekoppeld aan een eigen ontwikkeltraject.
Keijzer constateert dat het aantal ict-projecten de afgelopen jaren behoorlijk is gegroeid. Onder andere het aantal projecten op het gebied van ml en ai is sterk toegenomen. Zo’n twintig procent van het WBSO-budget in 2019 kwam ten goede aan ict-projecten. De staatssecretaris acht het van groot belang dat deze innovatieregeling blijft aansluiten op de ontwikkelingen op ict-gebied.
Nieuwe definitie
Zij reageert positief op aanbevelingen van twee onafhankelijke experts op het gebied van programmatuurontwikkeling. Prof. dr. Jan Friso Groote (Technische Universiteit Eindhoven) en prof. dr. Mariëlle Stoelinga (Universiteit Twente) hebben op verzoek van het ministerie de definitie van het begrip programmatuur in de WBSO beoordeeld.
Beide experts stellen voor het begrip programmatuur in de WBSO anders te formuleren. Hun definitie is ruimer dan enkele bestaande definities die programmatuur beperken tot programmeercode in een direct executeerbare programmeertaal. De kern van hun voorgestelde definitie: programmatuur is een precieze beschrijving van waaruit het gedrag van een computergestuurd systeem eenduidig is af te leiden, op zodanige wijze opgesteld dat het door mensen navolgbaar is en waarbij het technisch of mathematisch verifieerbaar is dat het beoogde doel ermee wordt bereikt. Verruiming van de definitie leidt ertoe dat bepaalde vernieuwende vormen van toepassing van programmatuur ook voor de WBSO in aanmerking komen.
De eisen die worden gesteld aan de beschrijving leiden ertoe dat abstracte representaties in modellen, mathematische bewijsvoeringen en domeinspecifieke talen hieronder vallen. De laatste clausule vereist dat de beschrijving soms zo compact is dat zij door een voldoende getraind expert goed te begrijpen is. Maar meestal betekent het dat de software is voorzien van voldoende en precieze documentatie opdat goed te achterhalen is wat er wordt bedoeld. In deze zin is een programma van honderdduizend regels Java geen programmatuur indien de structuur daarvan niet separaat is gedocumenteerd.
Controleerbaar
De experts vinden dat de WBSO eenduidig controleerbaar moet zijn. Concreet moet een aanvraag bestaan uit een helder technisch doel. Opgeleverd moet worden een concreet voorschrift, waaruit de programmatuur kan worden gegenereerd.
De huidige definitie van programmatuur lijkt ervan uit te gaan dat de ontwikkeling van programmatuur voornamelijk bestaat uit het schrijven van één programma voor één toepassing. De werkelijkheid is inmiddels veel breder. De focus op het ontwikkelen van formele programmatuur lijkt zelf een stimulans op het ontwikkelen van meer programmatuur, waardoor de kosten door legacy, gebrek aan documentatie en de ontwikkeling van foutvolle programma’s oplopen en zelfs tot economische schade kunnen leiden.
Het WBSO-programma zou ook ondersteuning moeten leveren aan herstructurering van legacy-software. Ook documentatie van de programmatuur moet eronder vallen, inclusief precieze specificatie van externe interfaces. Het enumereren van aanroepbare functies van een softwarepakket is niet genoeg en niet vernieuwend. De interfaces moeten eenduidig beschreven zijn, bijvoorbeeld door een toestandsautomaat of een intern conceptueel model, betogen de hoogleraren.
Beide experts wensen ook ondersteuning voor integratie van verschillende softwarepakketten. Dit om tegen lage kosten nieuwe functionaliteit beschikbaar te stellen, door gebruik te maken van hoog niveau, domein specifieke beschrijvingen.
Ten slotte zou ook verbetering van de intrinsieke kwaliteit van software onder de WBSO moeten vallen, bijvoorbeeld door een verbeterde testmethodiek of software-verificatie. Concreet valt te denken aan model-based testing, of model checking. Van belang blijft dat de methodes nieuw zijn voor de organisatie die haar toepast, en dat ze haar software technisch vernieuwt.
Trends
Groote en Stoelinga vinden dat een toekomstbestendige definitie van programmatuur rekening moet houden met een aantal trends. Allereerst is daar de toenemende complexiteit. Het hanteerbaar maken daarvan vereist dat programmatuur begrijpelijk is.
Een tweede aanbeveling is dat de definitie van programmatuur ook het aanpassen en integreren van software moet omvatten, ook als sprake is van low-coding. Leidend is of daarbij technische knelpunten worden opgelost.
Hun derde aanbeveling is dat onderhoud van software net zo belangrijk is als het schrijven van software.
Maar dan moet dit wel tot technische vernieuwing van de software leiden. De WBSO moet ook ruimte bieden voor agile development. Verder willen beide experts dat ook domeinspecifieke talen onder de definitie van programmatuur vallen; niet alleen bestaande talen zoals SQL en ASP maar ook nieuw ontwikkelde talen.
Als laatste vinden zij dat ai-toepassingen zoals machine learning subsidiabel moeten zijn. Te denken valt aan het vinden van de juiste instructies en instellingen om een neuraal netwerk effectief te laten leren. Ook is te denken aan het opstellen van een methode om trainingsdata op te schonen.