Hvad er kildekode?
Kildekode er de læsbare instruktioner som udviklere skriver, originalen som al kørende software bygges ud fra. Det eksekverbare produkt som brugeren møder, fremstilles ud fra kildekoden, lidt som en bygning ud fra en tegning. At eje og have adgang til kildekoden er derfor et centralt aftalespørgsmål for kunden, sammen med build-scripts, konfiguration og dokumentation.
Kildekode er et ord de fleste har hørt, men hvad det egentlig er, og hvorfor det er en af de vigtigste ting at regulere når man køber software, er ikke altid klart. Det er værd at forstå, for det handler grundlæggende om hvem der ejer og kontrollerer det I betaler for. Her er forklaringen.
Definitionen
Kildekode er de læsbare instruktioner som udviklere skriver for at fortælle computeren hvad den skal gøre. Den skrives i et programmeringssprog, tekst som mennesker kan læse, forstå og ændre i, og er originalen som al kørende software bygges ud fra. Hver app, webtjeneste og hvert system har en kildekode i bunden.
Man kan se den som softwarens originalmanuskript eller tegning. Det er i kildekoden logikken ligger: hvad der sker når der trykkes på en knap, hvordan data håndteres, hvilke regler der gælder. Det du ser og bruger på skærmen, er resultatet af at den kode køres, men selve værket, det der kan ændres og bygges videre på, er koden.
Kildekode vs. eksekverbart produkt
Den vigtigste forskel at forstå er den mellem kildekoden og det færdige produkt, og sammenligningen med en tegning indfanger den godt.
Kildekoden er tegningen: læsbar, til at ændre og fuld af instruktioner om hvordan det hele skal sættes sammen. Ud fra den fremstilles, eller “bygges”, et eksekverbart produkt, det program computeren faktisk kører. Det produkt svarer til den færdige bygning: Man kan bo i den og bruge den, men den kan ikke læses som en tegning, og man kan ikke bygge den om uden at gå tilbage til originalen.
I praksis betyder det at den der kun har det eksekverbare produkt, kan bruge systemet, men ikke ændre det. Vil man rette en fejl, tilføje en funktion eller lade en anden overtage udviklingen, kræver det kildekoden. Præcis som man har brug for husets tegninger for at bygge det fornuftigt om, har man brug for softwarens kildekode for at videreudvikle den.
Hvorfor ejerskabet er afgørende
Her bliver det forretningskritisk, og det er den centrale pointe for en kunde. Hvem der ejer og har adgang til kildekoden, afgør hvem der i virkeligheden kontrollerer systemet.
Har I kildekoden, er I frie. I kan videreudvikle løsningen, hente en hvilken som helst leverandør ind til at fortsætte arbejdet og gennemgå præcis hvad der er bygget. Har I den ikke, ligger kontrollen hos den der har den, og ved hver fremtidig ændring, hver rettelse og hver forbedring er I afhængige af dem. Et samarbejde der kører af sporet, kan så blive meget dyrt fordi kildekoden i praksis bliver et pressionsmiddel.
Derfor bør ejerskab og adgang til kildekoden være udtrykkeligt reguleret i aftalen, gerne med krav om at koden løbende ligger i et repository I har adgang til. Det er ikke noget man skal tage kampen om bagefter; det er noget der skal fastslås før projektet begynder. Hos Weapp ser vi det som en selvfølge at kunden ejer sin kildekode: I har trods alt betalt for at den bliver skrevet.
Hvad der hører med omkring koden
En sidste ting der er værd at vide, er at kildekoden sjældent er helt nok i sig selv. Omkring den findes flere dele der er nødvendige for at systemet faktisk kan bygges og drives.
- Build-scripts er det der omdanner kildekoden til et eksekverbart produkt: opskrifterne på hvordan buildet foregår.
- Konfiguration styrer hvordan systemet opfører sig i forskellige sammenhænge, f.eks. forskellen mellem et test- og et produktionsmiljø.
- Dokumentation forklarer hvordan delene hænger sammen så en der ikke har skrevet koden, alligevel kan sætte sig ind i den.
Uden de dele kan selv den der formelt ejer kildekoden, få svært ved at komme videre. Sørg derfor for at helheden er med når I regulerer ejerskabet: koden, ja, men også alt det der skal til for at gøre noget ud af den. Vil I have hjælp til at finde ud af hvad I faktisk ejer af jeres system i dag, så kontakt os.
Ofte stillede spørgsmål
Hvad er kildekode, forklaret enkelt?
Det er den tekst udviklere skriver for at fortælle computeren hvad den skal gøre: softwarens originalmanuskript, i et programmeringssprog som mennesker kan læse. Alt hvad du bruger, fra en app til en webtjeneste, er bygget ud fra sin kildekode. Den er selve værket; det du ser på skærmen, er resultatet af at koden er blevet kørt.
Hvad er forskellen på kildekode og det færdige produkt?
Kildekoden er den læsbare tegning; det færdige produkt er bygningen der er opført ud fra den. Ud fra kildekoden fremstilles et eksekverbart program som computeren forstår, men som et menneske ikke kan læse eller ændre i. Har man kun det eksekverbare produkt, kan man bruge det, men ikke ændre eller videreudvikle det. Det kræver kildekoden, præcis som man har brug for tegningen for at bygge et hus om.
Hvorfor er det vigtigt at eje kildekoden?
Fordi den afgør om I faktisk har kontrol over jeres system. Med kildekoden i hånden kan I videreudvikle løsningen, skifte leverandør og gennemgå hvad der er bygget. Uden den er I afhængige af den der har koden, ved hver fremtidig ændring. Derfor bør ejerskab og adgang til kildekoden være klart reguleret i aftalen, ikke noget man tager for givet og opdager for sent.
Hvad skal vi have adgang til ud over selve koden?
Koden alene er sjældent nok. Omkring den findes build-scripts der omdanner kildekode til et eksekverbart produkt, konfiguration der styrer hvordan systemet opfører sig i forskellige miljøer, og dokumentation der forklarer hvordan det hele hænger sammen. Uden de dele kan selv den der har kildekoden, få svært ved at bygge og drive systemet. Sørg derfor for at helheden er med, ikke kun koden i sig selv.
Hvordan sikrer jeg at vi får kildekoden?
Skriv det ind i aftalen fra begyndelsen. Fastslå at I ejer kildekoden, og at den løbende skal ligge i et repository I har adgang til, sammen med build-scripts, konfiguration og dokumentation. Vent ikke til projektet er slut, eller samarbejdet er kørt af sporet: Så er kildekoden et pressionsmiddel. Reguleret på forhånd er det en selvfølge og en af de billigste forsikringer der findes.