Att få Skolverkets DNP-SS12000 Referens API släppt som öppen källkod har varit en både givande och 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 jag en stark övertygelse om att öppen källkod skulle gynna både Skolverket och marknaden, men processen var inte utan hinder.

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.

Vem är jag? Jag är 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 jag tillsammans med mitt team på för att detta systemet även skulle gynna allmänheten. Vi ansåg att projektet skulle hjälpa utvecklare ute hos huvudmä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 rent tekniska frågor.

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

När vi bestämt oss i teamet att det projektet lämpade sig väl för att släppas som öppen källkod började den riktiga utmaningen, att övertala verksamheten och övriga Skolverket.

Säkerhets- och sekretessfrågor

Inom myndigheter är säkerhetsrisker en hög prioritet. Att visa hur en öppen källkodsrelease kan vara lika säker (om inte säkrare) och dessutom ge en möjlighet till fler ögon på koden, tog både tid och övertygelse.

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

Vi hade på Skolverket redan innan referens APIet gjort ett stort arbete för att gå ifrån gammal proprietär mjukvara till öppen källkods-alternativ. Men att vara mottaglig att använda öppen källkod är en lång väg ifrån att också släppa egna projekt som öppen källkod, även om det kan tyckas vara en dubbelmoral Här var min roll att visa de långsiktiga fördelarna: hur öppen källkod kan skapa ett mer dynamiskt och framtidssäkert tekniskt landskap.

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 dem som överväger en liknande resa: 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