In een stoffige serverruimte, verborgen onder lagen vergeten documentatie, wacht een legacysysteem op de moedige tester die zijn geheimen durft te ontrafelen. Sommigen zeggen dat het systeem bezeten is, anderen beweren dat het door niemand begrepen kan worden. Maar voor de digitale archeoloog is het gewoon een nieuwe uitdaging om geschiedenis en technologie te laten samenkomen. In deze blog neemt Francis Welbie je mee in de mysterieuze wereld van legacycode.
De verloren artefacten
Legacycode. De term alleen al veroorzaakt rillingen bij menig IT-professional. We hebben het hier over software die geschreven is ver voor de junioren in je team geboren werden. Het is geschreven in talen die sommigen alleen van naam kennen, en draait op systemen waarvan de fabrikant allang niet meer bestaat. En toch… deze legacysystemen ondersteunen soms nog de meest kritieke bedrijfsprocessen.
Stel je voor: een team van RisQIT-testers wordt opgeroepen om een mysterieus falende applicatie te onderzoeken. Een financiële rapportage vertoont ineens vreemde afwijkingen, maar niemand kan achterhalen waar het probleem zit.
“Het moet vast in de nieuwe API-koppeling zitten,” zegt de projectmanager. “Of misschien in de clouddatabase,” oppert een ontwikkelaar.
Het team begint het onderzoek door de datastromen van het systeem in kaart te brengen. Tot hun verbazing ontdekken ze dat de vernieuwde applicatie nog steeds afhankelijk is van een obscure Visual Basic 6-applicatie uit 1997. Een applicatie waarvan niemand wist dat het nog steeds de hele facturatiestroom van het bedrijf aanstuurt. De originele ontwikkelaar is al twaalf jaar met pensioen en niemand heeft de code ooit durven aanraken.
“Het is net een archeologische opgraving,” vertelt een van de testers later. “Je moet heel voorzichtig te werk gaan, laag voor laag afstoffen, met respect voor wat je vindt. Eén verkeerde beweging en het hele systeem kan instorten.”
Gevaarlijke valkuilen en verborgen schatten
Werken met legacycode zit vol boobytraps die je moet leren herkennen om veilig te kunnen navigeren: ongedocumenteerde afhankelijkheden, hardcoded wachtwoorden, en laten we de magische getallen niet vergeten (‘Verander deze waarde NOOIT van 426 naar iets anders of het systeem explodeert!’ – zonder verdere uitleg waarom).
Tijdens je digitale opgravingen kun je fascinerende artefacten uit het vorige millennium ontdekken:
- Een COBOL-module met commentaar zoals “Tijdelijke fix – Kees 04-05-1988” die nog steeds vrolijk draait in productie. Kees is inmiddels met pensioen en woont in Portugal.
- Een verstopt Easter Egg waarbij je door een specifieke toetsencombinatie (Alt+F7+R+E+D) een spelletje Snake kon spelen in het boekhoudprogramma. Blijkbaar had de ontwikkelaar behoefte aan wat afleiding.
- Een database waarin data na 1999 niet mogelijk waren omdat de ontwikkelaar dacht dat het systeem lang voor die tijd vervangen zou zijn. Spoiler: het is 2025 en we gebruiken het nog steeds, met een pijnlijke workaround waarbij alle data met 25 jaar worden teruggerekend.
Hoe herken je deze valkuilen? Begin met het zoeken naar code-commentaar dat iets zegt als “FIXME”, “TODO”, of “tijdelijk” – wanneer deze opmerkingen ouder zijn dan tien jaar, heb je zeer waarschijnlijk een archeologisch artefact gevonden.
Lessen van de digitale archeoloog
Wat kunnen we leren van onze opgravingen in digitale oudheid? Verrassend veel, eigenlijk.
Ten eerste: oude code kan verrassend efficiënt zijn. Programma’s moesten draaien op machines met een fractie van het geheugen en de verwerkingskracht van vandaag. Die beperkingen leidden vaak tot ingenieuze oplossingen.
Ten tweede: veel “nieuwe” problemen zijn eigenlijk helemaal niet zo nieuw. Die elegante oplossing voor concurrency die je vorige week bedacht? Grote kans dat iemand in 1985 een vergelijkbare aanpak had, alleen met minder elegante syntax.
Ten derde: zonder goede documentatie en overdracht wordt elke code legacycode. De beste manier om te voorkomen dat jouw prachtige nieuwe systeem het archeologische probleem van morgen wordt, is door te investeren in kennisdeling, documentatie en goede testers.
Klaar voor je eigen expeditie?
Ben je zelf een digitale archeoloog in wording of ken je juist iemand die geïnteresseerd is in deze uitdagende tak van IT? Bij RisQIT zijn we altijd op zoek naar mensen die niet terugdeinzen voor een goed mysterie. Bekijk onze vacatures voor meer informatie.
Want onthoud: vandaag’s cutting-edge is morgen’s legacy. En wie weet is er over twintig jaar wel een digitale archeoloog die met bewondering naar jouw code kijkt en denkt: “Wie was toch die briljante geest die dit bedacht heeft?”