Millennium

Er ligt een krokodil onder het bed van elke systeembeheerder, elke informatiemanager, elk bedrijf dat een computer gebruikt. Soms zie je zijn ogen al even gemeen oplichten, twee lichtende ovalen, als een dubbele nul. Maar hij zal pas echt toeslaan als het midden in de nacht is, aan het begin van een zaterdag. Als de champagnekurken knallen voor het aanbreken van het jaar 2000. Dan staat de wereld op zijn kop, en ook menig computersysteem.

De krokodil heet het millenniumprobleem, een mooie naam voor een kleine onnadenkendheid met grote gevolgen. In de beginjaren van de computerindustrie is een traditie ontstaan om datums met een tweecijferige jaaraanduidingen te noteren, dus zonder de eeuw. Een belangrijk motief daarvoor was zuinigheid. Opslagmedia waren duur, en bij databases van miljoenen records, zoals van een bank, schelen twee bytes per record een slok op een borrel. Waar niemand serieus bij stilstond, was dat op die manier binnen afzienbare tijd het jaar 00 aan zou breken. Wie dan leeft, dacht men, die dan zorgt.

Die lichtzinnigheid dreigt ons nu duur te komen staan. In tienduizenden systemen is 00 een aanduiding voor lege of onacceptabele invoer. Als daaraan voordat het feest losbarst, niets wordt gedaan, gaan de bedrijven die met zulke systemen werken bij het aanbreken van het jaar 2000 met onmiddellijke ingang plat, omdat hun apparatuur weigert om dan actuele gegevens te accepteren. Telefoonmaatschappijen registreren geen gesprekken meer, banken kunnen geen betalingen boeken, andere bedrijven krijgen geen factuur meer de deur uit.

Maar ook kan plotseling uw verzekeringspolis vervallen blijken te zijn, of eet de flappentap uw pasje op, omdat de computer denkt dat het verlopen is. Beveiligingssystemen slaan op tilt, zodat niemand nog gebouwen in of uit kan. Eenmaal door het raam naar binnen geklommen zullen heel wat mensen op kantoor met hun duimen moeten draaien, omdat het computersysteem niet eens meer wil starten. De licentieperiode blijkt plotseling verlopen te zijn. Tot overmaat van ramp zit dat soort codes, om gerommel te voorkomen, heel goed en diep in software verstopt, zodat het zelfs voor de leverancier geen sinecure zal zijn om de boel weer aan de praat te krijgen. En als die leverancier niet meer bestaat, dan helpt alleen nog Onze lieve Heer.

Als alles dan eindelijk weer draait, zwiept de krokodil andermaal met zijn staart: het sorteerprobleem. Backups werken doorgaans op het alleen bijwerken van bestanden die een latere aanmaakdatum hebben dan die van de vorige backup. Omdat 00 nu eenmaal kleiner - en in de ogen van de computer dus ouder - is dan 99, zullen heel wat systemen oordelen dat er niets te doen valt. Als zo'n systeem dan ook nog zo in elkaar zit dat het na gedane zaken oude backups wist, dan is het leed helemaal niet meer te overzien: dag administratie! En als dat niet gebeurt, dan worden nieuwe records in databases wel verkeerd gesorteerd. Wie krijgt er bij wanbetaling dan nog een herinnering of aanmaning? Wat wordt er van het meerjarenoverzicht van het temperatuurverloop om het broeikaseffect aan te tonen? Waar zijn de patiënten van het streekziekenhuis in Velsen gebleven?

Sommige problemen, waaronder het sorteerprobleem, spelen overigens nu al. Financiële en planningssystemen kijken een aantal jaren in de toekomst. Wie bijvoorbeeld in 1998 voor vier jaar vooruit rente op rente wil berekenen, kan rare uitkomsten krijgen. Immers, een systeem dat maar twee cijfers gebruikt, zal zonder extra maatregelen niet van de volgorde (19)98, (19)99, (20)00, (20)01 uitgaan, maar van de reeks 00, 01, 98, 99. Dat soort fouten treedt nu al op, als de horizon van de berekening maar ver genoeg weg is, en het is niet zeker dat ze altijd tijdig worden opgemerkt.

Maar behalve sorteren zijn er nog meer berekeningen met datums. Uw ziektekostenverzekeraar wil bijvoorbeeld weten hoe oud u bent, om u op tijd in een duurdere klasse te stoppen. Dat rekent hij uit door uw geboortejaar van de huidige datum af te trekken: wie in 1953 geboren werd, wordt dit jaar 42, want 95 - 53 = 42. Maar na de eeuwwisseling werkt dat niet meer: in 2005 wordt diezelfde persoon dan 5 - 53 = -48 jaar!

Allicht zal het allemaal niet zo'n desastreuze vaart lopen. Langzamerhand begint immers door te dringen hoe geniepig die twee nulletjes zijn. Maar pijn doen zal het in elk geval. Alleen al technisch wordt het een gigantische en kostbare klus. Datums spelen op heel veel en soms onverwachte plekken in programmatuur een rol.

Ook in diep verscholen functies die maar zelden worden aangeroepen. Dat betekent dat alle code in een bedrijf regel voor regel beoordeeld moet worden, terwijl er vaak maar mondjesmaat documentatie voorhanden is. Bij een beetje bedrijf gaat het al gauw om miljoenen regels. Maar ook zijn er gewetensproblemen in het spel. Wie kunnen we het omwerken van onze vertrouwelijke gegevens toevertrouwen? De meeste bedrijven hebben immers de benodigde expertise domweg niet in huis. Wat moeten we doen, de programma's aanpassen of de gegevens? Is het niet slim om in één klap onze hele automatisering vervangen, die half verouderde lappendeken die in de loop der jaren ontstaan is? En kunnen we dat aan, is het betaalbaar, haalbaar?

Inmiddels heeft ook de eerste wonderdokter zich gemeld. Een snelle jongen, die naar goed Amerikaanse traditie voor maar $159 een concept aanbiedt dat alle problemen oplost, en de carrière van de koper een flinke duw in de goede richting zal geven. Waarschijnlijk bestaat zijn concept uit één A4-tje, met daarop één woord: 'pray'. Want eén ding is zeker, hoe hard er ook aan getrokken zal worden, de kans dat alle datumberekeningen in alle systemen op tijd gevonden en omgewerkt worden, is gelijk aan die om de kakkerlak definitief uit te roeien. Problemen komen er dus in elk geval. De vraag is alleen waar, en hoe ernstig ze zullen blijken. Gelukkig kunnen we, als het gaat spannen, altijd nog Apeldoorn bellen - als daar in 2000 tenminste nog opgenomen wordt.