Als versimpelen ons niet lukt?

Legacy-software groeit met 50 miljoen Lines of Code per dag. Elke dag weer. Dat belemmert vernieuwing in toenemende mate. Is dat omdat software-ontwikkelaars niet weten hoe software weer simpel te maken?

Een aantal jaar geleden pitchten wetenschappers tijdens de eerste bijeenkomst van de Legacy Coalitie (deel)oplossingen om legacy-software in de wereld fundamenteel aan te pakken. Om te beginnen bij Nederland, de Coalitie is namelijk mede geïnitieerd door de Dutch Digital Delta. De initiators van de bijeenkomst waren er van overtuigd dat je bij het oplossen van een groot probleem vooral de wetenschap moet inschakelen. Toehoorders kwamen uit het bedrijfsleven.

In juni 2016 mocht ik de tweede bijeenkomst bijwonen. Nu, in 2018, is de Coalitie vrijwel ter ziele omdat er geen enkel initiatief van wie dan ook door het bedrijfsleven werd overgenomen. De voorstellen van de wetenschap werden niet als behulpzaam ervaren.

De legacy groeit dus door. Met 50 miljoen Lines of Code per dag. De complexiteit van software groeit navernant door, omdat men niet de moeite neemt om bestaande software weer simpel te maken (refactoring). In het algemeen wordt software steeds onbegrijpelijker naarmate hij ouder wordt.

Legacy is in de basis een gevolg van blokkerende veranderingen. Het in het verleden vastgestelde pad wordt omgebogen waardoor de software fundamenteel moet worden aangepast. Dat komt omdat een leverancier stopt met het leveren van zijn software-hulpmiddelen, het bedrijf of de overheid zijn beleid  wijzigt, een bedrijf een nieuw pakket koopt of fuseert met een ander bedrijf.

Ik heb het van dichtbij mogen meemaken, bij de fusie van ABN en AMRO in 1991. Er ontstonden grote problemen met de toen aanwezige legacy-systemen én we vonden ook een oplossingsrichting: meta-compilers (meta-vertalers).  Die oplossing vonden we – na een wereldwijd onderzoek – trouwens om de hoek, bij het CWI in Amsterdam.

Met het CWI en aantal andere partijen werd een gesubsidieerd research project opgezet (Resolver) waaruit in 2000 een spin-off werd opgericht (de Software Improvement Group). De bedoeling was om de kwaliteit van de  legacy te meten. Dat is ook gelukt. De tweede, belangrijkere, doelstelling was om legacy automatisch te transformeren. Te versimpelen.  Van dit laatste is vrijwel niets terecht gekomen.

Na meer dan 25 jaar lijkt het automatisch transformeren van software nog steeds een onhaalbare kaart. De oorzaak ligt niet alleen in de problematiek zelf.  Nadat het Legacy-project werd gestopt sprong de wetenschap vol enthousiasme op de blockchain. Zelfs wetenschappers worden door hypes bevangen.

De trieste conclusie die we uit dit verhaal kunnen trekken is dat er op de korte termijn en als er niets fundamenteel gebeurt zelfs op de lange termijn een grote stagnatie in de softwareontwikkeling zal gaan optreden.

Dat roept voor mij de vraag op: als software-versimpelen een groot, zo niet onoplosbaar probleem is, wat moet er dan gebeuren?

Ik ben benieuwd naar de antwoorden.

1 dacht op “Als versimpelen ons niet lukt?”

  1. Ik heb geen oplossing maar ‘code voorkomen’ is i.e.g. wel een deel van de oplossing. Dat betekent tegengas richting requirements of tijdsdruk die ontwikkelaars dwingen ‘het maar op te lossen’ waar het zoeken naar een oplossing ‘(deels) buiten de software’ ook zou kunnen. Iedereen in een beetje programma kent hier de voorbeelden van.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *