Henri Hensen

Henri Hensen

Beëdigd informaticadeskundige en bestuurder Software Borg Stichting

Onze Minister snapt niet veel van de levensloop van broncodes

13 mei 2020

Software is gewoon een product, maar veel mensen zien dat nog niet zo. Ook onze Minister van Volksgezondheid die een corona appje dacht te bestellen, snapt nog niet veel van de product kenmerken. De zoektocht naar software, of de ontwikkeling ervan, begint met het vaststellen van de gewenste functionaliteit. Op basis daarvan wordt voor nieuwe software door een programmeur een broncode geschreven. Niet met een pen maar met behulp van software: de programmagenerator. In de broncode wordt exact bepaald welke gegevens worden vastgelegd en hoe deze worden bewerkt en gebruikt. Vervolgens wordt deze broncode en toebehoren met behulp van een vertaalprogramma, de compiler, omgezet in de digitale vorm. Die gaat in een apparaat van de gebruikers. En daar (of op afstand in een datacenter) worden gegevens vastgelegd. Het levenseinde van een broncode is aangebroken, als besloten wordt het onderhoud ervan te stoppen. Want software is zeer onderhoudsgevoelig. Voor het stoppen met onderhoud kunnen veel redenen zijn, maar één daarvan is, dat de software (eigenlijk de broncode) “versleten” is. 

Nu zijn tijdens de levensloop van software meestal grote gegevensbestanden opgebouwd. En als de broncode van de software waar dat mee gebeurd is, niet meer wordt onderhouden, wat gebeurt er dan met die gegevensbestanden? Dit is een belangrijke vraag, vanwege de bewaarplichten op gegevens (en vanwege de AVG ook de vergeetrechten). De bewaarplicht is al gauw zeven jaar na het jaar van de vastlegging, maar het kan afhankelijk van de aard van de gegevens ook wel veel langer zijn. En bewaren houdt ook in leesbaar kunnen maken.

Nu hoeft dit in veel gevallen helemaal geen probleem te zijn. Bijvoorbeeld als de “oude” software door dezelfde leverancier wordt vervangen door een nieuw pakket. Soms kan het nieuwe softwarepakket dan werken met de “oude” gegevensbestanden (downward compatible). Een andere methode die softwareleveranciers kunnen toepassen, is het schrijven van een conversieprogramma. Daarmee worden de “oude” gegevensbestanden omgezet naar een dataformaat waar de nieuwe software mee kan werken.

Maar nu de vaak onvoorziene situaties. Die ontstaan doorgaans in de relatie van licentiegever (softwareontwikkelaar) en licentienemer (softwaregebruiker). Soms komt aan die relatie een abrupt einde zodat het onderhoud stopt. De praktijk leert dat daar veel redenen voor zijn zowel aan de zijde van de licentiegever als de licentienemer. Als zo’n onvoorziene situatie ontstaat, heeft de licentienemer met zijn gebruiksrecht, uitsluitend op de digitale versie en dus niet op de broncode, een zwakke rechtspositie. Maar juist op het informatiesysteem van de softwaregebruiker rust de wet- en regelgeving. Die moet compliant zijn én blijven. In het kader van compliance is het dan van belang de beschikbaarheid van software goed geregeld te hebben.

Het is ook de vraag, als het gaat om belangrijke gegevens die moeten worden overgedragen aan een archief, of daarover is nagedacht. Niet alleen over de beschikbaarheid van de software om de gegevens te kunnen ontsluiten, maar ook over de kwaliteit van de gegevensdrager. En wat te denken over de rechten van derden op de software (de broncode). Bijvoorbeeld pandrecht?
Omdat software nog (te) vaak niet wordt gezien als een “gewoon” product, wordt ook over het levenseinde van dat product door belanghebbenden nog maar weinig nagedacht. Natuurlijk zijn er grote specialistische organisaties, die dat wel doen. Daar zit wel veel kennis over de verduurzaming van gegevensbestanden en zijn ook de daarvoor noodzakelijke financiële middelen aanwezig.

Maar bij de grote massa van gebruikers van informatiesystemen is er nog te weinig aandacht voor de eigenschappen van het product software. En dan krijgt compliance (want dit is een onderdeel daarvan) ook niet de aandacht die het wel nodig heeft.

Henri Hensen



Plaats uw reactie

Your email address will not be published. Required fields are marked *