"Software is geen onderdeel van een voertuig. Een voertuig is eerder een onderdeel van een softwaresysteem".
De afgelopen meer dan 10 jaar heb ik af en toe verkondigd dat de Brainport regio Nederland wereldleider is op het gebied van software engineering. Deze overtuiging was gebaseerd op mijn ervaring met technische verkoopbezoeken aan en het leiden van workshops voor een groot aantal software-ontwikkelende bedrijven in Duitsland, India, Scandinavië en elders. Je kunt veel zeggen over de volwassenheid van een softwareontwikkelingsteam aan de hand van de vragen die ze stellen. De diepgaande, inzichtelijke en uitdagende vragen die we kregen van Brainport bedrijven waren inhoudelijker dan die van teams buiten onze regio. Natuurlijk is dit een oppervlakkige maatstaf voor de volwassenheid van een bepaald team. Niettemin, als het vaak genoeg herhaald wordt, begin je een idee te krijgen van de staat van software engineering in andere industrieën en regio's.
De ergste overtreders waren volgens mij vaak autobedrijven en hun toeleveranciers. De software ontwikkelteams in deze organisaties leken vast te zitten in een soort door-de-kijk-glazen-wereld genaamd AutoSAR, waar veelgebruikte woorden en concepten een andere betekenis leken te hebben. Als we het hadden over event-driven, service-georiënteerde systemen, kregen we vaak blanco blikken te zien. Ik kon nooit goed de aard van het probleem achterhalen of hoe we de communicatiekloof konden overbruggen. En zo kregen we nooit voet aan de grond in de autowereld.
De afgelopen 18 maanden heb ik advies gegeven over software-engineering voor een van de grotere OEM's in de auto-industrie en in die tijd heb ik eindelijk de aard van het probleem begrepen. Kort gezegd wordt innovatie in software engineering voor de auto-industrie ernstig beperkt door twee dingen.
Ten eerste hebben de gevestigde OEM's in de auto-industrie zich ontwikkeld tot zeer efficiënte organisaties voor outsourcing en systeemintegratie. Alles wat te maken heeft met een voertuig wordt gezien als een component, inclusief software. Het hele automotive system engineering proces behandelt software als een onderdeel van een voertuig. Hierdoor kan niemand de software als een heel systeem beschouwen. Het staat de ontwikkeling van een voertuig-brede architectuur in de weg die zich bezighoudt met foutafhandeling, supervisieregeling, enzovoort.
Ten tweede is AutoSAR Classic, de gangbare besturingsomgeving voor voertuigen, gebaseerd op een Matlab-achtig, data-gedreven, klok-tik paradigma. Bijgevolg is een op componenten gebaseerde, event-driven, service-georiënteerde architectuur geen begrepen en ondersteunde manier om softwaresystemen te ontwikkelen. Naar mijn mening is de toepassing en het gebruik van componentgebaseerde, servicegeoriënteerde architectuur de sleutel tot het vermogen om complexe cyberfysische systemen te realiseren. De problemen die mijn klant ziet in hun eindproducten kunnen in belangrijke mate worden teruggevoerd op het onvermogen om het gedrag van een zeer grote verzameling losjes gekoppelde software 'runnables' te begrijpen en te controleren - ik zou deze objecten niet de bijnaam 'component' geven.
Als ik terugkijk op de meer dan 38 jaar die ik in deze regio heb gewerkt aan software voor machinebesturing en fabrieksautomatisering, realiseer ik me dat we het geluk hebben beïnvloed te zijn door een aantal zeer erudiete mensen. Mensen die het onderwerp software systems engineering hebben ontwikkeld om de fenomenale complexiteit aan te kunnen van de cyber-fysieke systemen die we tegenwoordig produceren. Daarom ben ik er nu volkomen zeker van dat de kennis en vaardigheden die we hebben van wereldklasse zijn, zo niet toonaangevend. In een wereld waar de vraag naar steeds complexere cyberfysische systemen toeneemt, moeten we echt uitzoeken hoe we onze competenties beter kunnen benutten.
Als voetnoot: ik beleef veel plezier aan het kijken naar de reactie van automotive software engineering managers en teams als ik ze vertel dat software geen onderdeel is van een voertuig. In plaats daarvan, zeg ik, zijn voertuigen onderdelen van een softwaremobiliteitssysteem, zoals iedereen die in een Tesla rijdt je kan vertellen.
Meer lezen
Een uitbraak van overmoed
Software is het medium van de digitalisering. Als je software niet begrijpt, heb je geen hoop om met een fatsoenlijke digitaliseringsstrategie te komen.
Software is geen onderdeel van een voertuig
OEM's in de auto-industrie hebben zich ontwikkeld tot zeer efficiënte organisaties voor uitbesteding en systeemintegratie. Alles wat te maken heeft met een voertuig wordt gezien als een component, inclusief software. Het hele automotive system engineering proces behandelt software als een onderdeel van een voertuig. Hierdoor denken ze niet na over de software als een heel systeem.
Abstractie versus vaagheid in software-engineering
Sommige software engineering teams hebben moeite met het begrijpen van het verschil tussen abstractie en vaagheid. Aangezien het ene essentieel is voor de architectuur en het ontwerp van complexe systemen en het andere leidt tot technische schuld en slechte softwarekwaliteit, moeten softwareteams het verschil begrijpen.