Hva er kildekode?
Kildekode er de lesbare instruksjonene utviklere skriver, originalen som all kjørende programvare bygges fra. Det kjørbare produktet brukeren møter, lages ut fra kildekoden, omtrent som en bygning ut fra en tegning. Å eie og ha tilgang til kildekoden er derfor et sentralt avtalespørsmål for kunden, sammen med build-skript, konfigurasjon og dokumentasjon.
Kildekode er et ord de fleste har hørt, men hva det egentlig er, og hvorfor det er noe av det viktigste man må regulere når man bestiller programvare, er ikke alltid klart. Det er verdt å forstå, for det handler i bunn og grunn om hvem som eier og kontrollerer det dere betaler for. Her er forklaringen.
Definisjonen
Kildekode er de lesbare instruksjonene som utviklere skriver for å fortelle datamaskinen hva den skal gjøre. Den skrives i et programmeringsspråk, altså tekst som mennesker kan lese, forstå og endre, og er originalen som all kjørende programvare bygges fra. Hver app, hver nettjeneste og hvert system har en kildekode i bunnen.
Man kan se den som originalmanuset eller tegningen til programvaren. Det er i kildekoden logikken finnes: hva som skjer når en knapp trykkes inn, hvordan data håndteres, hvilke regler som gjelder. Det du ser og bruker på skjermen, er resultatet av at koden kjøres, men selve verket, det som kan endres og bygges videre på, er koden.
Kildekode mot kjørbart produkt
Den viktigste forskjellen du bør forstå, er den mellom kildekoden og det ferdige produktet, og sammenligningen med en byggetegning fanger den godt.
Kildekoden er tegningen: lesbar, redigerbar og full av instruksjoner om hvordan alt skal settes sammen. Ut fra den lages, eller «bygges», et kjørbart produkt, programmet datamaskinen faktisk kjører. Det produktet tilsvarer den ferdige bygningen: Man kan bo i den og bruke den, men den kan ikke leses som en tegning, og man kan ikke bygge den om uten å gå tilbake til originalen.
I praksis betyr det at den som bare har det kjørbare produktet, kan bruke systemet, men ikke endre det. Vil man rette en feil, legge til en funksjon eller la noen andre ta over utviklingen, kreves kildekoden. Akkurat som man trenger tegningene til huset for å bygge det om på en fornuftig måte, trenger man kildekoden til programvaren for å videreutvikle den.
Hvorfor eierskapet er avgjørende
Her blir det forretningskritisk, og det er det sentrale poenget for en kunde. Hvem som eier og har tilgang til kildekoden, avgjør hvem som egentlig kontrollerer systemet.
Har dere kildekoden, står dere fritt. Dere kan videreutvikle løsningen, gå gjennom nøyaktig hva som er bygget, og hente inn hvilken leverandør dere vil for å fortsette arbeidet. Har dere den ikke, ligger kontrollen hos den som har den, og for hver fremtidig endring, hver rettelse og hver forbedring er dere avhengige av den parten. Et samarbeid som surner, kan da bli svært dyrt fordi kildekoden i praksis blir et pressmiddel.
Derfor bør eierskap og tilgang til kildekoden være uttrykkelig regulert i avtalen, gjerne med krav om at koden fortløpende ligger i et kodelager dere har tilgang til. Det er ikke noe man bør krangle om i etterkant, men noe som skal slås fast før prosjektet starter. Vi i Weapp ser det som en selvfølge at kunden eier kildekoden sin. Dere har tross alt betalt for at den skal skrives.
Det som hører med rundt koden
En siste ting som er verdt å vite, er at kildekoden sjelden er nok helt alene. Rundt den finnes flere deler som trengs for at systemet faktisk skal kunne bygges og driftes.
- Build-skript er det som gjør kildekoden om til et kjørbart produkt, oppskriftene på hvordan byggingen foregår.
- Konfigurasjon styrer hvordan systemet oppfører seg i ulike sammenhenger, for eksempel forskjellen på et testmiljø og et produksjonsmiljø.
- Dokumentasjon forklarer hvordan delene henger sammen slik at noen som ikke har skrevet koden, likevel kan sette seg inn i den.
Uten disse delene kan selv den som formelt eier kildekoden, få problemer med å komme videre. Sørg derfor for at helheten er med når dere regulerer eiendomsretten: koden, ja, men også alt som kreves for å få noe ut av den. Ønsker dere hjelp til å finne ut hva dere faktisk eier av systemet deres i dag, ta kontakt.
Ofte stilte spørsmål
Hva er kildekode, enkelt forklart?
Det er teksten utviklere skriver for å fortelle datamaskinen hva den skal gjøre: originalmanuset til programvaren, skrevet i et programmeringsspråk som mennesker kan lese. Alt du bruker, fra en app til en nettjeneste, er bygget ut fra kildekoden sin. Den er selve verket; det du ser på skjermen, er resultatet av at koden kjøres.
Hva er forskjellen på kildekode og det ferdige produktet?
Kildekoden er den lesbare tegningen; det ferdige produktet er bygningen som er reist ut fra den. Ut fra kildekoden lages et kjørbart program som datamaskinen forstår, men som et menneske ikke kan lese eller endre. Har man bare det kjørbare produktet, kan man bruke det, men ikke endre eller videreutvikle det. Til det kreves kildekoden, akkurat som man trenger tegningene for å bygge om et hus.
Hvorfor er det viktig å eie kildekoden?
Fordi den avgjør om dere faktisk har kontroll over systemet. Med kildekoden i hånden kan dere videreutvikle løsningen, bytte leverandør og gå gjennom hva som er bygget. Uten den er dere, hver gang noe skal endres, avhengige av den som sitter på koden. Derfor bør eierskap og tilgang til kildekoden være tydelig regulert i avtalen, ikke noe man tar for gitt og oppdager for sent.
Hva trenger vi tilgang til i tillegg til selve koden?
Koden alene er sjelden nok. Rundt den finnes build-skript som gjør kildekoden om til et kjørbart produkt. Konfigurasjonen styrer hvordan systemet oppfører seg i ulike miljøer, og dokumentasjonen forklarer hvordan alt henger sammen. Uten disse delene kan selv den som har kildekoden, få problemer med å bygge og drifte systemet. Sørg derfor for at helheten er med, ikke bare selve koden.
Hvordan sikrer jeg at vi får kildekoden?
Skriv det inn i avtalen fra begynnelsen. Slå fast at dere eier kildekoden, og at den fortløpende skal ligge i et kodelager dere har tilgang til, sammen med build-skript, konfigurasjon og dokumentasjon. Ikke vent til prosjektet er over eller forholdet har surnet, for da er kildekoden et pressmiddel. Er det regulert på forhånd, er det en selvfølge, og en av de billigste forsikringene som finnes.