Computable.nl
  • Thema’s
    • Carrière
    • Innovatie & Transformatie
    • Cloud & Infrastructuur
    • Data & AI
    • Governance & Privacy
    • Security & Awareness
    • Software & Development
    • Werkplek & Beheer
  • Sectoren
    • Channel
    • Financiële dienstverlening
    • Logistiek
    • Onderwijs
    • Overheid
    • Zorg
  • Computable Awards
    • Overzicht
    • Nieuws
    • Winnaars
    • Partner worden
  • Vacatures
    • Vacatures bekijken
    • Vacatures plaatsen
  • Bedrijven
    • Profielen
    • Producten & Diensten
  • Kennisbank
  • Nieuwsbrief

Neem het 2000-probleem serieus

27 juni 1996 - 22:004 minuten leestijdOpinieSoftware & Development
Martin Healey
Martin Healey

Onder degenen die rechtstreeks betrokken zijn bij het onderhoud van bedrijfskritische gegevensverwerkende applicaties leeft het ‘2000-probleem’; slechts weinig anderen lijken de ernst ervan te beseffen.

Het is vooral verontrustend dat veel topmanagers zich nog niet van de potentiële catastrofe bewust schijnen te zijn. ‘Catastrofe’ is niet te sterk uitgedrukt: het gaat om bedrijfskritische systemen, en niet om gewone kantoorapplicaties. Vandaag de dag is modieus om te spreken over het upgraden van PC’s naar een 32-bit besturingssysteem en hiermee het probleem van de onbetrouwbaarheid van Windows 3.1 op te lossen. Dit kan veel tijd en geld kosten, terwijl de impact op de bedrijfsvoering gering zal zijn, al zullen nieuwe client/server-systemen ervan profiteren. Men stort zich op een bijzaak in plaats op van de naderende ramp.
Om het 2000-probleem te kunnen oplossen, moet het eerst in kaart gebracht worden. De problemen zijn technisch en betreffen zowel de programmacode als de gegevens in bestanden en databases. Daardoor is het moeilijk om de boodschap over te brengen aan het management: dit kan zich de schaal van het probleem gewoonweg niet voorstellen. Probeer bijvoorbeeld het belang van testen maar eens uit te leggen en waarom applicaties die nu goed draaien óók getest moeten worden.
De oorzaak van het 2000-probleem ligt in het weergeven van jaartallen door de laatste twee cijfers. Hierdoor valt 2000 ‘eerder’ dan 1999, wat fouten veroorzaakt in tijdsafhankelijke berekeningen. Verder heeft gebrek aan aandacht voor details geleid tot zorgeloos gedrag en slechte gewoontes, iets dat het probleem nog vergroot. Een voorbeeld hiervan is dat veel applicaties het datumveld gebruiken als speciale marker: 99 staat voor het eind van het bestand, 98 voor speciale korting enzovoort. Dit betekent dat de problemen vóór 2000 zullen optreden, wat inhoudt dat er nog minder tijd is om te herschrijven.
Een ander eenvoudig probleem dat illustreert hoe makkelijk fouten kunnen optreden, is de berekening van schrikkeljaren. Een schrikkeljaar is een veelvoud van 4, met uitzondering van de honderdtallen, tenzij het jaartal deelbaar is door 400. In sommige schrikkelsoftware ontbreekt de 400-regel, zodat 29 februari 2000 wordt overgeslagen.
De omvang van het probleem komt duidelijk naar voren uit het grote aantal ‘standaarden’ voor het weergeven van data. De – gangbare – Gregoriaanse datum is jjmmdd. De Juliaanse kalender gebruikt de lopende dag in het jaar, weergegeven als jjddd. Er zijn tal van geformatteerde vormen: d/m/j, m/d/j, 25 juni 1996 etcetera. Seriële of integere data, waarbij het aantal verstreken dagen sinds een referentiepunt wordt geteld, lijken bruikbaar – maar software-pakketten gebruiken allemaal verschillende referentiedata. Zelfs binnen één systeem bestaan variaties: op een IBM-mainframe gebruikt DB/2 Jan 1, 0001, terwijl Cobol 370 Jan 1 1601 noteert en Cics Jan 1, 1900.
Door het gebrek aan discipline is er een veelheid aan manieren waarop in programma’s met data wordt omgegaan. De hoofdberekeningen, zoals ‘hoeveel dagen zitten er tussen de eind- en de startdatum’, zijn �f externe subroutine-aanroepen die vanuit copybooks worden ingevoegd, �f, erger nog, inline-code. Daarnaast bestaan er gespecialiseerde technieken en moet je rekening houden met quick-and-dirty ad-hoc trucjes.
Een programma haalt tijdens executie gegevens uit een scala aan bronnen, zoals bestanden, tabellen, databases, parameters en systeemfuncties. Dit is een bron van inconsistentie. Cobol 370 bijvoorbeeld ondersteunt formeel viercijferige jaaraanduidingen; dit is echter een uitbreiding van Cobol II, dat formeel gebruik maakte van tweecijferige codes.
Het probleem blijft dus niet beperkt tot de hoofdprogramma’s. Ook JCL, sorteerroutines, macro’s, dataset-namen, test-scripts en databases moeten gecontroleerd, aangepast en getest worden. Gezien de spreiding van het probleem over de systemen en applicaties zal de planning van het implementeren en het testen van de veranderingen zeer ingewikkeld zijn.
Het is de moeite waard eens te kijken naar praktijkervaringen op een kleinere schaal; daaruit blijkt het serieuze karakter van het probleem. De meeste organisaties hebben recentelijk een nieuwe versie van een belangrijke applicatie ingevoerd. Bij een upgrading van de code zonder dat de database verandert, vormt het implementeren van de wijziging al een aanzienlijk probleem. Als de database ook verandert, wordt het probleem nog groter: men moet zowel de nieuwe code installeren als de database opnieuw bouwen. Voor veel moderne systemen komt daar het probleem van gespreide verwerking bij. Vaak moeten meerdere sites gewijzigd worden, die zich bovendien in verschillende tijdzones kunnen bevinden. Iedereen die wel eens een verandering in één programma heeft aangebracht, zal zich door die ervaring realiseren dat uitbreiding naar alle programma’s geen triviale kwestie is.

Deel

    Inschrijven nieuwsbrief Computable

    Door te klikken op inschrijven geef je toestemming aan Jaarbeurs B.V. om je naam en e-mailadres te verwerken voor het verzenden van een of meer mailings namens Computable. Je kunt je toestemming te allen tijde intrekken via de af­meld­func­tie in de nieuwsbrief.
    Wil je weten hoe Jaarbeurs B.V. omgaat met jouw per­soons­ge­ge­vens? Klik dan hier voor ons privacy statement.

    Whitepapers

    Computable.nl

    Staat van Digitale Connectiviteit binnen de Bouw- en Installatiebranche 2025

    Digitale connectiviteit is de kern van veel processen in de bouw en volgens insiders van strategisch belang voor de toekomst van de sector. Waar sta jij?

    Computable.nl

    Design Sprints: 4 dagen van idee naar prototype

    Hoe zet je in vier dagen tijd een gevalideerd prototype neer met Design Sprints?

    Computable.nl

    Resultaatgericht Samenwerken (RGS).

    RGS is een gestructureerde methode die vastgoedprofessionals direct ondersteunt bij kwaliteitsverbetering, kostenefficiëntie en verduurzaming.

    Meer lezen

    ActueelFinanciële dienstverlening

    Rechter kraakt falende erp-consultant

    ActueelCarrière

    Kort: Paul Broekhuizen leidt Fsas Benelux, Brink Software verkocht (en meer)

    ActueelData & AI

    Europese beurzen voor grensverleggend UvA-onderzoek in it

    AchtergrondSoftware & Development

    License to bill

    AchtergrondData & AI

    Ai-bedrijf Braincreators stelt de mens weer centraal in nieuwe koers

    ActueelSoftware & Development

    Europese tech hongert naar Navo-orders

    Geef een reactie Reactie annuleren

    Je moet ingelogd zijn op om een reactie te plaatsen.

    Populaire berichten

    Meer artikelen

    Uitgelicht

    Partnerartikel
    AdvertorialInnovatie & Transformatie

    Ontdek de toekomst van IT-support en m...

    Op 16 september 2025 vindt in de Jaarbeurs in Utrecht een gloednieuw event plaats dat volledig is gericht op IT-professionals:...

    Meer persberichten

    Footer

    Direct naar

    • Carrièretests
    • Kennisbank
    • Planning
    • Computable Awards
    • Magazine
    • Abonneren Magazine
    • Cybersec e-Magazine
    • Topics

    Producten

    • Adverteren en meer…
    • Jouw Producten en Bedrijfsprofiel
    • Whitepapers & Leads
    • Vacatures & Employer Branding
    • Persberichten

    Contact

    • Colofon
    • Computable en de AVG
    • Service & contact
    • Inschrijven nieuwsbrief
    • Inlog

    Social

    • Facebook
    • X
    • LinkedIn
    • YouTube
    • Instagram
    © 2025 Jaarbeurs
    • Disclaimer
    • Gebruikersvoorwaarden
    • Privacy statement
    Computable.nl is een product van Jaarbeurs