Iedereen mocht meebouwen aan de CoronaMelder

Open source Technisch gezien is de CoronaMelder nagenoeg af. De ontwikkeling van deze corona-app was voor het eerst open source. Hoe verliep dat?

Bij de appathon in april werden zeven voorgangers van de CoronaMelder getest en te licht bevonden.
Bij de appathon in april werden zeven voorgangers van de CoronaMelder getest en te licht bevonden. Foto Marco de Swart / EPA

Het nieuwe plan om een corona-app te ontwikkelen is op 8 mei nog maar een dag oud als het eerste diepgaande meningsverschil tussen vrijwilligers en het ‘bouwteam’ van het ministerie van Volksgezondheid een feit is.

Een dag eerder heeft minister Hugo de Jonge (Volksgezondheid, CDA) besloten de app, bedoeld om gebruikers te waarschuwen na contact met coronavirusdragers, niet door een groot IT-bedrijf achter gesloten deuren te laten ontwikkelen. Na het mislukken van de appathon - een weekend half april waarin zeven voorstellen voor een corona-app werden beproefd en te licht bevonden - gaat een nieuw bouwteam met experts van binnen en buiten de overheid de corona-app zelf ontwikkelen. Zij gaan volledig open source werken, belooft de minister. Dat betekent dat de broncode openbaar wordt en iedereen kan bijdragen. Zoiets is nieuw voor de overheid, zeker voor een IT-project van deze schaal, en onder deze druk.

De app is inmiddels technisch gezien zo goed als klaar. Volgende maand wordt het hele systeem nog getest in twee GGD-regio’s. Op 1 september wordt, als alles goed gaat, de CoronaMelder landelijk uitgerold. Hoe verliep de ontwikkeling?

Een mobiele telefoon met een testversie van de CoronaMelder. Die moet, als alles goed gaat, per 1 september landelijk beschikbaar zijn. Foto Rob Engelaar / ANP

„Het is een beetje het kerstwonder van 2020”, zegt Jelle Licht, een van de IT-experts die zich met de corona-app bemoeide. Zij komen samen in een chatkanaal van Code for NL, een stichting van sociaal geëngageerde techneuten, met een voorliefde voor opensourceprojecten. Eerst om de voorstellen van de appathon te bekritiseren, later in de hoop iets te kunnen bijdragen aan de corona-app.

Bij de appathon in april werden zeven voorgangers van de CoronaMelder getest en te licht bevonden. Foto Marco de Swart / EPA

De discussie in mei is fel. De kwestie is hoe vrijwilligers en overheid het beste samen kunnen werken aan de corona-app. De mensen van de overheid willen graag in hun eigen interne systeem werken: dat is makkelijker en scheelt hun tijd. De vrijwilligers zijn tegen. Ze vrezen niet goed te kunnen meewerken en willen dat de code op Github komt te staan, thuisbasis van veel opensourceprojecten en een platform waar zo’n beetje iedere programmeur mee bekend is. Iemand begint een rondvraag: 26 ontwikkelaars – bijna driekwart van de stemmen – willen dat het bouwteam de corona-app op Github ontwikkelt. Niemand steunt het alternatief van het bouwteam. Toch wordt dat laatste systeem gekozen, met de belofte de interne code zo snel en zoveel mogelijk gelijk te trekken met de publieke kopie in Github.

Balans

Het was in het begin zoeken naar de balans tussen open en praktisch werken, zegt Edo Plantinga, aanvankelijk bestuurslid bij Code for NL, tegenwoordig bij Volksgezondheid community manager rond de corona-app. „We hebben de input verzameld en meegewogen, maar soms nemen we een beslissing waar de vrijwilligers het niet mee eens zijn. Dit is voor iedereen nieuw. Voor het ministerie, voor mij, maar ook voor zo’n community als Code for NL. Die kennen dit ook niet, zij hebben ook nog nooit mee kunnen kijken met zo’n opensourceproject binnen de overheid.”

Pas sinds half april is het bij de overheid beleid dat – zeker nieuwe – IT-projecten in beginsel hun code moeten publiceren, tenzij dat bijvoorbeeld met het oog op fraudegevoeligheid anders moet: „open, tenzij”, vatte staatssecretaris Raymond Knops (Binnenlandse Zaken, CDA) dat samen in een brief aan de Tweede Kamer. Plantinga: „Ik vind het echt bijzonder dat nu al zo’n maatschappelijk gevoelig project in alle openheid gedaan wordt.”

Veel ontwikkelaars delen dat enthousiasme. Zoals de 25-jarige vrijwilliger Arian van Putten, al tien jaar actief in de opensourcegemeenschap. „Ik denk niet dat er een developer is die zou zeggen ‘minder open source’. Alsjeblieft meer van dit.”

De relatief kleine groep actieve vrijwilligers levert vanaf het begin een flinke bijdragen aan het ontwerp van de app. Ze schrijven de basis voor de website, buigen zich over de architectuur van de app en veiligheidsproblemen.

Dat leidt tot nieuwe inzichten, vertelt Plantinga. Zo komt aan de orde dat een aanvaller in sommige scenario’s het dataverkeer van de app kan afluisteren en daaraan kan ontlenen dat een gebruiker een besmette status doorgeeft. „Iemand bedacht toen dat er nepverkeer naar die centrale server zou moeten gaan. Zodat je aan al die berichten niet kan afleiden dat iemand besmet is geraakt. Dat geeft even aan hoe ver het privacydenken ging.”

Een belangrijke mededeling van het bouwteam ging in de chat soms verloren tussen andere reacties

Het ministerie gaat handig om met de vrijwilligers. Als minister De Jonge via zijn eigen Github-account met een symbolische push – die een wijziging in de code definitief maakt – zelf de website van de CoronaMelder online zet, bedankt hij in dat bericht iedereen die heeft bijgedragen. „Door jullie niet aflatende steun, kritiek en hulp zal de kwaliteit van de app zeker beter geworden zijn.” Omgekeerd waarderen de vrijwilligers de openheid en toegankelijkheid van bouwteam en ambtenaren. Ron Roozendaal, directeur informatiebeleid bij Volksgezondheid en eindverantwoordelijk voor de app, laat zich regelmatig in het chatkanaal zien en in videosessies ondervragen.

Toch gaat niet alles probleemloos en klinkt ook kritiek. Vooral als vrijwilliger Benjamin Broersma op 8 juli constateert dat de publieke code niet is bijgewerkt: die voor de Android-applicatie zes dagen, die voor Apple al negen dagen niet. Broersma: „Je zag dat het soms toch ook PR was. Toen ze eenmaal de naam CoronaMelder hadden gekozen, hebben ze dagen niets meer vanuit hun interne situatie gepubliceerd omdat die naam in de code zat.”

Ook het bouwteam worstelt ermee. „Helaas mag niet alles continu open”, reageert een van de leden onder het bericht van Broersma. „Dan kan een minister namelijk geen PR-momentje pakken voor het bekendmaken van zo’n naam. Dat is de praktijk waar we mee te maken hebben. En dat inzicht vragen we ook van de community.”

Broersma vindt dat het ministerie wel open source wilde werken – ook om het benodigde vertrouwen in de app te wekken – „maar dat ze bij open source meer aan open broncode dachten dan het hele open werken. Daarmee hebben ze de community wel een paar keer teleurgesteld.”

Ook het gebruik van het chatkanaal voor de belangrijkste communicatie wreekt zich. Bleek een lid van het bouwteam een belangrijke mededeling te hebben gedaan, ging die weer verloren in andere reacties. Vaak kwamen belangrijke wijzigingen daardoor pas later aan het licht. Het leidde tot dubbel werk, zegt Licht. „Dan wilde ik iets aankaarten, en bleek het bouwteam daar eigenlijk al over nagedacht te hebben. Maar omdat ze het nog niet af hadden, werd het niet op Github gepresenteerd.”

Politiek gevoelig

Plantinga vindt niet dat over alles discussie moet zijn. „Sommige mensen hadden het idee dat het project vanaf de eerste regel code open source zou zijn. Maar ook in de opensourcewereld is het gebruikelijk een eerst versie te presenteren en dan samen naar versie 2.0 toe te werken. Er waren een paar mensen die hogere verwachtingen hadden – die niet helemaal realistisch zijn voor een politiek gevoelig project als dit.”

Nog opener werken was niet zinvol geweest, zegt Plantinga. „Dat had discussies opgeleverd die de boel hadden vertraagd. We bouwen een superbelangrijke app. Als wij discussies uitlokken die niet helpen om die app beter te maken of sneller te kunnen uitbrengen, dan schiet je je doel voorbij.”

Dat de publieke code soms achterliep op de interne code, maakt het publiceren van de code niet minder waardevol, zegt vrijwilliger Arian van Putten. „De kern-app, die moet snel ontwikkeld worden. Het is vooral waardevol dat we kunnen meekijken en kunnen checken of iets wat ze claimen ook waar is.”

De meeste opensourceprojecten zijn zo ingericht, zegt Licht. Een kernteam dat het meeste werk verzet, met daaromheen wat actieve vrijwilligers. Het is de vraag hoeveel effectiever zij hadden kunnen bijdragen als het project nog transparanter was. „De mensen die hier dagelijks aan werken, stoppen er misschien wel zestig uur per week in. Iemand die dan op een zaterdagmiddag komt meekijken, heeft heel wat inhaalwerk te doen.”

Van Putten kijkt uit naar het volgende grote opensourceproject van de overheid. „Als alles open source is, hou je er een beter controleerbare overheid aan over. Het zou mooi zijn als het nog eens kan, met een project dat onder niet zo’n hoge druk staat.”