Open source i offentlig sektor - utmaningar, möjligheter och vägen framåt.

Summering

Denna artikel beskriver processen och lärdomarna från att släppa ett API som öppen källkod inom offentlig sektor. Projektet, som utvecklades för digitala nationella prov (“DNP”), visar hur öppen källkod kan stärka samarbete, transparens och innovation. Artikeln lyfter fram både möjligheter och utmaningar – från säkerhet och juridiska aspekter till kulturellt motstånd – och ger insikter för andra myndigheter som överväger liknande initiativ.

Slutsatsen är att öppen källkod har bidragit till innovation och effektivisering på Skolverket och att fler myndigheter bör överväga liknande initiativ.

Introduktion

Att släppa öppen källkod projektet “DNP-SS12000 Referens API” tillsammans med Skolverkets har varit både givande och en komplex resa. Myndigheter har ofta mycket att överväga – från säkerhet och juridik till långsiktig förvaltning – vilket innebär att varje steg mot en öppen källkodsrelease har krävt noggrant arbete och övertygelse. För detta projekt, som utvecklades för att stödja digitala nationella prov, hade DNP-utvecklings teamet på Skolverket en stark övertygelse om att öppen källkod skulle gynna både myndigheten och marknaden. Vägen dit var dock inte utan utmaningar.

Projektet i fråga är Skolverkets DNP-SS12000 Referens API, en referensimplementation av SIS SS 12000:2020/2022 standarden. Släppt under Apache 2.0 och finns tillgängligt på Skovlerkets GitHub här.

Jag heter Gustaf Nilstadius och är lead utvecklare inom projektet för digitala nationella prov på Skolverket och har en förkärlek till öppen källkod.

Varför behövdes DNP-SS12000 Referens API?

Skolverket har som en av sina många uppgifter att främja standarder inom utbildningssektorn. En av dessa standarder är SIS SS 12000:2020. Det beslutades tidigt i projektet att provisionering av användaruppgifter för digitala nationella prov skall ske med denna standard då den är ämnad för informationsutbyte mellan verksamhetsprocesser i skolan. Problemet som uppstod är att enligt standarden skall Skolverket hämta information från skolhuvudmännen och inte tvärtom; som ett konventionellt API. Dette öppnade för behovet av att kunna emulera en skolhuvudmans system. Detta för att testa Skolverkets provisionerings-system, både ut ett funktionellt perspektiv men även för säkerhet och belastnings-tester.

Eftersom kravet fanns att systemet skulle användas vid belastning och säkerhets-tester behövde systemet vara nästintill produktionsdugligt.

Varför släppa projektet som öppen källkod?

Under utvecklingen av Skolverkets system för digitala nationella prov hade tolkningar av standarden SIS SS 12000: 2020 gjorts. Dessa tolkningar var implementerade i DNP-SS12000 Referens API. I kombination med att systemet nästintill är produktionsdugligt, drev teamet på för att detta systemet även skulle gynna allmänheten. Vi ansåg att projektet skulle hjälpa utvecklare ute hos skolhuvudmännen som skall kommunicera med våra system. Utöver att koden i sig skulle hjälpa skolhuvudmännen så var tanken att GitHub projektet även kunde vara ett forum för tekniska frågor.

Släppa öppen källkod för offentlig sektor, utmaningar på vägen.

När det stod klart att projektet var en bra kandidat för öppen källkod började nästa steg – att lyfta fram hur en öppen publicering kunde stärka Skolverkets digitala ekosystem, främja samarbete med skolhuvudmän och leverantörer samt bidra till en mer transparent och effektiv utvecklingsprocess.

Säkerhets- och sekretessfrågor

Inom Skolverket är säkerhet hög prioritet, inte minst för att det är en beredskapsmyndighet. En viktig del av processen var att visa hur en öppen källkodsrelease kunde stärka säkerheten genom ökad transparens och fler externa granskningar. Genom en noggrann dialog och analys kunde myndigheten säkerställa att öppenhet och säkerhet gick hand i hand. Denna insikt krävde både tid och dialog för att förankras.

Juridiska barriärer

Flera juridiska aspekter behövde lösas. Det krävdes att vi förstod och förklarade de licenskrav och immaterialrättsliga frågor som följer med öppen källkod, vilket innebar ett nära samarbete med juridiska team. En stor tröskel att överkomma var att övertyga juridik att projektet inte konkurrerade med marknaden.

Kulturellt motstånd

Skolverket hade redan tagit stora steg mot att ersätta äldre proprietär mjukvara med moderna och flexibla lösningar baserade på öppen källkod. Nästa naturliga steg var att inte bara använda öppen källkod utan även bidra genom att släppa egna projekt. Denna övergång innebar en strategisk förändring, där det var viktigt att tydliggöra de långsiktiga fördelarna. Genom att dela kod öppet kunde Skolverket inte bara öka transparensen och underlätta samarbete med externa aktörer, utan också skapa ett mer dynamiskt och framtidssäkert tekniskt ekosystem som gynnar både organisationen och dess samarbetspartners.

Slutsats och lärdomar

I slutändan bidrog detta projekt till att skapa en plattform som underlättar samarbete och innovation för utbildningssektorn i Sverige. Det är ett steg mot en mer öppen offentlig sektor, men också ett exempel på hur viktigt det är att arbeta för förändring även när utmaningarna är många.
Forumet for diskussion som skapades på GitHub har bidragit till flera bra tekniska förbättringar av lösningen baserat på givande bidrag från allmänheten/marknaden. Projektet har även bidragit till mycket “good will” från marknaden och har varit ett ovärderligt verktyg för att diskutera lösningar för att vi alla skall lyckas med digitala nationella proven.

För myndigheter och offentliga aktörer som överväger öppen källkod: håll fast vid fördelarna med öppenhet och samarbete, och var beredd på att arbeta igenom både kulturella och juridiska hinder för att nå målet. Projekten ni bygger för internt bruk kan likt detta projekt vara till större hjälp för allmänheten än vad man kan tro vid en första anblick.

Gustaf Nilstadius

Senior Java Consultant & Tech lead at Redpill Linpro

Gustaf started at Redpill Linpro in 2020 after spending multiple years abroad working in Silicon Valley. Gustaf is specialized in micro-services and the Vert.X framework.

Why automate Ansible

Ansible can be used for many things. There are only a few things I have on my bucket list of things I would like to do, where Ansible cannot help me.

One of my most urgent things to handle was the increasing complexity of Ansible, its configuration and in particular the role development. As I got deeper into Ansible, more and more factors needed to be taken into consideration when setting up a role: the role structure, linting issues, molecule ... [continue reading]

Comparison of different compression tools

Published on December 18, 2024

Why TCP keepalive may be important

Published on December 17, 2024