Wat is een broncode escrow regeling?
Software speelt een steeds grote rol in veel aspecten van het leven. Ook bedrijven vertrouwen steeds meer op allerlei software bij het uitvoeren van bedrijf kritische processen. Deze afhankelijkheid brengt echter wel een risico met zich mee. Een broncode escrow regeling kan een belangrijk deel van dit risico wegnemen.
Het probleem
Veel bedrijven zijn sterk afhankelijk van software. In eerste instantie denk je dan wellicht aan kantoorsoftware, zoals Microsoft Office, Windows en browsersoftware. Er is echter nog veel meer software die bij bedrijven achter de schermen wordt gebruikt. Niet zelden speelt deze software een zodanig cruciale rol, dat het bedrijf eigenlijk niet meer zonder de software kan functioneren. Denk bijvoorbeeld aan de automatisering bij banken en verzekeringen of bij de overheid. Maar ook in de industrie wordt ontzettend veel geautomatiseerd. Complete fabrieken en productieprocessen worden tegenwoordig bestuurd door software. In deze gevallen is de gebruiker van zulke software dus een bedrijf.
Broncode en binaire bestanden
Het is op dit punt van belang een onderscheid te maken tussen de broncode en de binaire bestanden. De broncode is de volledige set van bestanden die door de programmeurs zijn gemaakt. Deze bestanden zijn in een bepaalde programmeertaal geschreven, bijvoorbeeld Java, C++, C#, Visual Basic of Delphi. Door deze broncode aan te bieden aan de compiler of ontwikkelomgeving, wordt de broncode geconverteerd naar binaire bestanden, zoals executables en DLL files. Deze binaire bestanden zijn de bestanden die gedistribueerd worden naar de gebruikers van de software. De broncode blijft juist in handen van de software leverancier.
Softwareleverancier
Software wordt veelal gemaakt door een externe partij. Naast het eenmalig kopen van de software is er vaak ook sprake van een onderhoudsaspect. Door de jaren heen worden er bijvoorbeeld problemen aan de software verholpen. En wanneer nodig worden er nieuwe functies aan de software toegevoegd, zodat de software up-to-date blijft met de eisen die er vanuit het klantbedrijf aan gesteld wordt. Denk bijvoorbeeld maar aan de langere IBAN bankrekeningnummers, het jaar 2000 en de euro. Al die zaken hebben in veel verschillende softwarepakketten tot aanpassingen geleid. De gebruiker koopt dus meestal een recht of licentie om de gecompileerde bestanden te gebruiken. De broncode blijft echter in het beheer van de softwareleverancier.
Afhankelijkheid met de softwareleverancier
Het probleem wat hier ontstaat, is de mate waarin de softwaregebruiker afhankelijk is van de softwareleverancier. Er kan een situatie ontstaan waarin de leverancier de software niet langer kan of wil onderhouden, bijvoorbeeld door een faillissement. Maar er kunnen ook andere redenen zijn. Wellicht wil de leverancier geen energie meer steken in de product, vanwege andere prioriteiten. De softwaregebruiker heeft op dat moment over het algemeen geen acuut probleem, maar in de toekomst kan er potentieel een groot probleem ontstaan. Zoals wanneer er vervelende bugs ontdekt worden of bij het ontstaan van nieuwe eisen aan de software die onmisbaar zijn. De gebruiker heeft normaal gesproken geen toegang tot de broncode en kan dus zelf niets aan de software veranderen.
Grootte van de gebruiker en de leverancier
Veel mensen denken bij een gebruiker aan één persoon en bij een softwareleverancier aan een groot bedrijf. Zoals bij een particulier thuis, in het geval van Windows of Office. Maar bij veel specialistische software is dat niet het geval. De gebruiker is bijvoorbeeld een bedrijf van honderden of zelfs duizenden werknemers, terwijl de softwareleverancier een bedrijf van enkele tientallen werknemers is. Hier ontstaat dus de situatie waarin een groot bedrijf afhankelijk wordt van een ander, wellicht veel kleiner bedrijf. In principe is de grootte van de softwareleverancier niet van belang, maar het probleem van afhankelijkheid wordt er wel duidelijker door. Want ook als de leverancier een groot bedrijf is, is er nog steeds sprake dezelfde afhankelijkheid.
Het probleem van tegengestelde belangen
Het is dus belangrijk voor de gebruiker van de software een garantie te hebben dat er altijd noodzakelijk onderhoud aan de software verricht kan worden. De leverancier wil echter de broncode niet op voorhand overhandigen. Dit omdat de broncode van de software erg waardevol is. In het programmeren van de broncode zijn vaak manjaren werk gestoken en daarom wil de leverancier deze geheim houden. Als de broncode verspreid wordt, is het relatief eenvoudig voor een andere partij om zelf ook met een vergelijkbaar software pakket te komen, zonder daar dezelfde tijd in te hoeven steken. Dus aan de ene kant wil de leverancier de broncode voor zichzelf houden, maar aan de andere kant wil de gebruiker de software niet kopen, als er een risico bestaat dat de leverancier stopt met het onderhoud van de software.
De oplossing: Escrow
Als oplossing voor dit probleem is de broncode escrow regeling in het leven geroepen. Bij een escrow regeling is er naast de gebruiker en de leverancier nog sprake van een derde partij: de escrow agent. De escrow agent is een neutrale partij tussen gebruiker en leverancier en heeft als taak het beheren, controleren en uitvoeren van de escrow regeling die tussen de drie partijen is overeengekomen.
Broncode Escrow regeling
De broncode escrow regeling bestaat er meestal uit dat de broncode door de leverancier wordt overhandigd aan de escrow agent. De escrow agent beheert deze broncode in een speciaal depot, waar niemand anders toegang tot heeft. In de regeling is vastgelegd onder welke voorwaarden de gebruiker toegang krijgt tot de broncode. Typisch voorbeeld is een faillissement van de leverancier of andere redenen waarom de leverancier de software niet langer ondersteund.
Escrow agent
De escrow agent heeft toegang tot de broncode in het depot, daarnaast is de gebruiker nu ook afhankelijk geworden van de escrow agent. Om die redenen moeten er strenge eisen aan de escrow agent worden gesteld. De escrow agent is zelf meestal ook een bedrijf en kan dus ook failliet gaan. Daarom werken escrow agenten vaak samen met notarissen, zodat de gehele escrow regeling juridisch sluitend kan worden opgezet. Een notaris kan niet failliet gaan en daardoor blijft de escrow regeling altijd intact. Daarbij zijn curatoren zijn verplicht regelingen die notarieel zijn vastgelegd te handhaven.
Technische kennis van de escrow agent
Broncode in een depot plaatsen dat beheerd wordt door een escrow agent klinkt op zichzelf heel eenvoudig. Er komt echter heel wat bij kijken. In de meest eenvoudige vorm zou een leverancier een datadrager kunnen aanleveren, welke in een kluis gelegd wordt door de escrow agent. In de praktijk is dit echter niet voldoende. Er moet immers gegarandeerd zijn, dat op basis van de gegevens in het depot, de software volledig te reconstrueren is, zoals de gebruiker deze gekocht heeft. Dit betekent dus ook dat het duidelijk moet zijn hoe de broncode gecompileerd moet worden zodat de juiste binaire bestanden worden verkregen.
Verkrijgen van de juiste binaire bestanden
Om de binaire bestanden te genereren moet het op zijn minst bekend zijn welke versies van ontwikkelomgeving en besturingssystemen moeten worden gebruikt. Daarnaast moet bepaald worden of de binaire bestanden die verkregen worden op basis van de informatie in het depot ook daadwerkelijk overeenkomen met de software waar de gebruiker mee werkt. Pas dan kan de gebruiker zeker zijn dat bij wegvallen van de leverancier er nog steeds gerekend kan worden op mogelijk verder onderhoud aan de software.
Samenwerking tussen escrow agent en de leverancier
Om dit alles mogelijk te maken moet de escrow agent dus inhoudelijk op de hoogte zijn van de broncode, ontwikkelomgeving en relevante zaken daaromheen. De hoeveel tijd die met het controleproces gemoeid is, is sterk afhankelijk van hoe goed de software leverancier zijn zaken intern op orde heeft. Aanwezigheid en kwaliteit van documentatie vanuit de leverancier over hoe de software gecompileerd moet worden kan hierbij erg helpen. Meestal is er overleg en samenwerking nodig tussen de escrow agent en de leverancier om ervoor te zorgen dat de escrow agent alles helder heeft en de software kan compileren op basis van de broncode. Daarnaast moet dit alles ook voldoende duidelijk vastgelegd worden in het depot, zodat dit proces ook jaren later kan worden herhaald, zonder hulp van de leverancier.
De kosten van een escrow regeling
De kosten van een goede escrow regeling kan behoorlijk oplopen. Maar daar staat tegenover dat de belangen van de betrokken partijen ook groot zijn. De kosten worden vaak door beide partijen gedeeld. In sommige gevallen heeft een leverancier meerdere gebruikers die allemaal de zekerheid van een escrow regeling willen. Zolang het om dezelfde software gaat is het mogelijk een regeling te maken waarbij meerdere gebruikers bediend kunnen worden. Dat scheelt veel werk voor de escrow agent, waardoor de kosten per gebruiker lager zullen uitvallen.
Conclusie
De broncode escrow regeling is een goede manier om zowel de belangen van de gebruiker als de leverancier te behartigen. In de overeenkomst wordt voor alle partijen duidelijk vastgelegd onder welke voorwaarden de escrow regeling wordt uitgevoerd. Het is wel zaak een betrouwbare en technisch goed onderlegde derde partij te gebruiken, waarbij alles notarieel wordt vastgelegd.
Lees verder