Op het Randje

Op het randje – ©2017 Bard

Enige tijd geleden schreef ik over de aardige mensen en onaardige systemen die ik tegenkwam toen onze auto midden op een redelijk drukke provinciale weg nogal dramatisch pech kreeg. Vriendelijke onbekenden brachten mijn vrouw en mij veilig thuis; onvriendelijke systemen maakten het ons erg moeilijk om onze mobiliteit terug te krijgen. Het was uitsluitend aan de vriendelijkheid en klantgerichtheid van de garagehouder te danken dat we maar een paar dagen zonder auto hebben gezeten.

Voor mij is dit echter niet het einde van dit incident, maar eerder het begin van een leertraject. Ik probeer altijd te leren van de verstoringen en omwentelingen in mijn leven. Mede om erachter te komen wat ik in de toekomst anders kan doen om te voorkomen dat dezelfde dingen opnieuw gebeuren. Maar ook omdat retrospectief leren zulke incidenten een betekenis geeft die verder gaat dan alleen vervelend, pijnlijk of erger. Het helpt mij om dingen in perspectief te zetten.

Dus toen ik vandaag met de monteur sprak die aan mijn auto had gewerkt, was het eerste wat ik vroeg of ik iets anders had kunnen doen, hetzij om te voorkomen dat de auto defect zou raken, hetzij om veilig van de weg te komen als dat toch gebeurde. Hij verzekerde mij dat ik niets verkeerd had gedaan. Toen hij de auto meenam voor een proefrit nadat hij de boordcomputer had gereset en wat diagnoses had uitgevoerd, vertoonde de auto precies hetzelfde defect, waardoor hij midden op een rotonde strandde. Hij moest door zijn collega’s worden gered temidden van boos toeterende auto’s bestuurd door verwoed gebarende chauffeurs. Het was voor hem wel duidelijk dat de auto de schuld had, niet de bestuurder.

Dus toen werd de vraag: wat zorgt er precies voor dat de auto op deze manier opspeelt? Waarom gebeurt dit? Welk onderdeel is schuldig?

Interessant genoeg legde de monteur uit dat geen van de onderdelen als zodanig defect was; ze deden allemaal wat ze moesten doen en presteerden volgens hun ontwerpspecificaties. Toen ze echter werden samengevoegd, slaagden een aantal componenten er onder zeer specifieke omstandigheden in om een gecombineerde piek in de elektriciteitsproductie te creëren. Die piek activeerde het veiligheidssysteem van de boordcomputer en schakelde alles uit om te voorkomen dat de elektronica kapot zou gaan. Met andere woorden: nominaal correct functionerende onderdelen kunnen, zonder dat een van deze onderdelen defect raakt, een plotselinge ineenstorting van de functionaliteit van het hele systeem veroorzaken; waardoor het in ons geval tot een dramatische noodstop halverwege de reis kwam.

Om een lang verhaal kort te maken (de monteur en ik praatten een aantal uren terwijl we wachtten op de huurauto): wat er mis was met de auto had minder te maken met de onderdelen dan met de manier waarop ze samen functioneerden. Wanneer meer dan een paar onderdelen hun randcondities naderden, kon het resultaat het gecombineerde systeem over de rand duwen.

Wat leert dat ons?

Ten eerste: geen van de onderdelen was kapot. Ze deden allemaal wat ervan verwacht werd. Geen schuld dus. Ten tweede: het systeem als geheel was ontworpen met voldoende fail-saves om grote schade te voorkomen. Dus ook daar geen schuld.

Fail-safe is echter niet hetzelfde als veilig falen. Ik denk dat er veel ruimte is voor verbetering in de manier waarop de auto stopt met functioneren. Door bijvoorbeeld de vergrendelingen van het stuur- en remsysteem handmatig op te kunnen heffen, zou de bestuurder de auto op zijn minst van de weg kunnen duwen zodra deze tot stilstand was gekomen. Misschien had het systeem geleidelijker en eleganter uit kunnen gaan, waardoor de bestuurder meer tijd had om een veilige plek te bereiken om de auto te stoppen. En ik denk dat de waarschuwingssignalen op het dashboard dringend een meer op de bestuurder gericht herontwerp nodig hebbben. De meeste waarschuwingen waren misschien nuttig voor een monteur die probeert vast te stellen wat er mis gaat, maar dat hielp mij niet te begrijpen wat er aan de hand was en hoe ik daar het beste op kon reageren. Een klein voorbeeld: “remsysteem inspecteren” is geen nuttige instructie als je 80 km per uur rijdt en de auto plotseling uit zichzelf begint te remmen.

Ten tweede: toleranties en redundanties kunnen er op papier als verspilling uitzien, maar kunnen een systeem dat onder druk staat, maken of breken. De monteur en ik vermoeden dat sommige onderdelen ondergedimensioneerd waren om kosten te besparen. Hoewel ze technisch gezien binnen de specificaties lagen, hadden ze niet de extra ‘speelruimte’ om verschillende randgevallen op een elegante manier af te handelen.

Tenslotte: complexe systemen, vooral wanneer ze nauw geïntegreerd zijn en vol afhankelijkheden, worden bronnen van onvoorspelbare uitzonderingen. De boordcomputer van onze auto zit vol met op regels gebaseerde software die hem vertelt hoe hij moet reageren op alle bekende uitzonderingen. Maar op regels gebaseerde systemen zijn hulpeloos in het licht van onvoorspelbare gevallen waarin de grenzen worden overschreden op een manier waar geen regels voor zijn. Het zou de verantwoordelijkheid van de ontwerpers moeten zijn om a) de afhankelijkheden tussen componenten te verminderen; b) meer toleranties en redundanties in te bouwen om het vermogen van het systeem om fouten die zich voordoen te herstellen (of elegant uit te gaan) te verbeteren; en c) een interface te bieden die op de bestuurder gericht is, en niet op de auto, om de bestuurder te helpen de auto veilig uit de gevarenzone te krijgen wanneer de systemen falen.

Ik geef de ontwerpers, de fabrikant of de monteurs niet de schuld van wat er is gebeurd. Schuld leert ons niets nuttigs. Maar ik hoop wel dat iemand hier wat van leert en die lessen toepast om een beter resultaat te krijgen dan waar wij onlangs mee geconfronteerd werden.

Een gedachte over “Op het Randje

Plaats een reactie