Open Source

1998-09-09

Open Source (TM)

Notes in English

Introduktion

En af de mest spændende udviklinger på software fronten det sidste stykke tid er konceptet Open Source (TM), der dækker over frigivelse af kildeteksten til et program. Dette sker under en licens, der giver lov til at alle - uanset kulturelle og geografiske skel - må anvende og ændre kildekode efter behov, og derefter frit videregive den modificerede kode under samme licens.

Hvad er der galt med Free Software

Nogle vil sige at indledningen ikke bringer noget nyt, idet vi førhen har man talt om frie programmer (free software og freeware). Problemet med disse betegnelser har affødt en del debat om hvad begreberne egentlig dækker over. Det har bestemt været et problem at der var flere betegnelser som næsten var det samme og det var ikke helt klart hvad der ligger i betegnelsen “fri”.

Er et program frit, hvis man kan få programmet uden at betale, men kun på binær form? Er det frit hvis man kan få kildeteksten, men ikke må ændre den og distribuere videre?

Nogle af de omtalte problemer ligger i selve ordet “fri” - på engelsk “free”. Det engelske ord har nemlig to betydninger; fri (som i frihed) og gratis. En stor fordel ved at opfinde et nyt samlende navn er at mange forretningsfolk langt nemmere kan acceptere selve navnet Open Source - fremfor begreber som indeholdt ordet free. Der ligger simpelthen en psykologisk barriere i selve navnet free. For os danskere er ordet “fri” mindre tvetydigt, men vi ser ofte, at ordet bliver forkert oversat (husk på den danske oversættelse af FN’s menneskerettigheder, hvor der stå “free education” som i den danske oversættelse er blevet til “gratis uddannelse”).

For at en gang for alle at få et samlende navn med klar definition for anvendelsen blev konceptet Open Source (TM), registreret som et beskyttet navn, så grundlaget ikke kan anfægtes. På rekord tid er navnet Open Source (TM) blevet adopteret som et samlende navn alle accepterede. Naturligvis er licensen opbygget på en måde, der gør at alle kan anvende navnet Open Source (TM), uden afgift, blot det anvendes korrekt.

Hvorfor udvikle Open Source software

I det følgende vil vi prøvet at se lidt på hvilke grunde der kan være til at frigive kildeteksten til sit program? Og hvilke implikationer har dette for fremtiden af det programmel man har eller vil udvikle. Endvidere kommer vi med et forslag til en ny udviklingsmodel, som i mange tilfælde vil betyde en ikke ubetydelig acceleration af udviklingsprocessen.

Først kan vi se på et firma med almindeligt hierarki i forhold til hacker-kulturen (positive programmører med trang til at lave de bedste programmer, hvilket ikke må at forveksle med crackere, som er destruktive personer). Hvis et firma ansætter dobbelt så mange personer vil deres produktivitet ikke stige til det dobbelte. Der skal et større antal personer i firmaet til at styre de små ting som følge af væksten er blevet større. Firmaerne skal også have ledere som ikke lave produktion eller udvikling osv. Hacker kulturen er traditionelt meget flad og ektremt levende. Det er helt klart en trend som vi vil se mere til. Et firma som Oticon har været med stort helt praktiseret den flade struktur i lang tid.

Firmaet skal markedsføre sine produkter og sørge for at de er nogenlunde up-to-date og lige præcis opfylder kundens forventninger. Ofte er kvalitet bestemt af en salgspris, og hvad markedet kan bære, fremfor at levere det bedste, der kan laves. Det er selvfølgelig groft simplificeret, men det er ofte meget sandt.

I Open Source samfundet arbejder man helt anderledes. Enhver kan komme med egne ideer for hvordan fremtiden skal udvikle sig, og fanger ideen an, så dannes grupper, som får udtænkt og udført programmeringsprojekter til gavn for os alle. Der er altså ingen reel global leder af projekterne som helhed, men ligesom i det vilde vesten er enhver sin egen herre og småsamfund dannes alt efter hvem der har lyst til at arbejde sammen. Umiddelbart lyder dette som det rene kaos, men det er en ny udviklingsstrategi som har sin styrke. Det er som fraktaler - et kaotisk system, men underligt nok der kan findes masser af orden og og system i det.

Den ultimative fordel med Open Source er at den sikrer aktivitet og fremdrift. Lederen af et projekt anerkendes for at få projektet til at gå fremad og at få det til at blive en succes i alles øjne. Oftest er lederen af et projekt den som har starten ideen, men man skal forstå at en person som Linus Torvalds som startede Linux projektet kun er lederen idag, fordi han til stadighed beviser, at han er den rigtige leder.

Haves en god ide, men projektet måske mangler en dynamisk leder vil andre med visioner gradvist tage over, og projektet vil gå videre. Og det skal understeges at Open Source er tæt knyttet til Internettets succes og kontaktformer, hvor antallet af aktive deltagere hastigt er på vej op.

Glosen “den globale landsby” er nu helt rigtig. De personer som deltager i et projekt vil ofte have helt anden kulturel baggrund end en selv, men kontakterne, diskussionerne og resultaterne er ofte spændende og ofte med en kvalitet som uden problemer kan leve op til kommerciel software. Specielt med hensyn til stabilitet er hacker samfundet alle firmaer overlegne. Generelt hjælper man hinanden og særligt svære problemer kan gå hen at blive til udfordringer som giver ære og anseelse til den som knækker nøden. Igen skal det bemærkes at disse måder at arbejde på ofte slet ikke tilfældet i et firma.

Ud over Internettets sammenbinding af folk så er der også et kulturelt mønster i det. Det er i høj grad fordi mange har en indtjening ved siden af og syner det er sjovt at deltage. Der er en form for gave-bytteri vi laver. Vil mange mennesker have din gave - dvs. dit programmel - som du præsenterer for dem, så stiger aktiviteten for projektet og antallet af aktive og positive tilbagemeldinger vil gøre, at det er sjovt og spændende at have delt ideen med alle andre.

Hvad med penge?

Da Open Source gør, at man frigiver al information om programmet og at andre må arbejde videre med det efter behov, så melder spørgsmålet sig: ødelægger vi så ikke alle firmaer og de programmører, der vil tjene penge på det?

Svaret er “Nok ikke”. Det er oplagt at mange vil tage kildeteksten uden at betale, men det kan godt lade sig gøre at tjene penge på Open Source kode. Firmaer som RedHat, Cygnus, Cyclic og nu Netscape har frigivet programmel under Open Source og de kan godt tjene penge alligevel. For Netscape var situationen dog lidt speciel, på grund af hård konkurrence fra et firma, der hedder Microsoft.

Grunde til at vælge Open Source

  • En god ide. Man har en god projekt ide, men har ikke programmeringserfaringen eller kræfterne til at løfte projektet alene. I denne situation er Open Source helt perfekt. Man kan få dannet et projekt hold, hvis ideen kan bære. Så skal projektet laves med de regler som projektets deltagerne selv vælger.
  • Jeg vil også give. Man har ideen og kræfterne til at lave et godt produkt, da kan man også med fordel anvende Open Source, men af forskellige grunde. Dels kan man få anseelse og respekt fra andre. Dels kan man have en holdning om at man gerne vil yde for og sammen med det fællesskab der er omkring Open Source. Man vil gerne give sit bidrag tilbage med tak for alt det man selv har fået.
  • Outsourcing. Har man f.eks. i sit firma brug for produktet, som arbejdsredskab eller som fremtidssikring, da kan man drive et software projekt med meget få ressourcer for firmaet og store programmeringskræfter kan hentes gratis udefra.
  • Markeds-taberen. Har man allerede er produkt, som er hårdt trængt økonomisk kan Open Source være det rigtige våben at vælge. Som godt eksempel kan nævnes Netscapes kamp mod Microsoft. Man kan ikke slå Microsoft, hvis man spiller efter de samme regler. Microsoft kan og vil dog ikke følge Open Source, hvorfor Netscape nu kan fortsætte dog med en helt ny strategi. Antallet af programmører, der anbejder på Netscape Communicator er kraftigt stigende på grund af adgang til kildeteksten og muligheden for at deltage i udviklingen. Det er nok ikke helt forkert at tro, at Netscape har skaffet sig 10 gange så mange reele programmører til projektet uden at skulle betale dem noget for det. Netscape kan så tjene på service, andre proodukter og de reklameindtægter de får ind på deres hjemmesider.
  • Service firmaet. Har man et et godt produkt, kan man dele produktet op i en form, hvor man kan få det med Open Source og dermed sikre sig aktivitet og fremdrift, og dels i en del som er service og konfiguration for kunder. Som eksempel kan nævnes databaser. Et er købet af en database, men ofte er indtægterne fra service de vigtigste. Ydermere kan man forestille sig at service firmaet sælger konfiguration, så kunden kan få databasen og sælge eller anvende denne gratis, efter at service firmaet har sat den op med de poster og muligheder som kunden ønsker.
  • Hardware fabrikanen. Et firma som laver hardware, f.eks. netkort, lydkort og grafikkort tjener penge på at sælge hardware og drivere er egentlig en afledt aktivitet. Folk køber selvfølgelig kombinationen, men tit vil det ikke være forbundet med et tab at lade driverne være på Open Source form, idet firmaet kan få rekruteret programmører til at forbedre drivere for Driver firmaet uden at det koster noget. For virksomheder, der får udviklet special-software af en leverandør, er der en risiko for, at leverandøren af den ene eller anden grund stopper udviklingen. Det kan være pga. manglende rentabilitet/ressourcer eller konkurs. Derfor er det vigtigt som kunde at have adgang til kildeteksten til den specielt-udviklede software, så man har mulighed for at hyre andre til at overtage udviklingen. Som kunde bør man derfor sikre sig, at man enten selv overtager copyright på det udviklede software, eller at softwaren bliver udviklet under Open Source.
  • Missionskritisk software. Er den software man udvikler meget kritisk og kan de kritiske dele af softwaren sammensættes så det er af mere generel anvendelighed, så kan Open Source være det rigtige valg idet man kan få afprøvet programmellet af et meget stærkt hacker samfund. F.eks. har ESA og NASA sat fokus på Linux, pga. Linux’ meget høje driftsikkerhed og dets meget åbne og effektive møde, man i fællesskab løser fejl på.

Linux Development Model

Udviklingen af Linux kernen har vist os en hel ny møde at arbejde på. Vi vil her forsøge at skitsere den udviklingsmodel, som Linus Torvalds har benyttet (i begyndelsen ubevidst) i udviklingen af Linux.

  • Find et problem, som interesser dig. Det er i virkligheden oplagt, idet man ved meget om det problem, som p.t. optager en, og man vil arbejde meget hårdere for at løse det.
  • Gode programmører ved hvad der skal skrives, mens de bedste ved hvad der skal omskrives og hvad der kan genbruges. Sagen er jo nemlig den, at der findes allerede store mangler af programmel, som kan næsten det, du står og mangler. Vi gør her dovenskaben til en dyd.
  • Når du mister interessen for dit projekt, skal du finde en, som vil overtage projektet. For at et projekt skal lykkes, og en løsning kan findes, kræver det, at du er meget engageret i projektet.
  • Behandl dine brugere som medudviklere. Medudviklere finder fejl, isolerer dem og finder på læsninger. Derved bliver fejlene fundet hurtigere. Man skal dog passe på; mange vil gerne hjælpe, siger de, men man skal ikke forvente at alle i virkeligheden gør det. Det er vigtigt at koordinatoren for projektet har adgang til et effektivt kommunikationsmedium, f.eks. Internettet.
  • Frigiv tidligt, frigiv ofte. Dog skal du altid første gang have en udgave, som har en vis funktionalitet, ellers er det umuligt at få andre med på vognen. Naturligvis vil tidlige udgaver indeholde mange fejl, men som nævnt tidligere vil fejlene hurtigt blive fundet. At frigive udgaver af programmellet sjældent har den psykologiske efftekt på brugerne, at de bliver mere skuffet, når de finder fejl. Et typisk tidsinterval mellem frigivelser er alt fra 1 dag til 6 uger. Det er en god idè at have to tråde af udvikling: en til de stabile udgaver og en til at afprøve de nye funktioner - dette anvendes ved udviklingen af Linux.
  • Vær andrig bange for at skære gamle funktioner og pensioneret kode væk. Det vil ofte give et simplere og mere effektivt program.

Epilog: Denne artikel er i høj grad inspireret af Linux samfundets arbejdsmetoder og specielt Eric Raymonds teoretiske arbejder, der kan læses på http://www.earthspace.net/~esr og specifikt om Open Source på http://www.opensource.org.

Det er oplagt at Open Source bryder med mange kendte udviklings strategier, men der er helt oplagt at nutiden og fremtiden er ved at vise styrken i det.