– Mest mulig av koden og dokumentasjonen vi skriver bør være åpent tilgjengelig. Offentlig finansierte løsninger bør være offentlig tilgjengelig.
Det sier Joakim Taule Kartveit, senior backend-utvikler i NAVs IT-avdeling.
Nylig passerte NAV en stor milepæl og et mål de hadde satt seg – nemlig 2.000 git-repoer offentlig tilgjengelig på Github. Dette er såvidt vi vet mer enn noen andre offentlige eller private organisasjoner i Norge.
https://t.co/2MrELIb7dc
— Audun F Strand (@audunstrand) April 24, 2023
We have over 5k repositories, and have just reached one of our targets, and now have 2000 public repositories. We believe that publicly funded code should be open.
– I disse 2.000 repoene har vi alt fra applikasjoner som genererer PDF-er til biblioteker som validerer gyldigheten av norske fødsels- og D-nummere, og mange av tjenestene som innbyggere kan benytte seg av, sier Kartveit.
«Det at andre kan gjenbruke koden NAV-utviklerne har laget, er en heldig bieffekt.»
Avgjørende for NAVs samfunnsoppdrag
Kartveit forteller til kode24 at det er avgjørende for NAVs samfunnsoppdrag at det er et tillitsforhold mellom NAV og brukerne av NAV.
– Et viktig element for å skape tillit er åpenhet og gjennomsiktighet i det NAV gjør, sier han.
Motivasjonen for å gjøre så mye av koden til NAV åpent tilgjengelig er ikke først og fremst at andre skal bruke den, men at det skal være åpenhet og gjennomsiktighet i de digitale løsningene.
Det at andre kan gjenbruke koden NAV-utviklerne har laget, er en heldig bieffekt, mener Kartveit.
Det er imidlertid ikke alt som er åpent – totalt skal det være så mange som 5.000 kodebaser hos NAV.
Frykter nye lover om åpen kildekode: - Kommer til å bli smertefullt
Ønsker pull requester velkomne
Åpen kildekode er noe det ifølge Karveit snakkes mye om i NAV. Internt i virksomheten prøver de hele tiden å fremheve fordeler med å kode åpent – og vise til andre som har gjort det.
– Dette blir også presentert for nyansatte og konsulenter ved onboarding. Det gjør at å åpne opp kildekoden blir innarbeidet og ligger i ryggmargen til utviklere når de skal bygge ny eller flytte på eksisterende kildekode, sier Kartveit.
– Hvilken nytte har dere selv av at repoene er åpne? Får dere bidrag og pull requests fra andre utenfor NAV?
– Vi har stor nytte av dette. Vi får noen bidrag fra andre utenfor NAV, men skulle gjerne hatt flere. Jeg er sikker på at det er noen utenfor NAV som har gode tanker og løsninger for noen av applikasjonene vi har.
Han ønsker pull requests velkommen.
– Det kan til og med være noen som finner feil i systemene våre når de bruker dem.
«Jeg er sikker på at det er noen utenfor NAV som har gode tanker og løsninger for noen av applikasjonene vi har.»
Utfordringer for sikkerhet
Om åpen kildekode er bra eller dårlig for sikkerheten, er en evig diskusjon – og Kartveit innrømmer at åpen kildekode kan bety både muligheter og utfordringer for sikkerhet.
– Når vi åpner opp for innsyn kan eksterne melde fra om sikkerhetshull i koden vår, slik at vi ender opp med sikrere systemer. Samtidig må vi sørge for at sensitiv informasjon, slik som personopplysninger og tilgangsnøkler, ikke kommer i hendene til aktører med ondsinnede hensikter.
Kartveit forteller at det finnes en rekke verktøy som kan hjelpe til med å sørge for nødvendig sikkerhet når man koder åpent. For eksempel skanne etter tredjepartsbiblioteker med kjente sårbarheter, finne feil i koden eller kjøre automatisk penetrasjonstesting.
– Når man oppdager sårbarheter, må man raskt kunne deploye ny kode som lukker sårbarheten.
- Vi er vant til å høre at fri kode og proffe miljøer står i konflikt
Gode råd til andre
Kartveit oppfordrer flere til å åpne opp kildekoden sin. Han sier de fleste utviklere han kjenner er fan av åpen kildekode, men at det ofte stopper opp i dialog med ledelsen og juridiske spørsmål om hvorvidt det er lovlig å dele koden.
– Mitt beste tips er å stå i den kampen, og at det er noe som bør prioriteres av virksomheten. Vis til andre som har åpnet kildekoden, og at dette er noe som er bra.
Sannsynligvis er virksomheten allerede avhengig av andres åpne kildekode.
– Det blir rart å bruke andres åpne kildekode, men ikke dele sin egen. Det blir som å synes det er stas og hyggelig å bli invitert til middag hos venner, men aldri selv inviterer vennene til seg.
Disse repoene er mest populære
2.000 repoer er mye å gå gjennom. Kartveit har derfor noen tips om hvilke du bør ta en nærmere kikk på.
De nyttigste og mest spennende repoene:
- pdfgen – tilbyr et API som lager en PDF ut fra JSON-data. NAV bruker dette til blant annet generering av sykemeldinger.
- Retningslinjer for åpen kildekode i NAV. Inneholder gode tips for andre som vurderer åpen kildekode.
- Aksel. NAVs designsystem + kildekoden til aksel.nav.no (hvor du også finner en gigantisk, gratis ikonpakke)
De mest populære repoene (stjerner på GitHub):
- Mock OAuth2 Server
- NAV's Design System
- Legacy COBOL System
- Retningslinjer for offentlig
- Rapids and Rivers-konsept
- Kafka PlainSasl Server 2 ad
– Hva er det rareste folk kan forvente å finne hos dere?
– Noe av det rareste må nok være å se på Det Sentrale Folketrygdsystemet. Dette er jo PL/I-kode som har duret og gått i mange år. Det er jo også en kjennsgjerning at vi fremdeles har noe legacy-systemer som vi jobber med å komme oss ut av, som stormaskin-applikasjonen Infotrygd.
kode24 har tidligere skrevet om denne kodebasen, og om Infotrygd som er skrevet i COBOL - det kan du lese mer om her: