Hoewel alles leek mee te zitten, is staatssecretaris Raymond Knops er binnen een paar weken tijd toch in geslaagd de beker met BRP-gif van zijn voorganger Ronald Plasterk over het ministeriële pluche te morsen. Onnodig en tragisch. Knops moet zijn ambtenaren in het gareel krijgen of het wordt nog erger. Een reconstructie.
Staatssecretaris Knops van Binnenlandse Zaken en Koninkrijksrelaties (BZK) staat voor een zware opgave. Hij krijgt alle ict-taken van zijn ministerie terwijl ict-portfolio’s van andere ministeries naar hem worden overgeheveld. Ict is link. De tijd dat een bewindspersoon onbeperkt geld aan ict kon verspillen, is voorbij. (Wiebes met zijn Belastingdienst is de uitzondering.) En dan heeft Knops ook nog het honderd-miljoen-rampdossier dat Basisregistratie Personen (BRP) heet.
Maar met die BRP leek het juist mee te vallen. Door de ‘skelettransplantatie’-affaire was de Kamer begin 2017 ontwaakt zodat minister Plasterk dit dossier niet kon doorschuiven naar zijn opvolger. Met het staken van het BRP-programma was de angel al uit het dossier. Het enige dat Knops hoefde te doen was de toezeggingen van Plasterk uitvoeren: vrijgeven van de code en de documentatie en ergens volgend jaar een feitenrelaas afscheiden. Met die vrijgave zou hij ook de boze gemeenten die op eigen kosten verder willen met de BRP software enigszins tevreden kunnen stellen. Die geloven dat ze zijn geflest door Plasterk en het BIT en willen zelf verder met de BRP-software. What could possibly go wrong?
NRC biedt hulp
Vorig weekend kwam de NRC met een uitgebreide reconstructie van het BRP-fiasco. Veel betrokkenen zullen er blij mee zijn geweest. Want volgens de NRC zijn de kaboutertjes schuldig aan het falen. Die kaboutertjes zijn anonieme hoge ambtenaren. Of de BRP-software wel echt een total loss was, wordt door de NRC subtiel in twijfel getrokken. De skelettransplantatie is volgens ‘sommige deskundigen’ een bij langlopende trajecten gangbare opschoonoperatie. Iedereen met wie de NRC spreekt is anoniem en de software is nog geheim, dus elke bewering kan. Volgens de NRC leidt vertraging ook tot het onbruikbaar worden van software en die vertraging is weer de schuld van de ongenoemde kaboutertjes. Smoke and mirrors in de kwaliteitscourant.
Naast de ambtelijke kaboutertjes is wat de NRC betreft ook het Bureau Ict Toetsing (BIT) schuldig aan het BRP-fiasco. Het BIT brandt plotsklaps de BRP tot de grond toe af, zonder goede onderbouwing en zonder wederhoor. Weer zijn de ict’ers niet dader maar slachtoffer. Wie het BIT aangezet heeft tot deze liquidatie (want dat was het inderdaad) vermeldt de krant niet. Dan ik maar: Plasterk heeft onder druk van VVD-CDA-D66 het probleemdossier BRP geofferd om een afbreukrisico voor Rutte III weg te krijgen. In ruil daarvoor heeft de Kamer het Plasterk niet te moeilijk gemaakt. Dat de gemeenten zich belazerd voelen, is bijkomende schade, maar niet Knops maar Plasterk is de kop van Jut. Stel je voor dat de NRC dit had achterhaald en opgeschreven!
En dan liep er ook nog iemand rond met een ‘giftige pen’ die anti-BRP-stukjes in ‘online-vakbladen’ schijft die Kamerleden dan weer lezen. Die persoon is ook de enige die de NRC heeft geïnterviewd die dat niet doet op voorwaarde van anonimiteit want ‘klussen heeft hij toch genoeg’. Door de interviews met die azijnpisser kwam tot ieders verrassing boven dat de BRP-programmamanager zich mogelijk persoonlijk heeft verrijkt. Ook dat pijnlijke feit heeft de krant niet gehaald. Scheelt weer gedoe voor Knops.
Met zo’n frame in een gezaghebbende courant kun je iets als aantredend staatssecretaris, zeker als alle topambtenaren zijn vertrokken en vervangen. Niet zozeer de ict’ers hebben gefaald maar iedereen. En dus gaat iedereen vrijuit. Zoals gewoonlijk.
Bijna perfecte start van Knops…
Ik kreeg na het aantreden van Rutte III signalen dat aantredend bewindsman Raymond Knops de luiken radicaal open wilde gooien. Ik geloofde dat. Sterker, ik geloof dat nog steeds. De enige politicus die er in de NRC-reconstructie echt van langs krijgt, is toenmalig CDA-staatssecretaris Ank Bijleveld (nu minister), maar vanaf 2011 is het CDA de enige speler die door heeft wat er gebeurt. In 2011 dient CDA-Kamerlid Ger Koopmans een motie in wanneer duidelijk wordt dat het BRP-programma (toen nog mGBA geheten) werd omgekat van een programma-met-resultaatverplichting naar een uurtje-factuurtjefeest. Híer en nergens anders werd de basis gelegd voor de ramp van honderd miljoen. Voor de NRC is dit irrelevant. In 2015 is het weer een CDA-Kamerlid, Mona Keijzer (nu ook staatssecretaris), dat vraagt om het vrijgeven van de broncode van de BRP. Het CDA was haar tijd vooruit, althans wat de BRP betreft.
Met de kleine CDA-fractie onder Rutte II kan het niet anders of Kamerlid-nu-staatssecretaris Knops moet dit hebben meegekregen. In de hectische periode rond en na het staken van het BRP-programma kreeg ik ook te horen dat Rutte III het echt anders wilde gaan doen. En, guess what, Knops houdt woord. In een recente Kamerbrief meldt hij:
- Dat de finale versie van de broncode en functionele/technische documentatie wordt vrijgegeven;
- Dat dit gebeurt middels GitHub zodat iedereen bij de code en documentatie kan;
- Dat de software onder een opensource-licentie wordt vrijgegeven die garandeert dat bewerkingen ervan (bijv. door de gemeenten) ook als opensource beschikbaar blijven;
- Dat eerdere versies van de BRP-code ook worden vrijgegeven, zij het pas nadat een onderzoekscommissie een feitenrelaas heeft afgescheiden.
Hoewel afgedwongen onder zware druk van de Kamer is dit een groot precedent. Het is vooral slim van Knops om de software opensource te houden (overigens gesuggereerd door SP-Kamerlid Maarten Hijink). Daarmee garandeert hij dat de gemeenten de code niet meer in het duister kunnen trekken (wat ze beslist willen) en voorkomt hij dat hij straks door de VNG wordt gechanteerd met indianenverhalen over hoe verkeerd en schadelijk de beslissing om te stoppen met de BRP was. En als de BRP-software een total loss is (en dat denken het BIT en ik), dan sterft de gemeentelijke doorstart met de BRP-code een snelle dood en wordt voorkomen dat er nog meer goed belastinggeld naar kwaad geld wordt gegooid. Well played, excellentie!
… maar met twee uitvoeringsfouten
Iedereen die het beste voor heeft met de besteding van onze belastingcenten aan ict moet blij zijn met wat er nu gebeurt en de staatssecretaris maximaal krediet geven. Hem helpen mag ook. Ik heb van mijn kant via informele kanalen geprobeerd om twee waarschuwingen bij de staatssecretaris te krijgen:
- Pas ervoor op dat uw uitvoerende ambtenaren de openbaarmaking niet verneuken. Openbaarmaking vereist expertise die het ministerie niet heeft. Informatie achterhouden zit bij Nederlandse ambtenaren in de genen. En uw ambtenaren die de BRP-software nu openbaar moeten maken, zijn jarenlang bezig geweest met informatie verbergen. (Ik heb in 2015 de BRP-code ingezien en meegemaakt hoe ver die sabotage gaat.) Ga ook niet proberen om producten te indexeren of te ordenen. Je wekt daarmee alleen maar de indruk dat het programma haar zaken op orde had.
- Maak de eerdere versies van de BRP-code nu meteen openbaar. Hoe begrijpelijk ook, wacht er niet mee! Deze eerdere versies zullen laten zien hoezeer de Kamer is misleid door programmamanager Franke, minister Plasterk en de adviesbureaus Gartner en KPMG. Als je dat niet doet, zorg er dan voor dat uw onderzoekscommissie echt diep in de code duikt. Voor je het weet heb je weer een schandaal als er zaken bewust of onbewust over het hoofd worden gezien.
En toen brak de pleuris uit.
Of mijn tweede waarschuwing terecht was moet volgend jaar blijken. Ondertussen is mijn eerste zorg al bewaarheid geworden. Snel na het vrijgeven van de BRP-code kreeg ik telefoontjes en mails die aangaven dat ze bij de gemeenten nu helemaal woedend zijn. Niet alleen zou het ministerie slechts ‘enkele procenten’ van de code hebben vrijgegeven, maar ook zou er code actief onklaar zijn gemaakt. Dat laatste acht ik onwaarschijnlijk, alleen al omdat het deskundigheid vereist die het ministerie niet heeft, terwijl het ook goed kan dat er mensen de BRP-code achterover hebben gedrukt om zich te verdedigen tegen mogelijke claims. Morrelen aan de software zou dus stupide zijn. Maar het laat wel zien dat de relatie tussen het ministerie en de gemeenten razendsnel verder verslechtert. En onnodig. Afijn, de geest is weer uit de fles. Zowel de NRC als Computable publiceerden erover. De Kamer is boos: een gepland overleg van de Commissie BZK wordt verplaatst naar volgende week. GroenLinks-Kamerlid Nevin Özütok probeerde zelfs zonder succes een plenair debat georganiseerd te krijgen. Staatssecretaris Knops wacht een hoop gedonder. Onnodig gedonder.
Ondertussen doet de voorlichter van Knops er alles aan om de schade te vergroten. Op een vraag van Computable waarom niet alle code is vrijgegeven, geeft deze het volgende, onthutsende antwoord: ‘De openbaarmaking van de broncode beoogt niet een herstart van de operatie BRP mogelijk te maken, gelet op het Kamerbreed gesteunde besluit van de minister van BZK om de operatie te stoppen. In dat kader zijn ook door de Kamer kritische vragen gesteld bij het initiatief van de VNG om een verkenning te doen naar de bruikbaarheid van (delen) van de broncode ten behoeve van een Gemeenschappelijk Verenigde Registratie van persoonsgegevens (GVR).’
Knops’ voorlichter zegt bijna onomwonden dat het ministerie het de gemeenten onmogelijk wil maken om door te gaan met de code van de BRP en dat de Kamer daarachter staat. Zoiets maak je toch zelden mee! Meneer Knops, haal snel de bezem door de afdeling voorlichting!
Incompetentie of kwade trouw?
Het is natuurlijk verleidelijk om wat er rond de BRP gebeurt te duiden in termen van vuile spelletjes, list en bedrog. Uiteindelijk is dat van 2013 tot 2017 het patroon geweest. Toch denk ik dat de staatssecretaris en zijn nieuwe kaboutertjes (de oude zijn weg) van goede wil zijn. Ze zijn echter aangetreden als leidinggevenden in een organisatie met een bedenkelijke ‘modus operandi’ en vooral een totaal gebrek aan ict-deskundigheid.
Dat werkt ongeveer zo:
- ‘De staatssecretaris wil dat we de code en de documentatie openbaren. Dat doen we niet volledig. Natuurlijk gaan we niet vermelden wat we niet openbaren. Daar moet de buitenwereld zelf maar achter komen.’
- ‘We snappen niets van ict, dus we gaan kijken of er persoonsgegevens in de Java-code zitten. Persoonsgegevens interpreteren we zo ruim mogelijk, dus we verwijderen zelfs de namen van de programmeurs uit de code. Zelfs als we dat gedaan hebben, verklaren we een groot deel van de code nog als ‘privacygevoelig’ en houden die achter.’
- ‘We geven alleen code en systeemdocumentatie gedeeltelijk vrij. Dus bijvoorbeeld geen testdata en testverslagen. Testpersoon ‘000000012 – Pietje Puk’ zou in het echt best kunnen bestaan. Of misschien bestaat er iemand met BSN 000000012. Of iemand die ‘Pietje Puk’ heet. Kortom, alles achterhouden!’
- ‘Staat er ergens een wachtwoord in de code dan houden we die code achter. Misschien wordt ‘Welkom123’ ook wel elders bij de overheid als wachtwoord gebruikt.’
Dit geeft ongeveer een beeld van de denkwereld van de uitvoerende ambtenaren onder de arme staatssecretaris Knops. Zoals wel vaker zijn kwade trouw en extreme incompetentie niet te ontwarren. Ik ga het in elk geval niet proberen. Ik heb vooralsnog vertrouwen in de goede intenties van de staatssecretaris en zijn nieuwe kaboutertjes, maar door de organisatie daaronder moet de bezem heen. Zo niet, dan gaat dit van kwaad tot erger.
Het roer kan nu nog om!
Eén van de meest fascinerende aspecten van ambtelijke organisaties is dat ze haast eindeloos op een verkeerd pad doorgaan totdat de druk van buiten te hoog wordt. Dat is wat we hier zien gebeuren: het ministerie acteert zoals vanouds en brengt daarmee de nieuwe, goedwillende top in gevaar. Mede omdat alle deskundigheid ontbreekt, vraagt de situatie om faire vrijgave van de code door professionals. Programmatuur bevat geen persoonsgegevens en als de programmeur zijn of haar naam in de code zet, dan blijf je daarvan af. Hetzelfde geldt voor functionele en systeemdocumentatie. Testgegevens zijn fake, ook als er in het echt iemand rondloopt die ‘Pietje Puk heet. Een testverslag op basis van testgegevens brengt niemands privacy in gevaar. De naam op een architectuurdocument kan gewoon blijven staan. Enzovoorts. Je verwijdert de naam van de schilder toch ook niet als je één van diens schilderijen tentoonstelt?
De beste manier om het roer om te gooien, is om niet GitHub maar de ontwikkel- en samenwerkingsomgeving www.modernodam.nl te gebruiken als platform om zaken te openbaren. Natuurlijk moet ook nu alles worden doorgekamd op echte privacy-risico’s (andere risico’s zijn er niet), maar dan heb je uiteindelijk een platform met software die compleet is en compileert. Daarna kan staatssecretaris Knops alsnog de kudos krijgen die hem toekomen en kunnen de gemeenten het ministerie niet meer beschuldigen van sabotage. Als meteen de oude versies van de code worden vrijgegeven, hoef ik voor een keer geen hyperlink te plaatsen naar dit artikel.
En ondertussen is er toch een klein deel van de BRP-broncode vrijgegeven en wordt deze bekeken door Java-experts. Ik houd mijn kruit nog droog, maar de eerste indrukken zijn dat de kwaliteit inderdaad dramatisch is en beweringen van minister Plasterk richting de Kamer niet kloppen. De gemeenten gaan niet ver komen met het doorontwikkelen van de BRP. Alle reden daarom om ze geen strobreed in de weg te leggen.
Ik reageer zodat ik e-mails ontvang over overige reacties. Er was meer dan Java code alleen aanwezig overigens. Qua code was het niet per se slecht wat ik zo zag, vooral weinig inderdaad.
Als de regering nu eens een nationaal architectuurteam met vergaande bevoegdheden en budget aanstellen naar bankair/verzekeraars model, alleen dan is het niet onmogelijk dat de overheids-Ict ooit enig niveau bereikt. Het budget moet voor een belangrijk deel worden onttrokken aan de diverse departementen en door het architectuurteam als subsidie worden benut voor de huidige projecten waarbij herbruik centraal staat. Per saldo wordt de ict van de BV Nederland aanzienlijk goedkoper en beter.
Volgens mij staat er in dit artikel, maar ook in de brief aan de Kamer, een fout m.b.t. de consequentie van het gebruik van de AGPL… of in ieder geval iets voorbarigs.
In de Kamerbrief staat: “De voorwaarde waaronder publicatie van de code plaatsvindt is opensource volgens de licentievoorwaarden AGPL (Affero General Public License). De licentievoorwaarden zien er op toe dat aanpassingen op de broncode ook weer openbaar beschikbaar komen.”
De verplichting van openbaarmaking van (broncode van) wijzigingen geldt bij opensource alleen richting ontvangers (en bij AGPL ook richting gebruikers) van de software. Dat zijn bij het BRP gemeenten, overheidsdiensten en een scala aan andere partijen…. maar waardoor je (nog) niet kunt stellen dat de aanpassingen ook weer openbaar beschikbaar komen. Inderdaad, dat een ontvanger/gebruiker van de software het recht krijgt om de code daarvan publiek openbaar te maken, is geen garantie dat dat ook gebeurt.
Uit de toelichting van de Affero GPL: ‘The GNU Affero General Public License is a modified version of the ordinary GNU GPL version 3. It has one added requirement: if you run a modified program on a server and let other users communicate with it there, your server must also allow them to download the source code corresponding to the modified version running there.
Het begint wel op te vallen dat het NRC steeds vaker met ‘sappig en vooral politiek zeer goed uitkomend nieuws dankzij onze te korte lijntjes met betrokken politici hiermee de publieke opinie optimaal kunnen masseren’ nieuws komt.
Bij deze stel ik dan maar voor om een fusie te doen met de Staatscourant om nog financieel en nog nijpender journalistiek rampen te doen voorkomen.
Maar als ze toch begonnen zijn met het delen van delen van broncode waarom niet de volgende iteratie van het BRP in welke benamende belichaming dan ook gewoon open-source ontwikkelen? Want uiteindelijk zal er toch antieke software vervangen moeten worden voor iets wat wel gaat werken. Dat dit binnen de tijd en binnen het budget kan laten we dan even in het midden. Dat kunnen we dan zelf controleren door even te kijken hoeveel regels er de laatste week erbij zijn geklopt.
Vond het een prima stuk van NRC, een mooie chronologische opsomming van wat er allemaal passeerde. Een project zoals vele andere ict-projecten. De afdeling die over de personenregistratie gaat die er geen zin heeft, obstructie, personen die geen zin hebben om mee te werken of het onderling niet kunnen vinden plus nog alles laten uitvoeren door externe partijen die er weer heel anders in zitten en ook onderling hakketakken. Plus alle project mutaties. Is het nu 100 miljoen in 10 jaar? Vind ik nog niet eens veel. Zeker als ik lees dat er ook nog vele externe onderzoeken zijn geweest. Of is dat een ander potje. Heb het zelf wel bonter meegemaakt, bij een bank overigens.
En nu is er een gedeelte van de source code over de schutting gegooid. Omdat daar om gevraagd is. Met welk idee? Dit heeft helemaal niets met open source te maken, echte open source daar zit een idee achter en heeft een baasje. Of meerdere baasjes. Maar dan laat je anderen meedenken om er uiteindelijk iets moois van te maken. Maar er is wel iemand verantwoordelijk over die code. Dat had een goed idee geweest. Verder vond ik het ongemakkelijk om in deze spulletjes te grutten. Oké, een os, libraries of tools dat zijn meestal de gebieden waar open source over ga1at. Maar niet applicatiesoftware die voor een project is ontwikkeld.
Dit verhaal zal wel doorgaan op dezelfde voet verder gaan, het zwartepietenspel. In plaats van er iets van te maken als je het toch zo nodig ‘open source’ maakt. Maar doe het dan helemaal, samen met alle belanghebbenden als het zo nodig zo moet. Al vraag ik me nog steeds af, is dit nou nodig en wat is de zin.
Wel opvallend dat bij de beschrijving van dit soort faalprojecten steeds weer de programmeertaal Java opduikt; zou hier enig verband zijn?
@JackJansonius Ik geloof niet dat het met de programmeertaal Java te maken heeft. Stond hier onlangs niet een artikel dat het met heel veel ict-projecten niet goed afloopt en strompelen geblazen is? Java is een veel gebruikte taal maar ik denk dat het bij gebruik van andere talen net zo goed slecht af kan lopen. Ik denk dat het meer te maken heeft met de organisatie en hoe projecten georganiseerd zijn. Zie een groter probleem met het Poolse Landag model wat kenmerkend is voor ict-projecten, iedereen praat mee, iedereen heeft er verstand van. Zie eerder een verband is tussen het aantal mensen wat aan een project werkt en het moeizaam lopen daarvan. Denk dat je moeiteloos kan zeggen, ieder project kan je met de helft van het aantal mensen uitvoeren. Of een kwart. etc.
Jack: ‘met SOA-architectuur was dit niet gebeurd’
Numo: ‘met mijn matrix bij de hand was dit niet gebeurd’
Pascal: ‘Ja, ze moesten gewoon vakmensen inhuren’
SWA: ‘ik zou ze nog geen stageplaats geven’
Johan: ‘Ze moesten meer naar mij luisteren want ik heb overal verstand van’
Jan: ‘Hier in Oostenrijk, is het veel beter. Alleen die malle broeken, daar valt niet aan te wennen’