Allt har en början. Du behöver inte vara någon duktig utvecklare för att komma igång. Det enklaste sättet att bidra till öppen källkod är att komma med goda idéer och rapportera in de buggar du hittar i olika öppna program.
Ubuntu Brainstorm är ett bra exempel på en plats där du kan ventilera dina idéer och låta andra communitymedlemmar rösta på dem. Ju bättre, mer pedagogiska och mer genomarbetade idéerna är, desto högre är sannolikheten att andra får upp ögonen för dem, att de får röster och till sist implementeras i en distribution.
Du behöver absolut inte vara någon Linuxhackare för att börja med öppen källkod. Öppen källkod passar såväl Windows som Mac och Linux. Eftersom koden är öppen är de flesta projekt också helt plattformsoberoende.
Ramverket det viktigaste
I öppen källkod-världen finns det alltid folk som kommer att titta snett på dig på grund av ditt, i deras ögon, felaktiga val av operativsystem men då är det viktigare vilket ramverk du valt att utveckla i. Befinner du dig i Windowsvärlden är chansen stor att du väljer Mono/Dotnet. Arbetar du i KDE utvecklar du troligtvis i Qt, och sitter du med Gnome är GTK+ förstahandsvalet. Är du stordatorfantast med förkärlek för realtidssystem kanske du fastnar för Java. Fler och fler program utvecklas även i Python.
Alla de här ramverken tar tid att lära sig, men de är allihop plattformsoberoende. Det betyder att det projekt du är involverad i inte är begränsat till ett operativsystem. När du själv blir projektledare kommer du att märka att det är enklare att få folk att bidra till ett program som är baserat på ett känt ramverk än på ett mindre obskyrt och plattformsberoende dito.
”Det enda som kostar
är datorn du sitter vid och
bandbredden.”
Det fina med öppen kod är att du oftast inte behöver betala några programlicenser över huvud taget för att komma i gång. Det enda som kostar är datorn du sitter vid och bandbredden du använder. Utvecklar du i Mono/Dotnet ska du titta på Monodevelop. Är Java/J2EE/Python/C/C++/php din grej ska du i stället titta på Eclipse.
Eclipse håller också på att bli standardmiljön för mobil utveckling. Den är även kapabel att hantera Microsofts Silverlight och Qt från Nokia, även om respektive leverantör också har egna utvecklingsmiljöer.
Du kan utveckla öppen källkod även om du sitter på Windows och Mac, men det enklaste sättet att komma in i communityarbetet är via någon av de etablerade Linuxdistributionerna. Distributionerna Fedora, Opensuse, Ubuntu, Gentoo och Mandriva slåss alla om ditt engagemang. Välj den distribution du trivs bäst med och där du känner förtroende för de drivande. Alla är bra på sitt sätt.
Utvecklarna hänger på IRC
Utvecklarna får du lättast kontakt med via IRC-chatten, som är den viktigaste kommunikationsvägen. Varje distribution har en eller flera kanaler där utvecklare och användare träffas och diskuterar. Följ etiketten för kanalen och ställ frågor i den kanal där de hör hemma. Håll dig också till ämnet och för inga privata ovidkommande diskussioner över IRC. Hjälp gärna andra på chatten som har problem – det är ett säkert sätt att successivt bygga upp ett rykte om dig som en duktig communitymedlem. Att hjälpa andra är också ett sätt att bidra till projektet som sådant.
”Att hitta fel och fixa
buggar är det bästa sättet
att lära sig koden.”
Att hitta fel och fixa buggar låter som en tröstlös sysselsättning, men det är det bästa sättet att lära sig hur koden är uppbyggd och vilken syntax chefsutvecklaren förväntar sig att du ska använda. Dessutom kommer du själv garanterat att bli en betydligt bättre programmerare själv när du ser hur andra har gjort.
Att komma fram till att en bugg existerar är inte så svårt. Betydligt svårare är det att förstå vad den beror på, när den uppträder och hur det i stället borde vara. När du skriver en buggrapport och lämnar in, antingen via projektets egna buggrapporteringsverktyg eller via den Linuxdistribution du använder, ska du se till att skicka med så mycket väsentlig information som möjligt: vilken version av programmet du använder, vilka övriga paket programmet är beroende av att du har installerade och vilken version de har, samt eventuellt vilka program och drivrutiner du har installerade i din maskin.
Det enda som slår en väl författad buggrapport är en färdig fix (patch) där du själv gått in i koden, identifierat felet, rättat det och skickat in den rättningen tillsammans med buggrapporten. En välskriven buggrapport tillsammans med en färdig patch är ett säkert sätt att skapa sig ett namn i projektet.
Lär dig versionshantering
För att leta och rapportera in buggar behöver du inte ha några programmeringskunskaper, men så fort du vill gå in i koden och rätta behöver du lära dig ett system för versionshantering. Versionshanteraren underlättar när du hämtar hem källkoden, gör ändringar och skapar en fix som den projektansvarige sedan kan använda i programmet du fixat. Så gott som alla öppna projekt lagar källkoden under en versionshanterare där SVN tillhör de vanligaste. Trenden går däremot mot att använda distribuerade versionshanterare, så kallade dvcs (distributed version control system), där Git och Bazaar vinner mark. Git är utvecklad av Linus Torvalds och används bland annat av Linuxkärnan. Bazaar utvecklas av Canonical, företaget bakom Linuxdistributionen Ubuntu, och används bland annat av My SQL.
Vilken versionshanterare du börjar med att lära dig beror därför på vilket projekt du är intresserad av att bidra till. I takt med att du blir en bättre utvecklare kommer du sannolikt att lära dig alla stora versionshanteringssystem.
Lär dig paketering
Tiden då användare gladeligen laddade hem källkoden och körde ./configure; make; make install är sedan länge förbi. För att någon som inte är hardcore-utvecklare ska vilja ta i ditt program måste det paketeras i ett format anpassat för just den plattformen. Vilket paketformat du börjar med beror troligtvis på vilket operativsystem eller vilken distribution du använder.Blir du duktig på paketering och på att anpassa koden för en viss Linuxdistribution kan du också få en gräddfil in i communityn. Bra utvecklare som kan paketera och som dessutom har goda kunskaper i programutveckling är en bristvara.
Bristen på den typen av arbetskraft är orsaken till att programmen i en viss distribution inte alltid är uppdaterade. Det saknas helt enkelt folk som kan ta koden och anpassa den för distributionen. Finns inte ditt öppna favoritprogram hos din distribution kan du alltid erbjuda dig att paketera det. Ditt erbjudande kommer troligtvis att tas emot med öppna armar.
Råd för hur du paketerar hittar du via distributionernas respektive hemsidor och flera distributioner anordnar utvecklarträffar på IRC där de lär ut knepen. Träffarna hålls inte med någon större regelbundenhet utan annonseras ut via distributionens e-postlista, nyhetsbrev eller hemsida.
Fedora och Ubuntu är två distributioner som har IRC-baserad utbildning för utvecklare. Opensuse har sin ”hackvecka” där de anställda och communityn under en veckas tid hackar på olika projekt.
Åk på utvecklarträffar
Många stora projekt har årligen återkommande träffar runt om i världen där utvecklare och intresserade träffas för att planera, umgås och dricka öl. Några projekt, till exempel Ubuntu, har till och med två eller flera årliga utvecklarträffar. KDE har sitt Akademy, Gnome har Guadec, och Debian har Debconf. Andra projekt som också träffas årligen är Gimp, Openoffice.org, Drupal och Wine. ”En driven community
gör det så mycket roligare att
jobba med projektet.”
Andra projekt som Joomla brukar samla communityn på olika ställen runt om i världen där utvecklarna under några dagar jobbar på att krossa buggar. En driven community med trevliga arrangemang gör det så mycket roligare att jobba med projektet.
Eftersom resor och uppehälle kostar pengar kanske det tar emot att lägga ut de tusenlappar som krävs. Då kan det vara bra att veta att många projekt har en reskassa de använder för att se till att duktiga utvecklare får råd att åka.
Har du blivit en viktig bidragsgivare till ett visst projekt är det bara att fråga den projektansvarige om det finns möjlighet till sponsring. Många ”fattiga” utvecklare använder den möjligheten för att ta skuttet över Atlanten. Pengarna ska räcka till resa och husrum. Gimp, KDE och Ubuntu är exempel på projekt som har en reskassa att ta av.
Flera projekt har även svenska intresseföreningar som träffas mer eller mindre regelbundet. Ta reda på vad som gäller för just ditt projekt eller vad din region har att erbjuda. Sverige har många duktiga utvecklare av öppen källkod som gärna hjälper dig en bit på väg.

De flesta stora projekt har årliga utvecklarträffar där atmosfären är öppen och gemytlig. På Openoffice.org Conference jobbar konkurrenter sida vid sida under tre dagar.
Prispengar i potten
Tycker du att det är roligt att jobba med olika projekt och samtidigt vill tjäna pengar på det, ska du hålla ögonen öppna när det dyker upp projekt med prispengar i potten. Det kan vara allt från betalt sommarjobb under Googles paroll ”Google Summer of Code”, där du hjälper något känt projekt med förutbestämda uppgifter, till tävlingar som ”Android Challenge” med miljoner i potten. För de allra minsta finns Googles ”Highly Open Participation Contest” där åldersgränsen är 13 år. Sun Microsystem har också ett program där de erbjuder rejäla prispengar om du åstadkommer något banbrytande inom projekten Openoffice, Netbeans, Glassfish, Open Solaris, Open JDK eller Open Sparc.
Skulle du inte vinna några prispengar kan du alltid trösta dig med att du åtminstone har blivit en bra mycket vassare programmerare på kuppen. Vilka tävlingar som pågår för tillfället får du reda på genom att kika på TechWorlds avdelning för öppen källkod på www.techworld.se.
”En hel del projekt har
problem med att få utvecklare
som vill hjälpa till.”
Starta ditt eget projekt
Många utvecklares dröm är att starta och driva ett eget projekt. Vill du driva ett projekt har du tre val som alla innebär hårt arbete. Du kan ansluta dig till ett existerande projekt och arbeta dig uppåt i hierarkin. En hel del projekt har problem med att få utvecklare som vill hjälpa till och ser gärna att någon annan tar över stafettpinnen. Ett annat alternativ är att ta över ett föräldralöst projekt. Via Debians sida kommer du åt listor över projekt som är ”orphans”, föräldralösa. Ta kontakt med den före detta projektansvarige och försäkra dig om att projektet verkligen är föräldralöst och adoptera det sedan.
Det tredje alternativet, och det tuffaste, är att starta ett projekt från början. Du får räkna med att vara ensam utvecklare ett tag och att bidragsgivare kommer och går.
Alla projekt är beroende av en viss infrastruktur och behöver marknadsföras. Ett av de enklaste sätten att komma i gång är att använda webbplatsen Sourceforge eller Ubuntus utvecklingsplattform Launchpad.
Launchpad erbjuder dig en webbplats där du lagrar koden under versionshanteringssystemet Bazaar. Projektet får bland annat en egen e-postlista, du får en ”bugg-tracker” där användare lägger in och spårar buggar, och du kan lägga upp en lista med förslag på framtida implementeringar. Kort sagt, Launchpad kan du använda för de grundläggande bitarna som måste finnas på plats för att ditt projekt ska lyfta.
Eclipse är en öppen utvecklingsmiljö som fungerar med flera system för versionshantering. Det är så nära Microsofts Visual Studio du kan komma. Google, Motorola, Microsoft och Qt är några som bygger en del av sin utvecklingsmiljö runt Eclipse.
Launchpad.net är en av de platser där du kan publicera din kod under ett versionshanteringssystem. Det är för närvarande stängd kod men Launchpad kommer att öppnas upp senast i november 2009. På bilden ser vi My SQL:s sida på Launchpad.net.
Det viktigaste sättet att kommunicera på för utvecklarna i ett projekt är via IRC. Här får du direktkontakt med dem som utvecklar koden. Flera utvecklare har jobbat ihop i många år på samma projekt och pratas vid dagligen via IRC men de har aldrig träffats i verkligheten.
Blogga om utvecklingen
Sedan är det givetvis ingen nackdel att ha en snygg hemsida och en blogg där du berättar om hur ditt projekt framskrider, men det är inget måste. Linuxkärnans hemsida ser exempelvis fortfarande ut som skräp, men den fyller sin funktion väl. Postfix och Sambas sidor är inte mycket bättre de heller. Gemensamt för de båda sistnämnda är att de är späckade med dokumentation. En vettig hemsida består i sitt enklaste utförande av en Wiki som du kan komplettera med något bloggverktyg. Glöm inte att det viktigaste är ditt projekt och den kod du producerar.
I öppen källkod-gurun Eric S. Raymonds bok ”The Cathedral and the Bazaar” får du tipset ”release early – release often”. Du ska alltså släppa din kod i ett tidigt skede och du ska ha en snabb uppgraderingstakt. De flesta Linuxdistributioner kommer ut med nya versioner var sjätte månad.
Linuxkärnan, som kan räknas till ett av de större öppna projekten, kommer ut med en ny version var tredje månad. Projektet Wine, som är ett öppet Windows-api, släpper en ny version varannan vecka.
Vår rekommendation är ändå att inte vara alltför snabb med att släppa på koden om du ska starta ett projekt. Grundsatsen är att du bör ha något som åtminstone går att kompilera utan fel och som är tillräckligt moget för att din målgrupp ska nappa.
Tålamod och viljan att lära
Det är många projekt som vill ha duktiga bidragsgivare och det är svårt att skapa intresse för ett projekt som befinner sig på planeringsstadiet. När Linus Torvalds släppte Linuxkärnan var projektet inte längre på idéstadiet utan ett embryo till en kärna som till viss del gick att kompilera och använda. Att bli en duktig utvecklare och en god communitymedlem är inget som sker över en natt utan det är resultatet av ett gediget och hårt hackande. Linuxkärnan släpptes till exempel för hela 17 år sedan. Wineprojektet tog 15 år på sig att nå version 1.0. Men är du bara tålmodig, villig att lära och gillar dynamiken som finns hos öppen kod är det bara en tidsfråga innan du når toppen. Var så säker på det!
Illustraion: Jonas Englund
» Så går du vidare, länkar:
- ldn.linuxfoundation.org/book/how-participate-linux-community – Linux Foundation beskriver hur du blir en god kärnhackare.
- https://fedoraproject.org/wiki/Main_Page – Fedora har flera möjligheter till ett aktivt communityarbete.
- www.ubuntu.com/community/participate – Ubuntu vill ha hjälp med design, support, utveckling och buggkrossning.
- en.opensuse.org/How_to_Participate – Opensuse har också en mängd möjligheter för blivande öppen källkods-experter.
- www.mandriva.com/en/community/start – Mandrivas communitysida.


Sverige har många duktiga och framstående utvecklare av öppen källkod. Daniel Nylander är en av dem. Han beskriver sig själv som en perfektionist som lägger ner alldeles för många timmar på öppen källkod. Idogt hackande och översättande har gett honom en nominering till Nordic Free Software Award. 


















































Lite mer pragmatisk guide - (Marcus Hansson) 2008-12-19 17:00
Guide - (Etutre) 2008-12-19 17:40
Guide - (Daniel Wijk) 2008-12-19 17:49
Guide - (JKT) 2008-12-19 22:30
Lite mer pragmatisk guide - (Uven) 2008-12-19 23:47
Guide - (Mikma) 2008-12-20 09:20
Guide - (japh) 2008-12-20 10:31
Lite mer pragmatisk guide - (Svedde_) 2008-12-20 10:53
Guide - (Svedde_) 2008-12-20 10:55
Guide - (Claes Jakobsson (http://www.surfar.nu/)) 2008-12-20 11:59