Vad är källkod?

Av Weapp · Uppdaterad

Källkod är de läsbara instruktioner utvecklare skriver – originalet som all körande mjukvara byggs från. Den körbara produkten användaren möter tillverkas ur källkoden, ungefär som en byggnad ur en ritning. Att äga och ha tillgång till källkoden är därför en central avtalsfråga för beställaren, tillsammans med byggskript, konfiguration och dokumentation.

Källkod är ett ord de flesta hört, men vad det egentligen är – och varför det är en av de viktigaste sakerna att reglera när man beställer mjukvara – är inte alltid klart. Det är värt att förstå, för det handlar i grunden om vem som äger och kontrollerar det ni betalar för. Här är förklaringen.

Definitionen

Källkod är de läsbara instruktioner som utvecklare skriver för att tala om för datorn vad den ska göra. Den skrivs i ett programmeringsspråk – text som människor kan läsa, förstå och ändra i – och är originalet som all körande mjukvara byggs från. Varje app, webbtjänst och system har en källkod i botten.

Man kan se den som mjukvarans originalmanus eller ritning. Det är i källkoden logiken finns: vad som händer när en knapp trycks in, hur data hanteras, vilka regler som gäller. Det du ser och använder på skärmen är resultatet av att den koden körs, men själva verket – det som går att förändra och bygga vidare på – är koden.

Källkod mot körbar produkt

Den viktigaste skillnaden att förstå är den mellan källkoden och den färdiga produkten, och ritningsliknelsen fångar den väl.

Källkoden är ritningen: läsbar, ändringsbar, full av instruktioner om hur allt ska fogas samman. Ur den tillverkas – “byggs” – en körbar produkt, det program datorn faktiskt kör. Den produkten motsvarar den färdiga byggnaden: man kan bo i den och använda den, men den går inte att läsa som en ritning, och man kan inte bygga om den utan att gå tillbaka till originalet.

Praktiskt betyder det att den som bara har den körbara produkten kan använda systemet men inte förändra det. Vill man rätta ett fel, lägga till en funktion eller låta någon annan ta över utvecklingen, krävs källkoden. Precis som man behöver husets ritningar för att bygga om det på ett vettigt sätt, behöver man mjukvarans källkod för att vidareutveckla den.

Varför ägandet är avgörande

Här blir det affärskritiskt, och det är den centrala poängen för en beställare. Vem som äger och har tillgång till källkoden avgör vem som egentligen kontrollerar systemet.

Har ni källkoden är ni fria. Ni kan vidareutveckla lösningen, ta in vilken leverantör ni vill för att fortsätta arbetet, och granska exakt vad som byggts. Har ni den inte, sitter kontrollen hos den som har den – och för varje framtida ändring, varje rättning, varje förbättring är ni beroende av dem. En relation som surnar kan då bli mycket dyr, eftersom källkoden i praktiken blir ett påtryckningsmedel.

Därför bör ägande och tillgång till källkoden vara uttryckligen reglerat i avtalet, gärna med krav på att koden löpande ligger i ett kodförråd ni har åtkomst till. Det är inget att ta strid om i efterhand; det är något att slå fast innan projektet börjar. Vi på Weapp ser det som självklart att beställaren äger sin källkod – ni har trots allt betalat för att den ska skrivas.

Vad som ingår runt koden

En sista sak värd att veta är att källkoden sällan räcker helt på egen hand. Runt den finns flera delar som behövs för att systemet faktiskt ska gå att bygga och driva.

  • Byggskript är det som förvandlar källkoden till en körbar produkt – recepten för hur bygget går till.
  • Konfiguration styr hur systemet beter sig i olika sammanhang, till exempel skillnaden mellan en test- och en driftmiljö.
  • Dokumentation förklarar hur delarna hänger ihop, så att någon som inte skrivit koden ändå kan sätta sig in i den.

Utan de delarna kan även den som formellt äger källkoden få svårt att komma vidare. Se därför till att helheten ingår när ni reglerar äganderätten – koden, ja, men också allt som krävs för att göra något av den. Vill ni ha hjälp att reda ut vad ni faktiskt äger av ert system i dag, hör av er.

Vanliga frågor

Vad är källkod, enkelt förklarat?

Det är den text utvecklare skriver för att tala om för datorn vad den ska göra – mjukvarans originalmanus, i ett programmeringsspråk som människor kan läsa. Allt du använder, från en app till en webbtjänst, har byggts utifrån sin källkod. Den är det egentliga verket; det du ser på skärmen är resultatet av att koden körts.

Vad är skillnaden mellan källkod och den färdiga produkten?

Källkoden är den läsbara ritningen; den färdiga produkten är byggnaden som rests utifrån den. Ur källkoden tillverkas ett körbart program som datorn förstår, men som en människa inte kan läsa eller ändra i. Har man bara den körbara produkten kan man använda den, men inte förändra eller vidareutveckla den – för det krävs källkoden, precis som man behöver ritningen för att bygga om ett hus.

Varför är det viktigt att äga källkoden?

För att den avgör om ni faktiskt kontrollerar ert system. Med källkoden i handen kan ni vidareutveckla lösningen, byta leverantör och granska vad som byggts. Utan den är ni beroende av den som har koden för varje framtida ändring. Därför bör ägande och tillgång till källkoden vara tydligt reglerat i avtalet, inte något man förutsätter och upptäcker för sent.

Vad mer än själva koden behöver vi tillgång till?

Koden ensam räcker sällan. Runt den finns byggskript som förvandlar källkod till en körbar produkt, konfiguration som styr hur systemet beter sig i olika miljöer, och dokumentation som förklarar hur allt hänger ihop. Utan de delarna kan även den som har källkoden få svårt att bygga och driva systemet. Se därför till att helheten ingår, inte bara koden i sig.

Hur säkerställer jag att vi får källkoden?

Skriv in det i avtalet från början. Slå fast att ni äger källkoden och att den löpande ska ligga i ett kodförråd ni har åtkomst till, tillsammans med byggskript, konfiguration och dokumentation. Vänta inte till projektet är slut eller en relation surnat – då är källkoden ett påtryckningsmedel. Reglerat i förväg är det en självklarhet, och en av de billigaste försäkringar som finns.