Lex Codex: Hvorfor vi bør skrive lovene våre som kode
Siden Magna Carta ble skrevet i 1215 har vi i 800 år skrevet våre lover som tekst. Her er 6 grunner til hvorfor det nå er det på tide å skrive lovene våre i datamaskinkode.
For noen år siden jobbet jeg i et team for å implementere uførereformen i Statens Pensjonskasses datasystemer. Det ble lagt ned flerfoldige millioner kroner i tolke den nye lovteksten og gjøre den om til datamaskinkode som kunne beregne pensjonen riktig for SPKs hundretusenvis av medlemmer. Dette var langtfra enkelt og man var i konstant dialog med departementet for å forstå intensjonen i lovteksten. Det fascinerende og litt tragiske var at det satt tilsvarende team i et dusin andre offentlige organisasjoner og private selskaper som gjorde nøyaktig den samme jobben med en stram tidsfrist. Med andre ord var summen for å gjøre lovteksten om til kode titalls millioner. Og det bare for en enkelt lov! Da slo det en radikal ide meg: Hva om vi hadde skrevet alle lovene våre i kode istedenfor på norsk?
Galskap? Kanskje. Men det er noen virkelig gode argumenter for hvorfor.
1. Kode? Men hvordan skal vanlige mennesker kunne lese loven?
Hvis du noen gang har satt deg ned med en advokat og sett på en lovtekst så skjønner du fort at juridisk språk er et stykke fra det og du jeg bruker i dagligtalen. «Skip» betyr alt fra et containerskip til en jolle, og «Kongen» betyr Regjeringen. Du må i tillegg ta med presidens fra tidligere dommer (som forøvrig ikke er fritt tilgjengelig), lovens forarbeid og forskrifter. Det er ganske langt fra at du og jeg kan lese en lovtekst og forstå hva den egentlig betyr i en juridisk sammenheng. Å skrive lover i kode betyr at dagens jurister må lære seg et nytt logisk språk. Den gode nyheten er at kode faktisk ikke er så langt fra juridisk språk og paragrafstruktur.
2. Det blir vanskeligere for oss alle å forstå lovene.
Tvert i mot blir det enklere. Fyll inn variabler (det vil si de tingene som er unike for saken, f.eks. hvor fort noen kjørte i en 80 sone) og klikk på kalkuler så vil datamaskinen gi deg svaret på hvilken straffereaksjon personene skal ha om hun blir dømt skyldig ifølge loven.
3. Hva med skjønn?
Menneskelig skjønn må naturligvis være med. Utfordringen i dag er at det er for mye som er skjønnsbasert og utydelig og derfor er det så vanskelig å gjøre om lovtekster til konkrete anbefalinger. Bare forsøk å få en bindende forhåndsuttalelse fra Justisdepartementet(!) Akkurat som vi har variabler som fylles inn, så må vi legge inn logiske elementer der vi kan spørre et menneske om å gjøre en skjønnsvurdering. F.eks. overlagt eller ikke.
4. Blir variabler et problem?
Variabler er de verdiene i et logisk resonnement som vi ikke kjenner ved start. F.eks. (Bilens fart – Fartsgrensen = Fartsoverskridelsen). Som Semicolon prosjektet viste så bruker forskjellige offentlige instanser det samme uttrykket for forskjellige ting. Eksempelvis hva betyr "Lønn"? Er det med feriepenger? Før eller etter fradrag? Kodespråket må inneholde veldefinerte variabler slik at vi lett kan kalkulere lovteksten i praksis.
5. Vet politikerne hva de vedtar?
Med dagens komplekse lovgivning så vet ikke politikerne hva konsekvensene av de lovene og lovendringene de vedtar er. Hvordan skulle de kunne det? Små endringer kan ha store utilsiktede effekter andre steder i systemet. Ved å beta teste lover på store datasett (f.eks. hvor mange som for økt skatt med et nytt skatteregime) før de implementeres kan både politikerne, juristene og folket se konsekvensene av det politikerne vedtar før de gjør endringene. Tilsvarende kan datasimuleringer gi ekstra innsikt (her kan vi slenge inn buzzwords som Big Data og AI om du vil) i langtidskonsekvensene.
6. Hvor mange millioner ville samfunnet spart årlig?
Som innledningen viser vil samfunnet spare titalls (hundretalls?) millioner i året som i dag brukes på å skrive lovene våre om til datamaskinkode igjen og igjen. Det grelleste eksempelet er den nye straffeloven som ble vedtatt i 2005, men ikke ble innført før 10 år senere fordi politiet brukte så lang tid på å oppdatere datasystemene sine.
Et tenkt eksempel:
La oss starte med å skrive en enkel skattelov i kode. Loven vi ønsker å uttrykke er en flat 10% inntektsbeskattning, men 20% for de som tjener over 1 million.
Inntektsskatt: hvis Lønn < 1000000 så Lønn 10% ellers Lønn 20%
Hvor ville denne loven bli brukt? De færreste av oss setter oss ned med skattelovene når vi skal fylle inn Skattemeldingen. Først går vi kanskje på Skattedirektoratets nettsider og tester skattekalkulatoren der. Her er det et dataprogram som bruker koden over til å beregne skatten. Deretter endrer du Skattemeldingen på Altinn der nok et dataprogram gjør den samme beregningen med den samme koden. Når skatten skal utregnes av Skattedirektoratet er det ikke en funksjonær som sitter med en regnemaskin som beregner skatten din, men, du gjettet det, en datamaskin. Revisorer og regnskapsførere bruker datamaskiner de også. Faktum er at det er flere datamaskiner enn mennesker som bruker lovene våre, og andelen er økende.
Bilde: Andreas Haldorsen, CC BY-SA 4.0