Het enige wat Jos van den Oever wil, is af en toe naar een Tweede Kamerdebat op zijn telefoon kijken, maar dat kan niet. Daarom vocht hij zich in de afgelopen twee jaar helemaal naar de Raad van State. Zijn strijd staat symbool voor de worsteling van de Nederlandse overheid met opensourcesoftware en beschikbare broncode. Woensdagochtend dient de zaak van Van den Oever bij de hoogste algemene bestuursrechter, de Bestuursafdeling van de Raad van State.
Jos van den Oever gebruikt Firefox OS. Toegegeven, hij is een van de weinigen, maar het werkt wel. Voor werk gebruikt hij LineageOS, en hij wil een PinePhone met Plasma Mobile erop, want, zoals hij zelf zegt: "Ik ben een KDE-man." Bovendien, zegt hij, is het belangrijk dat het besturingssysteem van zijn telefoon te bestuderen en aan te passen is. Het mag duidelijk zijn: Van den Oever houdt van opensourcesoftware. Hij wil niet aan iOS, of aan Android met alle Google-diensten, en gebruikt Linux op zijn pc, maar loopt daarbij soms tegen problemen aan. Een van die problemen draait om de Debat Direct-app.
Debat Direct is een app die is gebouwd door het bedrijf Videodock in opdracht van de Tweede Kamer. Met de app is het mogelijk om debatten in het parlement live te bekijken of achteraf terug te kijken. Om de app te gebruiken, moet je wel een besturingssysteem van Apple of Google gebruiken. Als je dat niet wil, zoals Van den Oever, heb je pech. Van den Oever is het daar niet mee eens en heeft al sinds 2018 een procedure lopen waarbij hij toegang wil hebben tot de broncode van de app. Die wil hij dan reverse-engineeren om te gebruiken op zijn eigen telefoon. Het gekke is dat een groot deel van de broncode al lang openbaar is, maar daar kan Van den Oever op dit moment niets mee. Hij pleit voor meer open software en vrij beschikbare broncode bij de Nederlandse overheid.
Meer openheid
De overheid heeft een moeizame relatie met ict. Grote projecten gaan regelmatig fout en de kennis over technologie in de Kamer is niet al te best. Toch lijken politici vaak ambitieus te zijn op dit gebied, bijvoorbeeld als het gaat om broncode. Het pleiten voor openbare broncode is niet langer voorbehouden aan de Piratenpartij of uitzonderingen als D66'er Kees Verhoeven. Steeds vaker gaan er binnen de overheid geluiden op om alle code voortaan openbaar te maken. Sinds kort gaat dat gepaard met discussie over algoritmes. Het kabinet viel vanwege de toeslagenaffaire, die deels was veroorzaakt door onduidelijke algoritmes die Nederlanders onterecht als fraudeur aanmeldden. Sindsdien willen veel partijen een toezichthouder voor algoritmes en meer openbaarheid ervan. Broncode wordt daar soms bij genoemd, al gaat die discussie nog veel langer terug, langer zelfs dan tot 2018, toen Van den Oever zijn strijd rondom Debat Direct begon.
Hij strijdt al sinds januari van dat jaar voor het openbaar maken van de code van een overheidsapp. Of beter gezegd, voor de mogelijkheid om die code ook daadwerkelijk te kunnen gebruiken. Debat Direct is er niet voor Linux of alternatieve mobiele besturingssystemen. In 2018 schreef hij een brief aan Kamervoorzitter Arib met een verzoek om de broncode. Bijna een jaar later werd zijn verzoek afgewezen en begon een langlopend juridisch traject, dat hij nauwkeurig heeft gedocumenteerd op broncode.org.
Wet hergebruik van overheidsinformatie
Van den Oever beroept zich op de Wet hergebruik van overheidsinformatie om de broncode te kunnen bekijken
Van den Oevers visie over de openbaarheid van broncode komt deels voort uit zijn werk bij de stichting NLnet, maar hij beroept zich in deze zaak op meer dan alleen een filosofie rondom de openheid van de overheid. "Er is een wettelijke onderbouwing waardoor de overheid de broncode zou moeten geven", zegt hij. Dat is de Wet hergebruik van overheidsinformatie. Die stelt dat als informatie openbaar is, burgers de 'herbruikbare vorm' moeten kunnen kunnen opvragen. Van den Oever geeft zelf het voorbeeld van een grafiek in een pdf-document. Daarvan kan een burger onder de Who de onderliggende data opvragen in 'het formaat zoals de informatie bij de met een publieke taak belaste instelling aanwezig is' - ofwel bijvoorbeeld een spreadsheetformaat. "In de memorie van toelichting op die wet wordt uitgelegd waar dat voor bedoeld is. Als er iets gemaakt wordt met geld van de overheid, moet de informatie daarvan voor zoveel mogelijk toepassingen te gebruiken zijn." Met andere woorden: Van den Oever wil de herbruikbare vorm van data achter de app hebben om daar zelf mee aan de slag te gaan.
De Wet hergebruik van overheidsinformatie is niet met broncode in het achterhoofd in het leven geroepen. Dat hoeft ook niet; de overheid pleit al jaren voor het gebruik van opensourcesoftware. Het is een sentiment dat soms nieuw lijkt; bij de verkiezingen van woensdag pleiten verschillende partijen ervoor dat de overheid meer broncode openbaar moet maken, bleek uit een inventarisatie van Tweakers.
Al in april 2020 werd open broncode de norm bij de overheid. Toenmalig staatssecretaris Raymond Knops van Binnenlandse Zaken schreef toen een brief aan de Tweede Kamer over precies dat onderwerp. Kern van zijn boodschap is een 'open, tenzij...'-beleid dat de overheid in de toekomst gaat voeren. "Ik sta achter het principe dat software die met publieke middelen is ontwikkeld, zoveel mogelijk aan de samenleving wordt teruggegeven", schreef Knops. Het 'tenzij' kan dan duiden op bijvoorbeeld veiligheidsbelangen of als er 'vertrouwelijke werkwijzes van de overheid, zoals opsporing en toezicht, worden geschaad'.
Er is open source en er is open source
Met alleen het nieuwe wetsvoorstel is de zaak niet meteen opgelost. Knops' plan volgt na decennia van plannen en wensen om code openbaar te maken; het is niet alsof dat nu ineens een nieuwe ingeving is. De vraag is dan ook waarom dat niet eerder is gebeurd. Nico Rikken van de Free Software Foundation Europe, die Van den Oever bijstaat tijdens de zaak, denkt dat het vooral een managementprobleem is. Code openbaar maken heeft namelijk heel wat voeten in de aarde en levert volgens hem niet per se veel op. "De situatie rondom CoronaMelder is een goed voorbeeld van hoe je een app samen met een betrokken community bouwt", zegt hij tegen Tweakers. CoronaMelder is daarin wel een uitzondering; bij het gros van de softwareprojecten zal niet snel zo'n community ontstaan.
/i/2003711706.png?f=imagenormal)
'Open source maken van code' betekent meer dan dat je alleen de code ergens online gooit en vervolgens klaar bent en koffie kunt gaan drinken. Je moet in ieder geval altijd door de code heen lopen om te kijken of er geen wachtwoorden of persoonsgegevens zijn achtergebleven. Hetzelfde geldt voor de geschiedenis van code. Dat kost al tijd en er is nog een tweede aspect. Rikken zegt dat het zeker mogelijk is om code openbaar te maken - vandaar dat hij ook bij de FSFE werkt en Van den Oever bij staat - maar hij legt ook uit waarom het voor sommige organisaties moeilijk te regelen is. "Sommige overheidsinstanties zullen zo best denken dat ze de code open publiceren as is, omdat we gewoon transparant willen zijn. Een echt opensourceproject kost echter tijd. Je moet daar een community omheen bouwen. Dat betekent dat je regels moet opstellen en afspraken moet maken. Denk bijvoorbeeld aan wat je wil dat er gebeurt met pull requests, hoe lang je erover doet voordat die worden opgepakt. In zulke projecten moet je investeren voordat je ermee aan de slag kunt gaan."
Dat kost tijd die zowel ontwikkelaars als ambtenaren niet altijd willen en kunnen besteden. Voor een belangrijke en interessante app zoals CoronaMelder, met veel maatschappelijke en technisch ingewikkelde vraagstukken, is het opzetten van en werken met zo'n community een mooie uitdaging. Er zijn echter meer dan genoeg voorbeelden waarbij een app niet dat momentum krijgt. Rikken noemt parkeersystemen in lokale steden en platforms die milieurapporten categoriseren. "Wie zit er te wachten op een systeem om parkeerbeleid af te dwingen dat bovendien vrij specifiek is voor Nederland? Als daar geen community voor is, dan nemen veel overheidsinstellingen niet de moeite de code te publiceren." In Rotterdam werd bijvoorbeeld software ontwikkeld voor milieuzones. Een ambtenaar die de software wilde delen met de gemeente Amsterdam zag een actieve community als voorwaarde voor het publiceren van de broncode. Maar omdat dat niet gegarandeerd kon is het maar de vraag of de software echt openbaar wordt. Rikken: "Die drempel was er niet geweest als men vanaf het begin de broncode al vrij beschikbaar had gesteld."
Bedrijven
Bij opensourcesoftware is het belangrijk een community op te bouwen, maar dat is moeilijk
Er zit ook veel verschil tussen het openbaar maken van bestaande code en van nieuw te schrijven code. Dat komt grotendeels doordat de overheid veel te maken heeft met externe bedrijven. Hoewel de overheid de afnemer en dus de eigenaar van de code is, kan een ontwikkelaar er niet zomaar toe worden verplicht om bestaande code op internet te gooien. Zoals Rikken het zegt: "Dat is toch alsof je vraagt naar het geheim van de smid." Het zou weliswaar best kunnen om die code te openbaren, maar je jaagt bedrijven tegen je in het harnas waarmee de overheid soms al jarenlang samenwerkt.
Om die reden is het ook makkelijker om nieuwe code in de toekomst openbaar te maken dan oude, bestaande code met terugwerkende kracht op GitHub te publiceren. Rikken: "Met een nieuwe aanpak zijn de spelregels vooraf duidelijk. Anders zeg je tegen die bedrijven: Bedankt dat je ons twintig jaar lang hebt geholpen, maar nu gaan we het ineens anders doen."
In beroep
Er lijken dus genoeg redenen te zijn om ook de Debat Direct-code achter te houden. Opvallend is wel dat de Tweede Kamer zich niet beroept op die redenen in de zaak van Van den Oever. Het verzoek werd afgewezen omdat de Tweede Kamer vond dat de informatie niet openbaar was. Bovendien valt de Tweede Kamer niet onder de Wet openbaarheid van bestuur en is het niet mogelijk documenten op te vragen die nog niet openbaar zijn. Van den Oever redeneert dat de apps openbaar zijn en dat dus de overheidsalgoritmes openbaar zijn. "De broncode is de herbruikbare variant van die algoritmes en is dus op te vragen." Daarnaast zei de Tweede Kamer dat openbaarmaking 'de veiligheid van de Staat
zou kunnen schaden.'
Wat uiteindelijk volgde, was een lange discussie die zich voornamelijk richtte op juridische grondslagen en semantiek. De discussie werd technischer van aard. Zo voert de Tweede Kamer in een van de stukken aan dat JavaScript gecompileerd moet worden voordat een computer het kan uitvoeren.
"Uiteindelijk was hun belangrijkste argument: broncode is niet hetzelfde als de app", vertelt hij, en die app was openbaar. Daarmee bedoelen ze dat de code in de app geobfusceerd is: de originele functienamen en commentaarregels zijn verwijderd. Die oorspronkelijke vorm van de algoritmes, de broncode, heb je nodig om een app te kunnen hergebruiken. Als ik die niet nodig had, had ik het hele beroep op de Who niet hoeven doen." De Tweede Kamer argumenteerde ook dat Debat Direct bestaat uit twee delen: zowel de app als de code die serverside draait. Die vormen één geheel en het zou onveilig zijn die informatie openbaar te kunnen maken, stelde de Kamer begin 2020 in een rechtszaak, waar Van den Oever nu tegen in beroep is gegaan.
Licenties
Het gekke aan Van den Oevers verhaal is dat het eigenlijk grotendeels overbodig is. De broncode van de app is namelijk gewoon beschikbaar, ontdekte hij een tijd geleden. Door na de uitspraak van de rechtbank in Overijssel onder de motorkap van de site te kijken, vond Van den Oever alle benodigde code, via de bijbehorende source maps. Die zijn nodig om de originele JavaScript in de code te zien. Die code wordt vaak verborgen, bijvoorbeeld om software sneller te maken of om bepaalde delen geheim te houden voor concurrenten. Van den Oever hoefde die source maps dus niet op te vragen en had op die manier veel van de informatie om zijn app te maken. Het was het ontbrekende puzzelstukje.
De code staat gewoon online, maar de juiste licentie ontbreekt nog
Zelfs nadat hij alle nodige informatie eindelijk in bezit had, vond Van den Oever niet dat hij klaar was. Sterker nog, het gaf hem alleen maar meer reden om door te gaan met zijn procedure. "Toen ik het zag, heb ik gelijk een appelschrift naar de Raad van State gestuurd. Ik schreef dat de meeste broncode gewoon al online staat en dat een licentie nog ontbreekt."
Zo'n licentie is nodig om de broncode niet alleen te kunnen opvragen en doorlezen, maar ook om die te kunnen hergebruiken. Die ontbreekt nu nog en niet alleen voor Debat Direct. De Tweede Kamer biedt de code aan onder een Creative Commons BY-ND-licentie, zegt Van den Oever, al staat er op de website dat die alleen van toepassing is op tekst. Met een CC-BY-ND-licentie mag een gebruiker de code gebruiken, maar geen aangepaste versie verder distribueren. Van den Oever wil dan ook dat de Raad van State een andere licentie verplicht stelt, die hergebruik wél mogelijk maakt.
Licenties voor opensourcesoftware zijn er in veelvoud, zegt Nico Rikken van de Free Software Foundation Europe. De Creative Commons BY-ND-licentie, zegt hij, is 'niet typisch' voor software zoals Debat Direct. Hij verwijst naar de definitie die de Open Source Initiative-stichting hanteert. Die bestaat uit tien regels waaraan vrije software zou moeten voldoen. "Creative Commons valt niet binnen die definitie", zegt hij. "Je moet code niet alleen kunnen lezen, je moet het ook mogen gebruiken. Dat is de grap, sommige ontwikkelaars zetten code op GitHub en zeggen 'nu kun je het gebruiken', maar zonder licentie is dat niet hoe het werkt."
Van de zeventig of tachtig gangbare softwarelicenties is volgens Rikken 'een handvol' geschikt om te gebruiken, zoals de MIT-licentie of GPL. Uiteindelijk is de kern van Van den Oevers zaak niet puur en alleen de gebruikte licentie, zegt Rikken. "Want de Tweede Kamer doet het voorkomen alsof de broncode helemaal niet eens gepubliceerd is."
De toekomst
De overheid probeert al twintig jaar om opensourcesoftware te gebruiken, al sinds de motie-Vendrik in 2002 werd aangenomen. Dat is lang. Van den Oevers zaak richt zich ook voornamelijk op een uitzondering. De zaak is niet symbolisch en gaat waarschijnlijk niet leiden tot precedentwerking. Toch lijken dingen langzaam te veranderen, vindt Nico Rikken. Hij ziet een cultuurverschil met vroeger. "Met het nieuwe wetsvoorstel van Knops is er een volwassener blik op softwareontwikkeling. De kwestie wordt nu strategischer benaderd dan met de idealistischere houding die er vroeger was. Toen was de houding: "Hoe vet zou het zijn als we dit allemaal met elkaar konden delen." Er was een veel socialer element, maar nu wordt er veel pragmatischer gekeken. Er zijn veel meer bedrijven die open software aanbieden."
Vanaf 2021 moet alle nieuwe software van de overheid openbaar zijn. Dat lijkt dus de goede kant op te gaan, maar er zijn wat kanttekeningen. Het gaat om precies hetzelfde probleem als wat Rikken eerder schetste. Overheidsorganisaties moeten 'per geval schatten of de maatschappelijke baten opwegen tegen de kosten van het vrijgeven van de broncode', schrijft staatsecretaris Knops in zijn brief. Die wijst daarbij precies naar de investeringen die openbaarmaking met zich meebrengt. De tijd moet leren wat dat in de praktijk gaat betekenen.
En Van den Oever? Die heeft bijna genoeg informatie om een app te kunnen maken voor zijn Purism-telefoon. Waarom dan toch de zaak die woensdag speelt? Hij heeft nog meer broncode nodig en via een licentie moet hij toestemming hebben om die te mogen hergebruiken. "Bovendien kan de Tweede Kamer de api aanpassen en dan moet ik de broncode opnieuw opvragen."
En, 'omdat de Kamer zich tegen de wil van haar Kamerleden afzet', komt er toch wat activisme naar boven. "Ik wil dat de Tweede Kamer zegt: Wij zijn een publieke instantie, we verzorgen communicatiekanalen met het parlement en we willen daarin zo transparant mogelijk zijn. Dat doet ze op veel andere vlakken al. Kijk maar de opendataportal. Uit al dit blijkt dat de zaak zeker nog nodig is: ik heb nog meer broncode nodig en via een licentie moet ik toestemming hebben om die te mogen hergebruiken. De Tweede Kamer, het centrum van onze democratie, is niet transparant."
Uiteindelijk draait de zaak dus toch om iets fundamenteels: hoe open mag en moet de overheid zijn? Wat de Raad van State daarvan vindt, horen we over een aantal weken.