Altinn og åpen kildekode

Altinn 3 er åpen kildekode, med en åpen backlog, åpen dokumentasjon og åpen dialog og diskusjoner.

På denne siden:

Det er flere som har fått med seg at Altinn har tatt en fundamentalt ny og åpen retning de siste årene.

Vi har fått litt spørsmål om hvorfor vi har gjort dette, og tenker det kan være interessant at vi deler våre tanker om åpen kildekode, som en sentral nasjonal felleskomponent.

Deling og gjenbruk

Det finnes mange gode grunner til å dele kode som åpen kildekode.

NAV, en av de virkelig store inne åpen kildekode i Norge, er også inne på flere av de samme punktene, men særlig dette med viktigheten av gjennomsiktighet og tillit i forhold til løsninger finansiert av det offentlige.

Vi applauderer når NAV skriver dette:

Offentlig finansierte løsninger bør være offentlig tilgjengelig.
Motivasjonen er da ikke hovedsakelig gjenbruk, selv om det selvsagt er en heldig bieffekt. Motivasjonen er først og fremst åpenhet og gjennomsiktighet i de digitale løsningene.

Gjenbruk er derimot noe vi i Altinn anser som en helt sentral motivasjon. Og vi er ikke alene om å tenke slik:

We share our code and enable incidental ciontributions to related open-source projects

EU Governing Principle 5.3 - Share

Vi legger til rette for gjenbruk og deling på alle nivåer i arkitekturen til Altinn 3, fra våre prinsipper til hele plattformen og infrastrukturen, ned til design og GUI-komponenter, kode og konfigurasjon.

Dette er også en av flere grunner til at Altinn nå er et digitalt fellesgode (DPG), der målsettingen er å kunne gjenbruke det vi utvikler ikke bare på nasjonalt nivå, men også globalt for å understøtte FNs bærekraftsmål.

Vi oppfordrer også alle de som lager tjenester med Altinn Studio til å dele sine apper, og alt er tilrettelagt for at det skjer automatisk. Faktisk så må tjenesteeierne gjøre et aktivt valg for å ikke dele, siden deling og gjenbruk på tvers i det offentlige er helt sentralt i Altinn 3.

Samarbeid

Den beste måten å få til et godt samarbeid på tvers av organisasjoner og prosjekter er åpenhet og gjennomsiktighet, at alle kan bidra, gi input, bli hørt, følge med på det som skjer.

Det er dette som har vært helt sentralt i “revolusjonen” med åpen kildekode, som har blitt den nye normalen for store deler av programvareutvikling i verden. Det er nå 40 millioner utviklere og over 28 millioner åpne repos på GitHub.

Siden alle våre verktøy og avhengigeheter ligger åpent på GitHub så kan også vi i Altinn følge med, samarbeide og bidra tilbake til programvare som vi benytter.

Eksempler på dette er .NET, Kubernetes, React, Linkerd og Gitea.
Og vår issue #5992 er et godt eksempel på hvordan vi kan spore og enkelt lenke til saker på tvers av programvare.

Og siden Altinn er åpen kildekode på GitHub, så er det like enkelt for alle andre å gjøre det samme mot oss. Både det å opprette nye issues, bidra i diskusjoner eller bidra med kode, noe labelen external-contribution-❤️ illustrerer godt.

Leverandørbindinger

Altinn som felleskomponent har tidligere fått store utfordringer ved å basere seg på lukket proprietær programvare. Programvare fra Adobe i Altinn 1 og fra Microsoft i Altinn 2.

End-of-life for proprietær programvare er faktisk hovedårsaken til behovet for å lage Altinn 3.

Når du bygger en løsning på toppen av proprietær programvare så har du i praksis mistet kontroll over egen fremtid, f.eks. om leverandøren velger å fase ut produktet. Om man baserer seg på åpen kildekode så kan man i en slik situasjon lage en fork, om ikke noen andre gjør det.

Altinn 3 er derfor basert på programvare og biblioteker som er åpen kildekode.

Vi tenker at dette naturlig nok også er veldig viktig for de som vurderer om man skal ta i bruk Altinn.

Hvilke bindinger innfører vi til Altinn som teknisk løsning og Digdir som “leverandør”? Selv om Altinn er et samarbeid, så vil dette være viktige spørsmål.

Altinn 3 er derfor helt åpen kildekode med liberal lisensiering, og alt som utvikles kjører som vanlige containere.

De beste verktøyene

For å utvikle god programvare så er det viktig å ha tilgang til gode verktøy.

En ting som mange kanskje ikke tenker på er at når du deler det du utvikler som åpen kildekode, så blir mange av de aller beste verktøyene der ute tilgjengelig - helt gratis.

“Del, og du blir delt med…”

Her er noen av de fantastiske SaaS-verktøyene som vi benytter:

  • GitHub - Håndtering av kildekode, backlogs, boards, automatisering, CI/CD, etc.
  • ZenHub - Epos, estimering, avhengigheter, rapporter.
  • Cypress - Dashboards og automatisert testing av GUI.
  • SonarCloud - Statisk analyse av kildekode.
  • LGTM - Sikkerhetsanalyse av kildekode.

Og dette er bare et lite utvalg…
Alle verktøy og rammeverk som vi bygger Altinn på toppen av, er åpen programvare som er veldig godt likt.

De beste folkene

Det er et gjennomgående tema at folk liker å jobbe med ny teknologi og de beste verktøyene. De beste utviklerne foretrekker også å jobbe med åpen kildekode, føle at man bidrar til noe større, at man setter spor.

I tiden som har gått siden vi lanserte Altinn 3 så har vi ansatt en del veldig dyktige folk, og et gjennomganstema i intervjuer og diskusjoner er at de beste kandidatene er tydelige på at de synes det er viktig med åpen kildekode, og at dette er noe de ønsker å være med på.

Vi ønsker å bygge et stort community, der alle kan bidra, og da er det ekstremt viktig at vi har teams med dyktige og fornøyde utviklere som kan hjelpe til med å få det til å skje.