Code-eigendom en de mogelijkheid om van leverancier te wisselen zijn verschillende dingen. Je kunt rechten hebben op maatwerkcode en toch belangrijke bestanden of toegang missen. Omgekeerd kan een licentie onder voorwaarden ruimte geven voor onderhoud door een andere partij. Bekijk daarom samen wat je juridisch mag, wat je feitelijk ontvangt en wat een opvolger nodig heeft. Onze gids over custom software plaatst die afspraken in het hele bouwtraject; hier werken we de overdracht uit.
Wat betekent code-eigendom juridisch en praktisch?
In een gesprek over code-eigendom lopen meerdere vragen door elkaar. Wie heeft de rechten op de gemaakte software? Wie kan bij de bronbestanden? En wie kan de toepassing bouwen, starten en onderhouden? Eén antwoord dekt niet alle vragen.
De overheidsuitleg over auteursrecht onderscheidt een licentie van overdracht: een licentie geeft gebruikstoestemming, terwijl auteursrecht bij de rechthebbende blijft; bij overdracht gaan afgesproken rechten over. Laat vastleggen welke route voor jouw opdracht geldt, op welke onderdelen en onder welke voorwaarden. Dit artikel is een bespreeklijst voor de opdracht, geen vervanging van beoordeling van je contract.
Voor bestaande bibliotheken en diensten kunnen andere afspraken gelden dan voor de code die voor jou wordt geschreven. Open source betekent evenmin dat er geen voorwaarden zijn. De RVO-brochure over digitale innovatie beschrijft dat ook open-sourcecode auteursrechtelijk beschermd kan zijn en licentievoorwaarden heeft. Vraag daarom een overzicht van zulke onderdelen en de voorwaarden die relevant zijn voor gebruik, wijziging en overdracht.
Welke vormen van afhankelijkheid moet je uit elkaar houden?
Een afhankelijkheid is niet automatisch een slechte keuze. Je kunt bewust kiezen voor een beheerde dienst omdat je team het beheer niet zelf wil doen. Het gaat erom dat je begrijpt welke keuzeruimte overblijft en wat verandering vraagt.
| Onderdeel | Mogelijk probleem bij vertrek | Wat vraag je vooraf? |
|---|---|---|
| Rechten | Onduidelijk of een opvolger wijzigingen mag maken | Welke rechten gelden voor welke code? |
| Bronbestanden | Een onderdeel ontbreekt of is niet toegankelijk | Welke versie en bijbehorende bestanden worden geleverd? |
| Afhankelijkheden | Een privébibliotheek of betaalde component ontbreekt | Hoe blijft die beschikbaar en welke voorwaarden gelden? |
| Gegevens | Export mist bijlagen of relaties tussen records | Wat bevat de export en hoe wordt die gecontroleerd? |
| Omgeving | Instellingen bestaan alleen op de huidige server | Hoe worden omgeving en installatie beschreven? |
| Kennis | Alleen de oorspronkelijke maker kent afwijkende werkwijzen | Welke beslissingen en beheerhandelingen zijn vastgelegd? |
Een bekend framework is op zichzelf geen bewijs dat dit goed geregeld is. De toepassing kan nog steeds verwijzen naar een niet-beschikbare bibliotheek of een handmatig ingestelde server. Andersom hoeft een specialistisch onderdeel geen onoverkomelijk probleem te zijn als een andere partij toegang, rechten en documentatie heeft.
Kijk ook naar koppelingen. Een andere beheerder moet weten welke gegevens worden uitgewisseld en hoe fouten zichtbaar worden. De uitleg over software koppelen helpt om die inhoudelijke afspraken te herkennen. Alleen een lijst API-sleutels is daarvoor niet genoeg.
Wat leg je vast voordat het project begint?
Vraag om een beschrijving van de oplevering. Benoem de maatwerkcode, bijbehorende documentatie en configuratie, maar ook wat niet wordt overgedragen. Een leverancier kan bijvoorbeeld een eigen herbruikbaar onderdeel aanbieden met een afzonderlijke licentie. Maak duidelijk wat dat betekent als een andere partij later onderhoud doet.
Bespreek toegang per dienst. Wie kan namens jouw bedrijf accounts herstellen, kosten inzien en een nieuwe beheerder toegang geven? Dat hoeft niet te betekenen dat iedere medewerker overal beheerdersrechten krijgt. Kies een bevoegde verantwoordelijke en een bruikbare herstelprocedure, passend bij de gebruikte dienst.
Leg daarnaast de hulp bij beëindiging vast: welke informatie wordt geleverd, hoe die wordt overgedragen en hoe extra werkzaamheden worden begroot. Laat termijnen aansluiten op het proces en de overeenkomst. Een zelfgekozen deadline maakt een aanspraak niet automatisch afdwingbaar.
Hoe toets je of het overdrachtspakket bruikbaar is?
Laat een bevoegde ontwikkelaar die niet dagelijks aan de toepassing werkt een proef uitvoeren in een afgescheiden testomgeving. Het doel is niet direct vertrekken, maar ontbrekende informatie vinden terwijl de huidige leverancier nog kan helpen.
Geef daarvoor een herkenbare softwareversie, installatie-instructies, benodigde onderdelen en geschikte testgegevens. Spreek af welke taken de proef moet aantonen. Kan de ontwikkelaar de toepassing starten, inloggen met verschillende rollen en een relevante verwerking doorlopen? Noteer iedere handmatige uitleg die alsnog nodig blijkt en voeg die toe aan het overdrachtspakket.
Gebruik een fictief voorbeeld: een offerteapplicatie start na overdracht wel, maar maakt geen PDF. De sjablonen blijken buiten de aangeleverde code te staan. De conclusie is dan niet dat alle code waardeloos is, maar dat sjablonen en hun instellingen moeten worden toegevoegd en opnieuw getest. Een geslaagde startpagina had dit gemist.
Test ook een herstelhandeling die voor jouw proces telt. Een verkeerde import terugzetten vraagt andere informatie dan een nieuwe versie installeren. Spreek af wie de uitkomst beoordeelt en welke tekortkomingen eerst opgelost moeten worden. Een proef is pas nuttig als bevindingen worden opgevolgd.
Welke gegevens en accounts vragen aparte aandacht?
Een codekopie bevat niet vanzelf de actuele bedrijfsgegevens. Vraag welke gegevens in de database zitten, waar bestanden staan en welke informatie bij andere diensten leeft. Controleer bij een export ook bijlagen, verwijzingen en de betekenis van velden. Een bestand dat opent, is nog niet hetzelfde als gegevens die een opvolger juist kan gebruiken.
Maak een overzicht van diensten met een verantwoordelijke, de benodigde rollen en de manier waarop toegang wordt hersteld. Neem domeinnamen, hosting, e-mail, betalingen en andere gebruikte diensten mee. Controleer per leverancier wat overdracht of vervanging van een account daadwerkelijk inhoudt.
Geheimen zoals API-sleutels en wachtwoorden vragen een beveiligde overdracht. Zet ze niet in een algemeen document of in de broncode. Bespreek wie nieuwe toegang uitgeeft en wanneer oude toegang wordt ingetrokken. Bij een overstap kan vervanging van sleutels nodig zijn; plan dat zodat koppelingen blijven werken.
Verwijderen van gegevens bij vertrek vraagt eveneens afspraken. Maak onderscheid tussen werkbestanden, back-ups en gegevens die onder een bewaarplicht vallen. Laat de betrokken partijen bepalen wat mag of moet worden bewaard. Een algemene belofte dat iedere kopie direct verdwijnt kan te veel beloven.
Hoe pak je een overstap aan als er al afhankelijkheid is?
Begin met een inventarisatie, niet met het afsluiten van de bestaande omgeving. Verzamel de overeenkomst, beschikbare bestanden en een overzicht van systemen en contactpersonen. Vraag een opvolger welke onderdelen onderzocht moeten worden voordat die verantwoordelijkheid kan overnemen.
Maak vervolgens een overdrachtsplan met controlepunten. Wanneer kan de nieuwe omgeving worden beoordeeld? Hoe worden recente wijzigingen in de gegevens meegenomen? Wie beslist dat de overstap doorgaat en wat gebeurt er als een controle mislukt? De antwoorden bepalen de volgorde en planning.
Een periode met twee omgevingen kan helpen, maar vraagt duidelijke afspraken over waar wijzigingen worden gedaan. Twee onafhankelijk bijgewerkte databases leveren geen eenvoudige terugval op. Beschrijf daarom hoe je gegevens consistent houdt en wat teruggaan naar de oude omgeving praktisch betekent.
Begroot zowel onderzoek als overdracht en eventuele aanpassingen. In custom software kosten staat hoe je eenmalige werkzaamheden en terugkerend beheer apart zet. Er is geen algemeen migratiebedrag dat ontbrekende informatie of afwijkende techniek goed voorspelt.
Wanneer heeft escrow nog een rol?
Software escrow kan relevant zijn voor materialen die je niet direct krijgt, of voor een specifieke continuïteitsafspraak. Het gaat om bewaring en toegang onder afgesproken voorwaarden. Bekijk welke afhankelijkheid daarmee wordt aangepakt en welke blijft bestaan.
Bijvoorbeeld: broncode kan beschikbaar komen terwijl een benodigde externe dienst ontbreekt. Dan is een bewaarafspraak alleen geen herstelplan. Beoordeel de regeling op de toepassing die je moet kunnen voortzetten, niet op een vaste grens in projectbudget.
Bij TopDevs is en blijft de maatwerkcode van jou, met technische documentatie en overdracht. Ook dan blijven concrete afspraken over gegevens, toegang en gebruikte diensten nodig. Eigendom is geen belofte dat iedere toekomstige overstap zonder werk of kosten kan.
Hoe begin je concreet?
Maak één overzicht met drie kolommen: wat je nodig hebt, wat aantoonbaar beschikbaar is en wat nog moet worden uitgezocht. Begin bij een belangrijke taak in je toepassing en volg de betrokken code, gegevens en diensten. Laat ontbrekende informatie vervolgens door de verantwoordelijke partij aanvullen.
Ga je maatwerk software laten maken, bespreek deze punten vóór de opdracht. Is er al een toepassing, gebruik ze om een overdrachtsproef af te bakenen. Plan een gesprek om de technische afhankelijkheden door te nemen.




