S&O binnen programmatuurontwikkeling door de jaren heen
Gedurende de afgelopen jaren is door verschillende ingrepen getracht meer duidelijkheid te brengen in de relatie tussen WBSO en programmatuur-ontwikkeling. In 1997 werden binnen een zogenaamde afbakeningsregeling extra voorwaarden aan programmatuur binnen de WBSO gesteld. In 2009 is de S&O-definitie uitgebreid met programmatuurontwikkeling t.b.v. ICT-diensten en in 2016 is programmatuurontwikkeling explicieter omschreven in de regeling S&O-afdrachtsvermindering zelf. In het kort kan S&O binnen programmatuur nu worden samengevat als planmatig (dus vooraf te beschrijven) technisch ontwikkelwerk aan een eigen oplossing, waarbij de ontwikkelaar tegen tekortkomingen van bestaande technologische tools/technieken aanloopt en de eigen oplossing die hiervoor wordt geprogrammeerd technisch risico's bevat. Een extra voorwaarde hierbij is dat in een formele programmeertaal wordt gecodeerd. Hoewel de exacte definitie hiervan niet wordt gegeven, moet hierbij worden gedacht aan talen als Java, C#, Python, PHP, Ruby.
Deze nieuwe en meer complete omschrijving schuurt soms nog steeds met de realiteit. Dit komt mede doordat de wereld op IT gebied zo ontzettend hard evolueert, dat regelgeving en beleid dit niet altijd kunnen bijhouden. Denk hierbij alleen al aan de voortdurend groeiende inzet van open-source projecten en de beweging naar cloud- en service-gerichte architecturen, waardoor de mix van eigen- en bestaande technologie steeds groter wordt. Maar ook de alsmaar grotere rol van DevOps en thema's als Continuous Integration/ Continuous Delivery zijn soms lastig binnen de definitie van S&O te plaatsen, terwijl hier gevoelsmatig voor een onderneming veel innovaties met technische risico's plaatsvinden. En tenslotte is natuurlijk ook de opkomst van ML en AI een urgent onderwerp. Data engineers ontwikkelen soms zeer complexe algoritmiek, maar omdat dit niet altijd in een formele programmeertaal gebeurt, roept dit bij beoordelingen vraagtekens op. Maar ook hier kan innovatieve technologie worden ontwikkeld.