Programma’s zijn net wodka

MARCO BAKKER weet het dodelijke ongeluk dat hij veroorzaakte aan het falen van de cruise-control zijner auto. Inmiddels weten we dat dat waarschijnlijk een smoes was, en dat de oorzaak eerder gezocht moet worden in de wodka die hij daarvoor had ingenomen. (‘Russische Vitamine’, noemt Einstürzende Neubauten dat, en ja, aan alcohol kan men levenslust en dito zin ontlenen – zo leef ik zelf al een heel weekend op champagne – maar je moet wel oppassen met wat je doet, erna. Gelukkig rijd ik op het fietspad met mijn autootje.)

Bakkers excuus is vergelijkbaar met de alomvattende bureaucratische smoes die iedereen die zijn beklag doet tegenwoordig in de maag gesplitst krijgt: “Ja sorry, heel vervelend, maar ik kan er niets aan doen: het ligt aan de computer”. Uitkeringen te laat uitbetaald, namen verhaspeld, personen verwisseld, reisbestemmingen onvindbaar, betaalpassen onbruikbaar: niemand kan er iets aan doen, het ligt aan de computer. Ik was het niet, ‘t is mijn schuld niet, het is het systeem dat het deed. Dat dendert op geheel eigen wijze voort en iemand heeft daar greep op. Sorry dat ik u al doende doodreed. Nee heus, het spijt me erg.

Tot op zekere hoogte is het waar, dat van die voortdenderende software, en dat maakt de klacht zo begrijpelijk, zo acceptabel tevens – nu ja, wellicht niet dat verhaal van Bakker en zijn onbestuurbare besturingssysteem; ik houd het op de Russische vitamine. Maar wel geldt dat software haar eigen wetten heeft.

Veel mensen hebben een onzegbaar vertrouwen in de techniek. In hun ogen is het een rationeel, complex, doch in laatste instantie inzichtelijk systeem en moet je, als er klachten zijn, hooguit de premissen waaronder programma’s werken, aanpassen. Zorgen dat mensen les krijgen in de software waarmee ze werken, bijvoorbeeld, zodat ze zich niet langer kunnen verschuilen achter de programma’s terwijl het vooral hun eigen onkunde is die brokken veroorzaakt. En zorgen dat programma’s flexibel zijn, aanpasbaar aan nieuwe eisen en berekend op uitzonderingen.

Maar dat nu is een misvatting. Enorm veel programmatuur – zowel die waarmee de loonadministratie wordt bijgehouden als die waarmee vliegtuigen worden gebouwd, of bestuurd, is niet het resultaat van een doordacht plan. Er is iets, en daar wordt vervolgens aan gesleuteld, aan verbeterd, er wordt iets bij aangebouwd (omdat wetten, regels en eisen veranderen), er vindt een upgrade van het systeem en de programmeertaal plaats, en voor je het weet heb je iets in handen waarvan niemand nog goed kan zeggen wat het doet en wat er nu precies gebeurt tussen dingen erin stoppen en iets eruit krijgen.

De VPRO wijdde gisteravond in Noorderlicht aandacht aan die zaak. De opmerking die me het meest is bijgebleven is die over de automatische piloot in vliegtuigen: afgaande op de tapes van de gesprekken die in de cockpit worden gevoerd, zijn de twee meest frequente opmerkingen van de menselijke piloten verschrikt commentaar op het gedrag van de vliegsoftware: “Wat doet-ie nu?” (uitgesproken met een lichte verbazing, en met pech: met angst in de stem) en “Oh god daar gáát-ie weer” (dat ene lampje dat onheilspellend gaat branden terwijl je weet dat het nergens op slaat, en je niettemin niet kunt beïnvloeden dat het aan- of uitfloept).

Mensen weten heel vaak niet wat software doet. Buitenstaanders hebben nog een vaag idee dat er een plan ten grondslag moet liggen aan computerprogramma’s, een plan dat verband houdt met rationaliteit, met doordachtheid: maar zo werkt het in de praktijk niet. Deels omdat programma’s te complex zijn – als je miljoenen regels code hebt, snapt niemand het geheel meer. Je kunt nooit alle uitzonderingen testen, en zijn er allerlei combinaties van uitzondering mogelijk die je nooit hebt kunnen bedenken, laat staan kunt afvangen, en weet jij veel wat dat dan vervolgens doet met de normale dingen – deels omdat er nooit één ontwerper aan een programma werkt maar er sprake is van cohorten die elkaar afwisselen. Jantje schrijft subroutine A, Marietje subroutine B, en alletwee denken ze dat ze zich aan het algemene plan houden; en alletwee gaan ze weg en worden ze opgevolgd door weer nieuwe programmeurs. Er is zelden één maker.

Maar belangrijker nog is dat software steeds bijgewerkt wordt. Ooit werkte ik als programmeur bij Fokker. Mijn afdeling schreef programma’s voor de produktie van vliegtuigen. De leidende gedachte was dat er ooit een perfecte boomstructuur kon worden ontwikkeld, zodat je, als je wist dat je in 2000 een vliegtuig moest afleveren, automatisch uitgesplitst kreeg dat er in 1999 twee vleugels af moesten zijn en honderd stoelen bekleed dienden te worden in de geprefereerde kleur, er in 1998 vier propellers gereed moest zijn, er in 1997 acht banden en driehonderd kilometer isolatietape besteld moest worden enzovoorts. Alle bonnen op grond waarvan de verschillende produktie-afdelingen nietjes, spijkers, ramen, lijm, aluminium etcetera produceerden of inkochten, daarna verwerkten tot tussenprodukten die naar andere afdelingen werden gestuurd voor verdere bewerking en assemblage, zouden met dit systeem beheerd en vervaardigd moeten worden.

In de loop van de plusminus dertig jaar dat Fokker met computers werkte, waren er veel computertalen gebruikt: van Cobol en Easytrieve tot DBMS en Oracle. Voor al die talen moesten aparte interpretors, compilers, assemblers, debuggers, linkers enzovoort worden bijgehouden. Er waren immens veel programma’s geschreven in al die talen. Sommigen waren al in de jaren vijftig geschreven. De batchprogramma’s (aan elkaar geknoopte programma’s, waarbij een programma informatie verwerkt en die doorgeeft aan een programma dat informatie verwerkt en die doorgeeft aan een programma dat &c) duurden van vrijdagmiddag tot maandagochtend en er liepen er elk weekend tientallen parallel. Allemaal werkbriefjes en orderbriefjes en rapporten en voorraadbeheer. De programma’s die dat regelden hadden letters en een serienummer.

In de tijd dat ik bij Fokker werkte, moest een aantal oude programma’s worden herzien; sommige omdat de taal waarin ze geschreven waren, niet meer ondersteund zou worden, andere omdat de papieren produktiebeheersing moest worden gestroomlijnd vanwege die beoogde boomstructuur. Iemand op de afdeling stuitte op een cluster F-programma’s. Die waren zo oud dat er nergens documentatie over was te vinden. Er is driftig op gestudeerd, maar toen ik wegging wist nog niemand waar die fossiele programma’s nu eigenlijk voor bedoeld waren en wat ze deden. Ze draaiden wel elk weekend in de batch mee en deden daar dingen.

Van die F-programma’s wisten we tenminste dat we niet wisten wat ze deden. Ze waren net wodka.


Schrijf een reactie

E-mail adressen worden niet getoond noch aan derden doorgegeven.
Verplichte velden zijn gemarkeerd met een *