Den spelteoretiska konsekvensen av komplicerad källkod

Som en kollega sade till mig sade häromdagen så finns det en spelteoretisk fördel med att skriva komplicerad kod: inga andra förstår sig på koden och då blir den ”upplåst” till det företag som äger den.

Nedan så talar jag om tre parter: programmeraren som utvecklar ett programvarusystem, kunden systemet utvecklas åt och arbetsgivaren som programmeraren är anställd hos. Jag antar att ett system utvecklas av programmeraren, där källkoden ägs av arbetsgivaren och kunden får det kompilerade resultatet: binärfilerna.

Det finns fler argument för att skriva kod på ett onödigt komplicerat sätt. För det första är det ett sätt för programmeraren att ”hanka sig fast” vid sin arbetsgivare, eftersom det blir dyrt för arbetsgivaren att låta någon annan ta över, då ”kunskapsöverföringen” angående systemets uppbyggnad – källkoden – är kostsam eftersom endast programmeraren själv (hjälpligt) förstår den. Detta gör arbetsgivaren beroende av programmeraren, något som är utmärkt för programmeraren. Det är alltså en nackdel för arbetsgivaren att koden är på detta sätt, just på grund av detta beroende.

Å andra sidan är kunden beroende av arbetsgivaren och programmeraren alldeles oavsett källkodens kvalité – det är ju arbetsgivaren som äger källkoden. Dessutom är det kostsamt att föra över verksamhetskunskapen återigen till tänkt annan uppdragsgivare. Kunkurrensen om systemets utveckling slås ur spel. Detta är en fördel för arbetsgivaren och en nackdel för kunden. Det är alltså ett icke-solklart läge för arbetsgivaren.

Från programmerarens sida, han som dagligen jobbar med och i koden, finns det även nackdelar med att göra koden komplicerad – det blir större och större börda att utveckla – allt svårare att ändra på programvaran utifrån kundens förändrade behov. Och fråga vilken programmerare som helst om de hellre jobbar med enkel kod eller besvärlig kod. Utifrån programmerarens synvinkel finns det alltså både för- och nackdelar.

Ur kundens synvinkel däremot finns det egentligen inga fördelar med att koden är komplicerad: han får ett allt mer instabilt program, allt svårare att få gehör för sina förändringskrav och därmed ett allt dyrare system. Direkt i motsättning till att kunden behöver förändras för att utvecklas och klara konkurrensen, och det allt snabbare.

Sammanfattningsvis kanske man skulle kunna säga att det inte finns något inneboende behov varken hos programmeraren eller hans arbetsgivare att skriva enklare kod – men ett tydligt sådant behov hos kunden.

På lite längre sikt är det alltså högre krav från kunden som kommer att tvinga programmerare och deras arbetsgivare att förenkla koden – helt enkelt därför att konkurrerande programvaruföretag kommer att väljas av kund. På sikt kan kravet om att äga källkoden komma.

Läs även andra bloggares åsikter om , , , ,

Kommentera

Fyll i dina uppgifter nedan eller klicka på en ikon för att logga in:

WordPress.com Logo

Du kommenterar med ditt WordPress.com-konto. Logga ut / Ändra )

Twitter-bild

Du kommenterar med ditt Twitter-konto. Logga ut / Ändra )

Facebook-foto

Du kommenterar med ditt Facebook-konto. Logga ut / Ändra )

Google+ photo

Du kommenterar med ditt Google+-konto. Logga ut / Ändra )

Ansluter till %s

%d bloggare gillar detta: