Y2K: Why to Care?
Jaar 2000. Veelbesproken onderwerp in de informaticawereld. In de vakpers lees je wel eens dingen als "op de 1e januari 2000 neem ik geen vliegtuig, zelfs geen trein, schrijf ik geen geld over, bestel ik niets via internet, ga ik niet tanken met mijn kaart, ..." enz. Aan de andere kant hoor je opmerkingen als "Januari 2000 zal een maand zijn als een andere. Ook voor de informatica wereld. Hier en daar zal een foutje optreden, en dat zal weer hersteld worden, net zoals dat anders ook gebeurt". Deze laatste opinie klinkt zeer geruststellend, en de verleiding is dan ook zeer groot om ze te volgen, gewone aanpassingen aan software gebeuren inderdaad het hele jaar door, jaar in jaar uit.. Maar laat ons ze toch even relativeren.

Er zijn kleine aanpassingen die gebeuren, meestal voorgesteld als "upgrade". Men kan relatief eenvoudig omschrijven wat de wijziging inhoud, waarop ze invloed heeft, welke gegevens erbij betrokken zijn, kortom een beperkt probleem met een bekende reikwijdte. En toch gaan ze nog dikwijls fout. Onmiddellijk na de "upgrade" moet een extra aanpassing gebeuren omdat er een ongewenst neveneffect optrad, van iets wat men over het hoofd gezien had. Dit lapmiddel noemt men meestal "patch". Niet alleen bij bedrijfseigen software komt dit voor, maar ook bij de grote, commerciele pakketten. Velen hebben al wel gehoord van een "veiligheidspatch", wat in ieder geval beter klinkt dan "onveiligheids-lapmiddel". Een bestaand programma wijzigen blijkt dus niet zo eenvoudig te zijn als op het eerste zicht lijkt. En hoe ouder het programma is, hoe moeilijker.

Als een volledig nieuw programma moet geinstalleerd worden, of een zodanig gewijzigde versie dat er fundamenteel aan het concept van het oorspronkelijke programma is getornd, is de stress nog groter. Het programma is natuurlijk uitgebreid getest. Op de computer van de ontwikkelaar loopt het lekker. Er wordt natuurlijk ook getest op andere computers. Met andere hardware. Met andere software geinstalleerd, ander versie of uitgave van besturingssysteem bv. Met ook andere apparatuur aangesloten, die zijn eigen stuurprogramma's geladen heeft, belangrijk om rekening mee te houden. Al vrij snel wordt duidelijk dat het zo goed als onmogelijk is om met alle mogelijkheden rekening te houden. In de praktijk duiken onverwachte problemen op, meestal veroorzaakt door combinaties. Een ander programma heeft een klein foutje, of laat ons zeggen, onzorgvuldigheidje, wat nog nooit tot uiting is gekomen. Het nieuwe uitgebrachte programma heeft een vergelijkbare onzorgvuldigheid, waar nooit iets van gemerkt is. Maar als beide programma's gestart worden, zorgt de combinatie van die twee voor een fout. Of een crash. Of een onnodige vertraging van het systeem. Het blijkt dus al veel moeilijker om alles te voorzien wat fout kan gaan, of om alles te testen.

Met deze twee situaties in het achterhoofd kijken we nu naar het jaar 2000-probleem. Het gaat hier niet over de aanpassing van één programma, maar over veel programma's. Hoeveel programma's weet men niet. Welke programma's juist weet men ook niet. Van een aantal programma's is men bijna zeker dat ze jaar-2000-veilig zijn. Maar die werken dan weer samen met andere, waarvan met het niet zeker weet. De programmeurs die de programma's geschreven hebben zijn op pensioen of van baan veranderd. De talen die gebruikt werden zijn niet meer zo gebruikelijk, dus zijn er snel een aantal (jonge) programmeurs in opgeleid. Die krijgen nu de tijdelijke en saaie job om na te pluizen waar in het verleden overal het jaar is afgekort tot de twee laatste cijfers ("85" in plaats van "1985"). Stel dat men u zegt dat alle formulieren waar u ooit het jaar invulde zoals hiervoor, in twee vakjes, verbeterd moeten worden. Beeld u eens in welke gevolgen het zou hebben als daar systematisch de datum verkeerd zou geïnterpreteerd worden door de betreffende administraties...
Wel, dan begint u een beeld te krijgen waarover het eigenlijk gaat. En dan denkt u nog niet aan al die machines die bestuurd worden door computers in een iets andere vorm dan een pc. Alles waarbij tijdregistratie, of berekeningen met tijd gebeuren komt eigenlijk in aanmerking om te controleren op deze problematiek.