Imponerende open source-utvikling

Imponerende open source-utvikling

KRONIKK: Hva er hemmeligheten bak åpen kildekode-suksessen?

Noen programmerere og firma velger å legge ut kildekode ut på internett slik at andre kan inspisere, endre og/eller gratis bruke denne. Dette kalles gjerne på norsk "åpen kildekode" eller "FLOSS" (Free/Libre Open Source Software).

Det er antatt at ca. 800.000 utviklere verden over er involvert i utvikling av åpen kildekode. Med produkter som Linux, Apache, Android, Mozilla Firefox, OpenOffice, Perl, Python, Eclipse, MySQL og eGroupware er antall brukere nådd mangfoldige millioner og er stadig stigende. Det er i stor grad miljøer i Europa og Nord-Amerika som står bak åpen kildekode, selv om det også er vesentlige bidrag fra andre verdensdeler.

Hva vi vet og ikke vet

Hvorfor velger noen å legge ut kildekoden og i mange tilfelle gi den bort gratis? Hvor mye kan vi stole på kvaliteten til åpen kildekode? Hvordan kan det ha seg at en gruppe løst koplet utviklere, uten bruk av tradisjonell prosjektledelse, med kravspesifikasjons og testingsprosesser som bryter med "beste praksis" på mange områder, basert på ildsjeler og dugnadsarbeid, klarer å lage kompliserte it-systemer som brukes av millioner?

Disse spørsmålene var blant dem Kevin Crowston og kollegaer ved universitetet i Syracruse forsøker å besvare i artikkelen i ACM Surveys: "Free/Libre Open Source Software Development: What We Know and What We Do Not Know" (under trykking). Hele 184 studier ble gjennomgått.

Studiene viste at de viktigste grunnene for programmere å være med på utviklingen av åpen kildekode var å fremme egen yrkeskarriere, skape et renomme/status innad i utviklingsmiljøene, læringsmuligheter, dele kunnskap og ønske om å lage systemer som brukerne har behov for. Ideologiske faktorer, som "fight for free software", synes å spille en rolle for mange av programmerernes motivasjon, men i liten grad for firmaene som deltok.

Firmaenes deltagelse var mye mer motivert ut fra mulighetene for å få koden inspisert av andre for dermed å oppnå økt kvalitet. Nesten halvparten av arbeidet med åpen kildekode synes å være direkte eller indirekte finansiert gjennom firmaer.

Sprikende funn

Det finnes ulike grader av "åpenhet" til kildekode og det er uenighet i hvilken som gir best resultat. Oppsummeringen til Crowston ga ingen klare svar på hvilken grad av åpenhet (lisenstype) som ga best resultater. Noen studier viste at mindre restriktive lisenser tiltrakk seg bedre utviklere og ga høyere effektivitet, mens andre viste det motsatte.

Et tilsvarende sprik i resultater ble funnet relatert til kvalitet til åpen kildekode. Noen studier konkluderte med at det var høyere kvalitet på åpen kildekode enn tilsvarende ikke-åpen kildekode, mens andre fant det motsatte. Funnene viser ikke desto mindre at de noe uortodokse strategiene for test som ofte brukes ved utvikling av åpen kildekode, for eksempel den utstrakte graden av å stole på utviklernes testing av egen kode, i mange tilfeller gir god kvalitet. Funnene tilsier imidlertid ikke at måten testing gjøres på er en optimal metode for å oppnå høy kvalitet. Det kan for eksempel se ut som om flere av de mest kjente åpen kildekode-miljøene, som Linux, etter hvert legger seg nærmere tradisjonelle, mer strukturerte, testprosesser.

En typisk egenskap ved åpen kildekode-miljøene er et sterkt fokus på modulær oppbygning av programvaren. Denne modulariseringen reduserer kravet til koordinering mellom programmererne og er trolig avgjørende for at man skal lykkes med løst koplede team og mye parallell utvikling, som er typiske i utvikling av åpen kildekode. Et samsvar mellom organisasjonen som utvikler programvare og strukturen (arkitekturen) på programvaren er et velkjent fenomen og kalles ofte "Conway´s lov". En høy grad av modularitet antas å ha en gunstig effekt på effektivitet og videreutvikling av programvare. Det at teamene er løst koplet og distribuerte synes dermed å medvirke til gode vedlikeholdsegenskaper for åpen kildekode.

Åpenbare suksesser

Utvikling av åpen kildekode har hatt en del åpenbare suksesser. Forskningen som er oppsummert i artikkelen til Crowston gir imidlertid likevel ikke grunnlag for å hevde at måten disse miljøene er organisert på og utvikler programvare, gir noe bedre resultater en annen type programvareutvikling. Det studiene og suksessene viser er at dyktige programmere, med løst koblede team, uten formelle ledelsesstrukturer, med stor grad av ildsjelvirksomhet i flere tilfelle klarer å levere høykvalitetssystemer.

I hvilken grad dette er til tross for eller på grunn av en del arbeidsprosesser som bryter med hva tradisjonelt kalles "beste praksis innen systemutvikling, synes det være vanskelig å avgjøre. Tendensen til at mer modne åpen kildekode-team tar inn elementer av mer tradisjonelle utviklingsprosesser kan kanskje tyde på at det til dels er til tross for ikke-optimale samarbeids og utviklingsprosesser at man har lykkes med åpen kildekode.

Dette sammen med en "darwinistisk" utvelgelsesprossess, der man i hovedsak rapporterer suksessene til åpen kildekodemiljøene, gjør at man lett kan få et for positivt bilde av effektivitet og kvalitet i utviklingen av åpen kildekode. Dette fratar selvsagt ikke åpen kildekode-miljøene deres store suksesser og store betydning for samfunnet, ikke minst for den minst betalingsdyktige delen. Det er i det hele tatt imponerende hvordan forretnings-, samarbeids- og utviklingsmodeller som ved flere anledninger har blitt spådd sin egen undergang, har lykkes med utvikling av svært nyttig programvare.