Introduktion
Standarden for Offentlig Kode er et sæt af kriterier, der støtter offentlige organisationer i at udvikle og vedligeholde software og politiske retningslinjer sammen.
Enhver, der udvikler software eller politiske retningslinjer til et offentligt formål, kan bruge denne standard til at arbejde imod en højere kvalitet af offentlig service, som er mere omkostningseffektiv, med færre risici og med mere kontrol.
Denne introduktion introducerer begrebet offentlig kode, forklarer hvorfor det er vigtigt og introducerer den proces hvorigennem software og politikker kan blive certificeret som offentlig kode.
Defintitionen af offentlig kode
Offentlig kode er både computer kildekode (såsom software og algoritmer) og offentlig politik, der udføres i en offentlig kontekst af mennesker eller maskiner. Offentlig kode adskiller sig eksplicit fra almindelig software, fordi det opererer under fundamentalt forskellige vilkår og forventninger.
Hvorfor offentlig kode?
Det er flere grunde til at offentligt kode er relevant lige nu.
Software kode == juridisk kode
Software er offentlig infrastruktur.
I det 21. århundrede kan software anses som vital offentlig infrastruktur. Det er i stigende grad ikke blot udførslen af eksisterende politikker, men initiativtager af nye politikker – f.eks. når algoritmer bestemmer hvilke distrikter, der har brug for ekstra sociale services og politibemanding.
Software mekanismer, algoritmer og dataopsamling er blevet centrale elementer i udførslen af offentlige politikker. Computerkode udfører nu politikker, som er blevet kodet ind i juridisk kode igennem demokratiske processer. Begge former for kode stiller betingelser til, hvordan samfundet fungerer igennem et demokratisk sæt af politiske værdier, sidstnævnte udført af mennesker, førstnævnte af maskiner. I andre ord, softwarekode er i stigende grad ved at være lig med juridisk kode.
Software skal derfor underlægges principperne for demokratisk styring.
Traditionelt indkøb af offentlig software
På nuværende tidspunkt servicerer metoder for software produktion ikke levering af offentlig service særlig godt.
I det sidste årti er offentlige organisationer, der har indkøbt komplette softwareløsninger, sommetider blevet overrasker over at finde ud af, at de:
- Ikke kan ændre deres software til at reflektere ændringer i politik eller drage fordel af ny teknologi.
- Ikke har adgang til deres data, fordi det er lås inde i proprietærer systemer.
- Bliver bedt om at betale en stigende licensafgift.
Teknologisk suverænitet og demokratisk ansvarlighed
Offentlige institutioner, offentligt ansatte og borgere fortjener bedre.
Vi tror på, at softwaren, der gennemstrømmer vores samfund, ikke længere kan være en sort boks kontrolleret af eksterne virksomheder, som holder den underliggende logik, som deres software kører på, skjult i proprietærer kodebaser. I stedet har Folketing og folket brug for teknologisk suverænitet – der giver dem mulighed for at sætte og kontrollerer den offentlig softwares funktion, ligesom de er i stand til at sætte og kontrollere politikker, som er juridisk formuleret i love. Borgere og civilsamfunds aktører har brug for at denne software er transparent og ansvarlig.
Design af software som essentiel civil infrastruktur bør ære digitale borgeres rettigheder.
Design af sandt offentligt software
Offentlig kode er kernen i moderne offentlig infrastruktur, der former arbejdet for offentlige medarbejdere og påvirker næsten alle indbyggeres liv.
Offentlig kode skal derfor være:
- Gennemsigtig
- Kunne holdes til ansvar
- Forestålig for alle dets bestanddele
Den skal reflektere værdierne i det samfund, som den yder service til, f.eks. ved at være inkluderende og ikke diskriminerende.
De fleste proprietærer softwaresystemer, som pt. er i brug i offentlige organisationer, lever ikke op til disse krav. Offentlig kode – software bygget til at opererer med og som en offentlig infrastruktur sammen med ordningerne for dets produktion – gør.
Værdier i offentlig kode
Vi anser offentlig kode for at have disse kerneværdier:
- Inklusiv
- Brugbar
- Åben
- Læselig
- Kan holdes ansvarlig
- Tilgængelig
- Bæredygtig
Hvordan virker offentlig kode
Offentlig kode er åben source software tiltænkt til at udfylde en essentiel rolle i offentlige organisationer. Igennem brug, andre administrationer kan bidrage tilbage til softwaren, så dens udvikling og vedligehold bliver et ægte samarbejde.
At være åben åbner for mange ting.
Lokal og demokratisk ansvarlighed er sikret, når en offentlig organisation implementerer og vedligeholder deres egen offentlige kode. Ved at være åben og med en bredere bidragsyderbase bliver softwaren mere sikker – det er fordelagtigt, når mange øjne spotter potentielle fejl. Mange bidragsydere deler vedligeholdelsesarbejdet for at holde det funktionelt og moderne, hvilket reducerer fremtidige teknisk gæld. Den delte arbejdsbyrde er mere bæredygtigt nu og i fremtiden. Med åbenhed bliver koden og dets data mere tilpasningsdygtig i fremtiden – det vil være nemmere at omforme, genbruge og lukke ned. Dette resulterer alt sammen i færre risici for offentlig infrastruktur.
Ved at samle ressourcer får offentlig administration mulighed for at give mere opmærksomhed til tilpasning af software, så den virker bedst muligt i alle lokale kontekster – hvilket skaber en bedre brugeroplevelse for dem og deres slutbrugere (indbygger eller borger).
Offentlig kodes økonomi
Offentlig kode præsenterer en bedre økonomisk model for offentlige organisationer såvel som private virksomheder. Det er et alternativ til traditionelt softwareindkøb, hvilke tilbyder stigende lokal kontrol og økonomisk opportunisme.
Designet til fra start at være åben, tilpasningsdygtig og med flytbarhed af data, kan det blive udviklet af in-house personale eller betroede leverandører. Fordi koden er åben, kan offentlige organisationer skifte leverandør, hvis de har brug for det. Åben kode tilbyder øgede muligheder for offentlig læring og kontrol og giver mulighed for at offentlig administration kan indkøbe mindre kontrakter – og derved gøre det nemmere for lokale små og mellemstore virksomhed at byde på opgaven. Offentlig administration kan bruge deres egen software indkøb til at stimulere innovation og konkurrence i deres lokale økonomi.
Dette kan ses som en investering, der leder til fremtidig økonomisk vækst – flere leverandører er nødvendig på grund af den stigende software efterspørgsel.
Indkøb af offentlig kode
Offentlig kode kan blive brugt og udviklet af faste in-house udviklingshold, konsulenter eller eksterne leverandører. Leverandører til offentlige organisationer kan inkludere offentlig kode i deres byd på kontrakter.
For at bruge eksisterende offentlig kode vil du blive nødt til at specificere det i dit budget og projektdesign, at din nye it-løsning vil bruge den kodebase. For at opfordre til en innovative tilgang, der tilpasser offentlig kode til din kontekst, kan du beskrive den service eller det resultat i din kontrakt.
Leve op til starndarder eller certificeringsproces
Vores organisation sikrer, at kodebaser under dens forvaltning (og ikke i inkubation eller på loftet) overholder Standarden for Offentlig Kode. Dette gør det klart for potentielle brugere og dets bidragsydere, at koden er af høj kvalitet og at opdateringer også vil være det.
En audit udført af vores organisation er tiltænkt at skulle komplementere maskintests, da maskiner er rigtig gode til at teste syntaks og om resultater stemmer overens med forventninger. Ting, der er ment for mennesker, som at teste hvorvidt dokumentationen er forståelig og tilgængelig i kontekst, om commit beskeder giver mening og hvorvidt fællesskabets retningslinjer følges, er umulige at efterprøve for maskiner.
En audit afprøver hele kodebasen, inklusive kildekoden, politiske retningslinjer, dokumentationer og samtale om overholdelse både standarder opstillet af vores organisation og standarder fra kodebasen selv.
Hvordan fungerer processen?
Hver gang et bidrag er foreslået til en kodebase – igennem f.eks. et sammensmeltningsforslag (merge requests) – kodebaseforvalterne fra vores organisation vil audit dit bidrag, for at se om bidraget overholder Standarden for Offentlig Kode. Nye bidrag kan kun blive inddraget i kodebase, hvis de er blevet godkendt som værende i overensstemmelse med Standard of Public Code og er blevet gennemset af en anden bidragsyder.
Denne audit er præsenteret som et gennemsyn af bidraget. Kodebaseforvalteren giver linje-for-linje en tilbagemelding og feedback vedrørende overensstemmelse for at hjælpe bidragsyderne med at forbedre deres bidrag. Et sammensmeltningsforslag kan ikke gennemføres, før kodebaseforvalterne har godkendt bidraget.
Certificer en hel kodebase versus et bidrag
For at kodebasen kan certificeres fuldstændigt, må alle meningsfulde linjer af kode samt alle commits bag koden leve op til Standarden.
Hvis kodebaserne har gennemgået en fuldstændig audit fra første sammensmeltningsforslag, kan de straks certificeres som at overholde Standarden for Offentlig Kode.
Hvis auditprocessen tilføjes til en eksisterende kodebase, kan nye sammensmeltningsforslag blive certificeret, men ikke den eksisterende kode kan ikke blive certificeret. Ved at lave audit på ethvert nyt sammensmeltningsforslag, kan kodebasen flytte sig trinvist mod at blive certificeret fuldstændigt.
Målene for standarden of public code
Dette Standard støtter udviklere, designere, virksomhedsledere og politiske beslutningstagere til at:
- Udvikle software af høj kvalitet og politikker for bedre offentlig servicelevering.
- Udvikle kodebaser, der kan genbruges på tværs af kontekst og vedligeholdes i samarbejde.
- Reducere teknisk gæld og raten for projektfiasko.
- Have mere kontrol over og mulighed for at lave beslutninger om deres it-systemer.
- Forbedre leverandørforhold med en bedre økonomisk model.
Foundation of Public Code hjælper offentlige organisationer dele og adoptere open source software, bygge bæredygtige udviklerfællesskaber og skabe en blomstrende økosystem for offentlig kode. Det bliver gjort igennem kodeforvaltning. For at denne proces, som kodebaseforvalterne laver, bruges Standarden for Offentlig Kode for at sikre at koden, der forvaltes, er af høj kvalitet og vedligeholdt i samarbejde.
Potentielle brugere af kodebasen, der testes op imod Standard for Offentlig Kode, kan forvente, at de er meget genbrugelige, nemme af vedligeholde og af høj kvalitet
Standard for Offentlig Kode gør dette ved:
- Skabe en fælles terminologi for udvikling af offentlig kode.
- Skabe mål for at hjælpe med at udvikle en offentlig kode af høj kvalitet.
- Giver vejledning om hvordan man opnår dets kriteriet og operationalisere overholdelse af disse.
Standarden for Offentlig Kode har til hensigt at være uafhængig af tid og teknologi.
Hvem er dette for?
Standard for Public Code er for dem, der skaber og genbruger offentlig kode:
- Politiske beslutningstagere
- Virksomheds- og projektledere
- Udviklere og designere
Disse mennesker arbejder i:
- Offentlige organisationer: Institutioner og administration,
- Konsulenter og leverandører af informationsteknologi og politiske services til offentlige institutioner.
Det er ikke ment for de offentlige organisationers slutbrugere (indbyggere eller borgere), journalister og akademikere.
Further reading
- “Modernising Public Infrastructure with Free Software” whitepaper by the Free Software Foundation Europe.
Videos on public code
- Collaborative Code is the Future of Cities @ DecidimFest 2019. Talk by Ben Cerveny on the background behind the Foundation for Public Code.
- Public Money? Public Code! - Panel @ Nextcloud Conference 2019. Touches on topics like procurement, law and more.
Get involved
This standard is a living document. Read our contributor guide to learn how you can make it better.