Kort fortalt

Open source kræver ikke nødvendigvis en intern udviklingsafdeling. Det kræver derimod tydeligt systemejerskab, dokumenteret konfiguration, aftalt hosting og support, leverandørstyring, licensoverblik, sikkerhedsopdateringer og en realistisk plan for exit eller fork.

Organisationsmodel for open source uden intern udviklingsafdeling

Kort fortalt

Open source kræver ikke nødvendigvis, at organisationen har egne programmører. Mange organisationer kan bruge open source som driftet ydelse, med ekstern hosting, supportaftale, specialistleverandør og tydeligt internt systemejerskab.

Men open source kræver stadig styring. Koden kan være åben, mens organisationen stadig kan blive afhængig af én leverandør, én hostingplatform, én konfiguration eller én nøgleperson. Den afgørende ledelsesopgave er derfor ikke at “have udviklere”, men at eje beslutningerne om drift, support, konfiguration, sikkerhedsopdateringer, data, exit og eventuel fork.

Artiklens anbefaling er at behandle open source som en drifts- og governance-model: internt ansvar for systemets formål og risikotolerance, eksternt ansvar for drift og teknisk vedligehold, dokumenteret ejerskab over konfiguration og en klar plan for, hvad der sker, hvis den valgte leverandør eller det valgte open source-projekt ikke længere passer til organisationens behov.

Beslutningen artiklen hjælper med

Artiklen hjælper ledelse, indkøb, systemejere og mindre IT-funktioner med at beslutte, om en open source-løsning er realistisk uden en intern udviklingsafdeling.

Den konkrete beslutning er ikke, om open source generelt er godt eller dårligt. Beslutningen er:

  • hvilke roller organisationen selv skal eje
  • hvilke opgaver der trygt kan købes hos eksterne partnere
  • hvilke krav der skal stilles til hosting, support, sikkerhed og dokumentation
  • hvornår en løsning kræver egentlig udviklingskapacitet
  • hvordan organisationen undgår at bytte proprietær lock-in ud med leverandør- eller konfigurations-lock-in

Konklusionen er enkel, men krævende: En organisation kan godt bruge open source uden egne udviklere, hvis den ikke samtidig outsourcer sit ansvar for systemejerskab.

Først: hvad open source betyder og ikke betyder

Open source er ikke bare software, hvor man kan se kildekoden. Open Source Initiative beskriver open source som licensvilkår, der blandt andet skal tillade adgang til kildekode, ændringer og videre distribution uden diskrimination mod personer, grupper eller anvendelsesområder. Det er en licens- og rettighedsmodel, ikke en garanti for gratis drift, modenhed, sikkerhed eller support. Open Source Initiative: The Open Source Definition

Det har tre praktiske konsekvenser.

For det første kan en løsning være “source available” uden at være open source efter OSI’s definition. Det er relevant i indkøb, fordi adgang til kildekode ikke nødvendigvis giver ret til at ændre, videreføre eller drive løsningen på egne vilkår.

For det andet betyder open source ikke, at organisationen skal modificere koden. Mange organisationer bør helst lade være med at lave egne ændringer, hvis standardfunktionalitet, konfiguration eller upstream-bidrag kan løse behovet.

For det tredje betyder open source ikke, at leverandørafhængighed forsvinder. Afhængigheden flytter ofte fra licensrettigheder til drift, konfiguration, opdateringer, integrationer, supportkompetence og projektets sundhed.

Denne artikel er generel beslutningsstøtte. Licensvalg, copyleft-forpligtelser, distribution, databehandling og offentlige udbud kan kræve særskilt juridisk vurdering.

Den grundlæggende organisationsmodel

En ikke-udviklerorganisation bør se open source som et samarbejde mellem fem roller.

RollePrimært ansvarMå ikke være uklart
Intern systemejerFormål, budget, risikotolerance, datakrav, brugerbehov og beslutningerHvem kan godkende ændringer, opgraderinger, leverandørskift og afvigelser?
DriftspartnerHosting, backup, overvågning, patching, adgangsstyring og beredskabHvad er SLA, gendannelsespunkt, logadgang, sikkerhedsopdateringer og exit-proces?
SupportleverandørFejlhjælp, brugerstøtte, konfigurationsrådgivning og prioritering af ticketsHvad er inkluderet support, responstid, eskalation og kendt grænse mellem brugerfejl og udviklingsarbejde?
SpecialistudviklerTilpasninger, integrationer, upstream-bidrag, sikkerhedsrettelser og fork-arbejdeHvem ejer ændringerne, hvor dokumenteres de, og kan en anden overtage dem?
Open source-projektetKildekode, roadmap, releases, sikkerhedsrettelser, community og licensHvem følger projektets sundhed, udgivelser, sårbarheder og større ændringer?

Den interne systemejer er ikke programmør. Rollen minder mere om produktansvar, kontraktejer og risikoejer. Systemejerens vigtigste opgave er at sikre, at eksterne parter arbejder efter organisationens behov, ikke kun efter teknisk bekvemmelighed.

Hvad organisationen selv bør eje

Selv uden udviklere bør organisationen eje seks ting.

1. Formål og beslutningskriterier

Organisationen skal kunne forklare, hvorfor løsningen er valgt. Er målet lavere licensbinding, bedre datakontrol, mulighed for lokal drift, større gennemsigtighed, bedre integration eller adgang til et bredere leverandørmarked?

Hvis open source kun vælges, fordi det lyder billigere, er beslutningen for tynd. Omkostningerne ligger ofte i drift, rådgivning, migration, brugertræning, dokumentation, integrationer og governance.

2. Konfiguration

Konfiguration er ofte den reelle forretningslogik. Den kan omfatte roller, rettigheder, workflows, felter, rapporter, skabeloner, integrationer, plugins, datamodeller, sikkerhedsindstillinger og mailopsætning.

Organisationen bør derfor eje en opdateret konfigurationspakke:

  • beskrivelse af miljøer, versioner og moduler
  • administratorroller og nødadgang
  • eksport af konfiguration, hvor løsningen understøtter det
  • liste over plugins, udvidelser og integrationer
  • dokumentation af afvigelser fra standard
  • beslutningslog for større ændringer
  • kontaktpunkter hos drift, support og specialistleverandør

Pointen er ikke, at organisationen selv skal kunne ændre alt. Pointen er, at en ny leverandør skal kunne forstå, hvad der er bygget.

3. Data og backup

Open source gør ikke data flytbare af sig selv. Data kan stadig ligge i komplekse databaser, filstrukturer, plugins eller proprietære hosted services.

Organisationen bør kræve:

  • regelmæssig dataeksport i dokumenterede formater
  • backup af både data, filer og konfiguration
  • testet gendannelse, ikke kun løfte om backup
  • dokumenteret adgang til logs, hvor de er nødvendige for drift og compliance
  • klar proces for dataudlevering ved leverandørskift

NTIA beskriver en SBOM som en formel optegnelse over komponenter og relationer i software. For en almindelig indkøbsorganisation er pointen bredere: man skal kende de byggesten, man er afhængig af. NTIA: The Minimum Elements For a Software Bill of Materials

4. Licens- og komponentoverblik

Organisationen behøver ikke have en intern licensjurist til alle open source-spørgsmål. Men den bør kræve, at leverandører kan dokumentere centrale komponenter og licenser.

SPDX er relevant, fordi det giver standardiserede måder at identificere softwarekomponenter og licenser på, herunder en licensliste med korte identifikatorer og permanente URL’er. SPDX SPDX License List

I praksis bør kritiske løsninger have mindst:

  • liste over hovedkomponenter og væsentlige plugins
  • licensidentifikation med standardnavne eller SPDX-identifikatorer, hvor muligt
  • afklaring af egen distribution, hosted service, ændringer og tredjepartskomponenter
  • proces for nye plugins og komponenter
  • ansvar for at reagere på sårbarheder i afhængigheder

Det er især vigtigt, hvis organisationen selv distribuerer software videre, får specialudviklet funktionalitet eller bruger copyleft-licenser. Her bør juridisk rådgivning inddrages.

5. Leverandørstyring

Open source kan give flere leverandørmuligheder, men kun hvis organisationen holder løsningen overtagelig. Hvis al viden ligger hos én driftspartner, er markedet teoretisk.

Leverandørstyring bør derfor måle på overtagelighed:

  • Kan en anden leverandør få adgang til dokumentation, miljøbeskrivelse og konfiguration?
  • Er adgang og ejerskab placeret hos organisationen, ikke kun leverandøren?
  • Kan supporthistorik, tickets og beslutningslog eksporteres?
  • Er specialtilpasninger dokumenteret og versionsstyret?
  • Er der klare grænser mellem standarddrift, support, rådgivning og udvikling?

6. Exit og fork

Open source giver principielt mulighed for at videreføre kode, men en fork er sjældent det første eller billigste svar. En fork betyder, at en variant af projektet vedligeholdes separat. Det kræver teknisk kompetence, sikkerhedsopdateringer, test, dokumentation og ansvar for fremtidige ændringer.

For de fleste ikke-udviklerorganisationer bør fork-strategien derfor være en trappe:

TrinBeslutningHvornår det passer
1. StandardBrug upstream uden egne kodeændringerBehov kan løses med konfiguration eller almindelige plugins
2. Bidrag upstreamFinansier eller bestil ændring, der kan indgå i projektetBehov er generelt nok til at gavne andre og accepteres af projektet
3. Midlertidig patchBrug en begrænset ændring, mens upstream-proces eller alternativ vurderesSikkerhed, compliance eller drift kræver hurtig handling
4. Leverandørvedligeholdt variantBetal specialist for at vedligeholde afvigelseBehov er vigtigt, men ikke egnet til upstream
5. Strategisk forkEtabler særskilt vedligehold med budget, test, releaseproces og ansvarProjektet er kritisk, upstream kan ikke bruges, og alternativer er dårligere

En moden fork-strategi er ikke “vi kan altid forke”. Den er en dokumenteret beslutning om, hvornår organisationen vil betale for at bære et udviklingsansvar, den normalt har valgt fra.

Fire realistiske driftsmodeller

Open source uden intern udviklingsafdeling kan organiseres på flere måder.

ModelPasser bedst nårStørste risikoNøglekrav
Driftet open source-ydelseOrganisationen vil købe funktionalitet og support som serviceLeverandøren gør løsningen svær at overtageKontraktkrav til data, konfiguration, eksport, backup og exit
Ekstern hosting plus særskilt supportOrganisationen vil skille drift og faglig support adAnsvar falder mellem to leverandørerKlar eskalation, hændelsesansvar og fælles dokumentation
Lokal driftspartner med specialistbaglandOrganisationen ønsker tæt dialog og dansk/europæisk leverandørmarkedÉn lokal partner bliver eneste videnspunktDokumentation, adgangsejerskab og mulighed for sekundær specialist
Intern drift uden udviklereOrganisationen har teknisk drift, men ikke softwareudviklingPatching, opgraderinger og integrationer undervurderesFast supportaftale, opgraderingsplan, testmiljø og beredskab

Ingen model er automatisk bedst. Driftet ydelse kan være den mest realistiske model for en lille organisation. Særskilt hosting og support kan give bedre leverandørkontrol, men kræver mere koordination. Intern drift kan give kontrol, men kan være svagere, hvis organisationen mangler erfaring med sikkerhedsopdateringer og incident response.

Supportaftalen er ikke en formalitet

Mange open source-projekter har aktivt community, men community er ikke det samme som driftsansvar. En organisation uden intern udviklingsafdeling bør købe eller aftale support, hvis systemet er vigtigt.

En god supportaftale bør svare på:

OmrådeSpørgsmål
OmfangDækker support brugerfejl, konfiguration, integrationer, performance, sikkerhed og opgraderinger?
ResponstidHvad er responstid ved kritiske fejl, og hvordan defineres kritisk?
EskalationHvornår går en sag fra support til driftspartner, specialistudvikler eller upstream-projekt?
SårbarhederHvem overvåger CVE’er, advisories og projektets release-kanaler?
PatchingHvem vurderer, tester og installerer sikkerhedsopdateringer?
OpgraderingerHvor ofte opgraderes løsningen, og hvordan testes ændringer før produktion?
DokumentationHvilke ændringer dokumenteres, og hvor ligger dokumentationen?
ExitHvad udleveres ved ophør: data, konfiguration, scripts, dokumentation, logs og supporthistorik?

NIST’s Secure Software Development Framework er skrevet til softwareproducenter, men NIST fremhæver også, at rammen kan bruges af softwarekøbere og -forbrugere som fælles sprog i leverandørdialog og anskaffelse. Det er netop værdien for en ikke-udviklerorganisation: kravene skal kunne stilles til leverandøren, selv om organisationen ikke selv skriver koden. NIST SP 800-218

Projektets sundhed skal vurderes

Open source giver adgang til kode, men projektets sundhed afgør, om koden er en levende platform eller en risiko, der langsomt vokser.

Vurder mindst:

  • Hvor ofte udkommer vedligeholdelses- og sikkerhedsopdateringer?
  • Er der flere aktive maintainere eller kun få nøglepersoner?
  • Er security policy, release notes og changelog tydelige?
  • Håndteres fejlrapporter og pull requests?
  • Har projektet dokumentation for installation, opgradering, backup og drift?
  • Findes der flere leverandører, der kan supportere løsningen?
  • Er licensen stabil og forstået af leverandør og organisation?
  • Er de vigtigste plugins eller udvidelser lige så vedligeholdte som hovedprojektet?

OpenSSF publicerer vejledninger om open source-sikkerhed, herunder materialer om SBOM-data, komponentopdateringer og sikker udviklingspraksis. Det understøtter en vigtig pointe: risikoen ligger ikke kun i hovedsystemet, men også i afhængigheder, opdateringsprocesser og leverandørens evne til at reagere. OpenSSF Guides

Governance-matrix: hvem gør hvad?

Brug denne matrix som minimumsmodel ved kritiske open source-løsninger.

AktivitetIntern systemejerDriftspartnerSupportleverandørSpecialistudvikler
Godkende formål, budget og risikotoleranceAnsvarligInputInputInput
Drive hosting, backup og overvågningBeslutter kravAnsvarligInformeresInput ved ændringer
Håndtere brugersupport og konfigurationPrioritererInputAnsvarligInput ved fejl i kode
Overvåge sikkerhedsopdateringerSikrer procesAnsvarlig for driftspakkerInput om applikationInput om kode og afhængigheder
Dokumentere konfiguration og ændringerEjer kravBidragerBidragerBidrager
Vurdere nye plugins eller modulerGodkenderVurderer driftVurderer supportVurderer kode og licens
Teste dataeksport og restoreGodkender testAnsvarlig for restoreInput om funktionInput ved migration
Kontakte upstream eller bidrage kodeBeslutter finansieringInputInputAnsvarlig teknisk
Beslutte fork eller alternativAnsvarlig ledelsesbeslutningInputInputEstimerer og udfører

Matrixen kan virke administrativ, men den løser et praktisk problem: open source-projekter fejler sjældent i organisationer, fordi ingen kan læse kode. De fejler oftere, fordi ingen ved, hvem der ejer ændringer, opgraderinger, konfiguration, fejlprioritering og exit.

Indkøbskrav til en open source-løsning

Ved indkøb eller fornyelse bør organisationen stille krav, der kan besvares skriftligt.

Krav til løsning og licens

  • Hvilken open source-licens gælder for hovedproduktet?
  • Hvilke væsentlige plugins, udvidelser og komponenter indgår?
  • Kan leverandøren levere licens- og komponentoversigt, gerne med SPDX-identifikatorer hvor relevant?
  • Er der dele af ydelsen, der ikke er open source, for eksempel hosted service, proprietære plugins eller supportværktøjer?
  • Hvilke rettigheder har organisationen til specialtilpasninger?

Krav til drift og sikkerhed

  • Hvem har ansvar for patching af applikation, operativsystem, database, runtime og plugins?
  • Hvor hurtigt vurderes og håndteres kritiske sårbarheder?
  • Findes der testmiljø før opgradering?
  • Hvordan håndteres backup, restore-test, logs, overvågning og hændelser?
  • Hvordan kontrolleres administratoradgang og nødadgang?

Krav til konfiguration og exit

  • Kan organisationen få komplet konfigurationsdokumentation?
  • Kan data, filer, konfiguration, brugerroller og relevante logs eksporteres?
  • Hvad sker der ved ophør, og hvor lang tid tager udlevering?
  • Hvilken bistand ydes ved leverandørskift?
  • Må en anden leverandør overtage drift og support uden tekniske eller kontraktuelle hindringer?

Krav til governance

  • Hvem følger upstream-releases og sikkerhedsmeddelelser?
  • Hvordan besluttes større opgraderinger?
  • Hvordan vurderes nye plugins?
  • Hvordan dokumenteres ændringer?
  • Hvordan eskaleres fejl, der kræver kodeændring?

Disse krav er ikke en garanti for succes. De gør derimod forskellen mellem “vi bruger open source” og “vi kan styre den open source-løsning, vi er afhængige af”.

Worked example: fagsystem uden egne udviklere

Forestil dig en organisation med 120 medarbejdere, begrænset intern IT og et fagsystem baseret på open source. Organisationen vælger en driftet løsning hos en ekstern partner, support hos en specialist og en intern systemejer i fagområdet.

Første udkast til ansvar ser sådan ud:

OmrådeBeslutning
SystemejerFagchefen ejer prioritering, budget og risikotolerance. IT-koordinator er teknisk kontakt.
HostingDriftspartner leverer hosting, backup, overvågning, patching og restore-test.
SupportSupportleverandør håndterer brugersager, opsætning og eskalation.
KonfigurationAlle ændringer dokumenteres i en fælles ændringslog og eksporteres kvartalsvist, hvor muligt.
PluginsNye plugins kræver vurdering af vedligehold, licens, dataadgang og opgraderingsrisiko.
SikkerhedKritiske sikkerhedsopdateringer vurderes inden for aftalt responstid og testes før produktion, med nødprocedure for hastesager.
DataDer gennemføres halvårlig eksporttest og årlig restore-test.
ForkFork er ikke standardmulighed. Førstevalg er upstream-bidrag eller alternativ leverandør.

Efter tre måneder opdager organisationen, at den vigtigste risiko ikke er manglende udviklere. Risikoen er, at supportleverandøren kender konfigurationen, driftspartneren kender infrastrukturen, og systemejeren kender forretningsbehovet, men ingen har samlet dokumentationen.

Den modne handling er ikke at ansætte en programmør med det samme. Den modne handling er at etablere et konfigurationsregister, en fælles ændringsproces, en opgraderingskalender, en restore-test og en leverandørworkshop om exit.

Hvornår open source uden udviklere ikke passer

Modellen har klare grænser.

Open source uden intern udviklingskapacitet passer dårligere, når:

  • løsningen kræver omfattende specialkode for at fungere
  • projektet er umodent, sjældent vedligeholdt eller afhængigt af få ukendte maintainere
  • der ikke findes realistiske support- eller driftspartnere
  • sikkerhedsopdateringer kræver hurtige kodeændringer, som ingen har ansvar for
  • organisationen har meget specielle integrationer uden dokumentation
  • licensvilkår eller distribution skaber juridisk usikkerhed, som ikke bliver afklaret
  • ledelsen ønsker kontrol, men ikke vil betale for dokumentation, test, support og governance

Det sidste punkt er ofte det vigtigste. Open source kan reducere nogle bindinger, men det fjerner ikke behovet for budget og ansvar.

Afvejninger: hvad man vinder og hvad man overtager

Open source kan give organisationen stærkere handlefrihed, fordi kildekode, licensrettigheder og flere potentielle leverandører kan gøre exit mere realistisk end ved helt lukkede løsninger.

Men gevinsten kommer kun, hvis organisationen styrer de nye ansvar:

Mulig gevinstNy opgave
Mere gennemsigtighedNogen skal vurdere projektets sundhed og komponenter
Flere leverandørerDokumentation skal gøre løsningen overtagelig
Mulighed for lokal eller alternativ driftBackup, restore, patching og adgang skal testes
Mulighed for tilpasningTilpasninger skal ejes, dokumenteres og vedligeholdes
Mindre licensbindingSupport, drift og kompetence skal budgetteres

Derfor er open source ikke en genvej væk fra governance. Det er en mulighed for bedre governance, hvis organisationen bruger åbenheden aktivt.

90-dages plan for ikke-udviklerorganisationen

En realistisk opstart kan gøres i fire spor.

Dag 0-30: placer ansvar

  1. Udpeg intern systemejer og kontraktejer.
  2. Beskriv hvad løsningen er kritisk for.
  3. Aftal hvem der ejer drift, support, sikkerhedsopdateringer og konfiguration.
  4. Lav liste over datatyper, integrationer, plugins og administratorroller.

Dag 30-60: få dokumentationen på plads

  1. Indhent miljøbeskrivelse, versionsoversigt og komponentliste.
  2. Dokumentér konfiguration, brugerroller, integrationer og afvigelser fra standard.
  3. Aftal opgraderingskalender og sårbarhedsproces.
  4. Afklar licens- og komponentoverblik med leverandør.

Dag 60-90: test at modellen virker

  1. Gennemfør begrænset dataeksport.
  2. Gennemfør restore-test for udvalgte data og konfiguration.
  3. Test eskalation mellem support, drift og specialist.
  4. Lav exit-notat: hvad skal en ny leverandør bruge for at overtage?

Efter 90 dage: beslut næste niveau

Ledelsen bør derefter beslutte, om løsningen kan fortsætte som almindelig driftet open source-ydelse, om governance skal styrkes, om der er brug for en specialistudviklingsaftale, eller om afhængigheden er for høj.

Spørgsmål til første leverandørmøde

Brug disse spørgsmål som mødedagsorden:

  1. Hvilke dele af løsningen er open source, og hvilke dele er leverandørspecifikke?
  2. Hvilken licens gælder for hovedprodukt, plugins og specialtilpasninger?
  3. Hvordan får vi data, filer og konfiguration ud ved leverandørskift?
  4. Hvem følger sikkerhedsmeddelelser og upstream-releases?
  5. Hvordan håndteres kritiske sårbarheder uden for normal opgraderingsplan?
  6. Hvilken dokumentation modtager vi løbende?
  7. Kan en anden leverandør overtage drift og support, hvis aftalen ophører?
  8. Hvilke ændringer bør sendes upstream i stedet for at blive lokale specialtilpasninger?
  9. Hvad er de tre største driftsrisici i løsningen i dag?
  10. Hvilke beslutninger kræver intern systemejer, før leverandøren handler?

Hvis leverandøren ikke kan svare på disse spørgsmål, er det ikke nødvendigvis et tegn på dårlig vilje. Men det er et tegn på, at organisationen endnu ikke har et tilstrækkeligt beslutningsgrundlag.

Kilder

Dette er generel information og ikke juridisk rådgivning.