Ett stort problem med öppen källkod

Ett av målen med öppen källkod är att det ska vara enkelt för alla att hjälpa till. Det kanske det är, men gör folk verkligen det? Det verkar som att man hellre startar konkurrerande projekt än att hjälpa till. Hur många textredigerare behöver vi egentligen, och varför envisas folk med att utveckla nya hela tiden?

Det finns en speciell attityd som har jag hört talas om flera gånger under min utbildning; ”not invented here syndrome”. Den attityden får folk att se ned på program som andra har utvecklat, och tänka att man själv kan göra så mycket bättre. Ofta slutar det med att man börjar om från början och utvecklar något som redan finns. (Ibland är det också så att man inte orkar sätta sig in i någon annans kod, och man inbillar sig att det är enklare att börja om än att läsa dokumentation och förstå redan fungerande kod.) Det är självklart ineffektivt och bör undvikas.

En enkel Google-sökning indikerar att 36–74 000 projekt på SourceForge har en ensam utvecklare. (Varje projekt ger 2–4 träffar.) Antalet projekt med två utvecklare är 21 000, tre utvecklare 11 000. Minskningen fortsätter likadant till de 3 400 projekt som har sex utvecklare. Därefter visar sökresultaten 300 projekt med sju utvecklare; en osannolik minskning som kanske tyder på att min metod är bristfällig.

(Det kan förstås finnas tillfälliga utvecklare som inte syns i statistiken, men för att spara kod i SourceForges cvs-träd måste man vara registrerad hos projektet. Jag har själv e-postat korta kodsnuttar till utvecklare för ett par projekt, men jag syns inte i statistiken för dem.)

Folk verkar vara medvetna om redundansen. Det finns många program som heter något med ”yet another”, och det tyder på att det redan finns många liknande projekt. Varför utvecklar man då ännu ett, istället för att hjälpa till med något av de existerande? Denna redundans gör att utvecklingen går långsammare än den hade kunnat göra i en idealvärld. Tänk om alla som var missnöjda med ett program bestämde sig för att försöka åtgärda problemen!

Kan det vara så att det är för besvärligt att engagera sig i projekten tillfälligt? Jag har själv ett enkelt förslag till Firefox-projektet, men jag vet inte vad jag ska göra av det, och jag vill inte gå igenom en krånglig registreringsprocess. Hade Firefox haft ett kontor i närheten hade jag kunnat gå dit och prata med utvecklarna. Även om e-post är enkelt är kommunikationen ibland lättare på de personliga och mer avspända sätten. Att hålla ihop utvecklare via e-post, MSN eller Skype är mycket svårare än på ett kontor, där man tar fikapauser tillsammans.

Detta inlägg gäller naturligtvis bara för distribuerade öppen källkods-projekt, men den absoluta majoriteten hör till den kategorin. Undantagen är de riktigt seriösa projekten som exempelvis mySQL och Qt, som drivs av ”riktiga företag”.

Etikettikon Läs fler artiklar om: , ,

Kommentarikon Kommentarer

  1. Saken handlar nog i första hand om att man tycker det är kul att skapa något själv. Att göra det från grunden själv. Känner själv personer som har gjort precis sådana saker, yet another msn klient osv. Oftast tror jag att det handlar om att folk väljer att skapa program för att testa på, inte för behov. Och där det finns behov kanske upphovsmannen inte vill att någon annan ska bidra, då det inte blir som man har tänkt sig.

    En sak som är värd att tänka på är just det faktum att alla kanske inte har samma mål med programmet. Även om båda i slutänden vill visa text. smile

    Tyvärr tycker jag man ser det mycket när man sitter och leker med Linux, man hittar en kanonfunktion i ett program, och en bra i ett annat, men fortfarande är båda värdelösa för de saknar den andra funktionen.

    Problemet är väl i grunden det att man gärna vill kunna säga att man har skapat det själv, och det är ju nästan fusk att titta hur andra har gjort. Om man lyssnar på hur vissa resonerar. Synd att inte alla program byggs efter en mall, tyvärr skulle nog inte mångfalden vara så stor då.

    Skrivet av Dan, måndag 3 oktober 2005, 14:36

  2. Fast här är det flera olika problem som är ihopblandade, och jag håller inte med om att det finns något gemensamt samband (och jag är övertygad om att jag inte tycker det är något som har så mycket med öppen källkod att göra isåfall).

    Att det finns många projekt vars produkter gör ungefär samma sak tycker jag egentligen inte är konstigare än att det ofta finns många konkurrerande stängda produkter (må det vara spel som liknar varandra, bildvisare, antivirusprogram eller operativssystem). Exakt vad det beror på kan så klart variera - NIH kan helt klart vara en faktor, men det kan också vara så att man inte hittar just den funktion man tycker sig behöva i något existerande projekt och inte vill engagera sig i något av dem, eller helt enkelt att man bara vill göra något själv.

    Detta är inte något som är unikt för öppen källkod, prova exempelvis att söka på Tucows efter bildvisare och hur många olika produkter du hittar (där de allra flesta inte har öppen källkod samt är gratisprogram eller spridprogram).

    Ifall du nu vill engagera dig i något projekt så beror det så klart på vilket det är - en del projekt har texter på sina webbsidor eller i programpaketen där det står vad de tror sig behöva hjälp med. Annars kan man (speciellt om det är ett mindre projekt) helt enkelt skriva till någon av de inblandande och fråga vad man kan hjälpa till med eller ge förslag. (På samma sätt som jag skulle skriva till någon ensam programmerare som gav ut spridprogram med stängd källkod som jag ville ge förslag till.)

    Vad gäller större projekt så blir det besvärligare, oavsett om det är stängd eller öppen källkod som används - oftast handlar det om att få fram förslagen till rätt person, och hanteringen brukar kräva stort engagemang i båda fallen.

    Vad gäller kontor tror jag inte det spelar någon större roll. Både Apple och Microsoft har väl kontor i Stockholm, men jag tror inte det händer särskilt ofta att någon går in där och och berättar vad de har problem med eller vad de önskar sig (eller att det hjälper om någon nu gör det). Det intryck jag har är inte heller att det traditionellt inte hjälpt att berätta för en säljare vad man önskar sig, utan det man har kunnat göra har varit att gå med i en användarförening, och på så sätt förhoppningsvis få kontakt med någon som kunnat ta sig an önskemålet.

    Ungefär lika svårt har det varit för större projekt med öppen källkod, även om många åtminstone haft en adress att skicka felrapporter till.

    Det här har dock faktiskt blivit mycket bättre på sista åren, för båda typerna av projekt, genom att utvecklarna börjat föra webbloggar och man där kunnat diskutera saker direkt med dem, vilket är oerhört praktiskt.

    Sen för att ta upp det du ger exempel på - för att ge ett förslag till förbättringar av Firefox lämnar du en begäran om förbättring (RFE) i Mozillaprojektets bugzilla. Du kommer att behöva registrera dig, men det skulle jag också tro är medvetet - dels för att man kan behöva följa upp och försöka få förtydlingar, dels kanske man kan tro att förslag/felrapporter från någon som inte vill ligga en på minut på att registera sig är mindre genomtänkt än från någon som kan tänka sig att göra det. Slutligen har man nog inte tillräckligt med kvalitetspersonal som går igenom förslagen/felrapporterna för att man ska vilja försöka få in fler genom att låta folk lämna förslag/felrapporter utan att registrera sig.

    Skrivet av Pontus, måndag 3 oktober 2005, 15:52

  3. Jag håller med dig Christian, det du nämner är verkligen ett problem. För vilken vinst drar den stora massan av att lilla jag utvecklar en ny egen textläsare.

    Jag och många andra tycker nog om att utveckla våra program från grunden. Det finns en utmaning i det som lockar. Därför gör jag mitt bloggsystem själv för det är lite häftigare att kunna säga att den är hemmagjord och inte bara ett nerladdat system.

    Så långt är allt okej. Det blir dock ett problem när lilla jag tror att jag ska ut med mitt bloggsystem och erövra scenen för öppen källkod. Varför skulle någon vilja ha mitt bloggsystem överhuvudtaget? Gynnar det mer än det förstör? För det förstör väl när mitt bloggsystem gör mängden sådana system ännu större och oöverblickbar.

    Om ni nu har förstått vad jag menar så skulle jag vilja föreslå en eller två lösningar.

    Den första är att det borde finnas en eller några central organisationer som organiserar projekten och lyfter fram de speciella i rampljuset. Organisationer som sätter fokus på ett fåtal av mängden projekt och lotsar dit frivilliga utvecklare för att på så sätt få dessa projekten att växa istället för att utvecklarna ger upp och bygger sitt egna.

    Det i kombination med ett modulsystem som ritas upp av organisationerna så att jag kan bistå med ett helt nytt projekt bara genom en modul eller genom att ta flera moduler och sätta ihop som en helhet. Att göra det fint att använda sig av andras kod i modulform känns viktigt och det vore något som inte tog bort utmaningen. Det räcker då även att enbart sätta sig in i en liten modul för att kunna bidra till något stort. Om jag känner att jag är speciellt duktig på ditt eller datt så kan jag hitta en sådan modul sätter mig in i den.

    Kontentan är alltså - organisationer ska styra fokus i open sourcevärlden, med tydliga och enkla riktlinjer, och moduler ska knyta samman alla projekt till en stor gemensam grupp.

    Skrivet av Pelle, måndag 3 oktober 2005, 23:28

  4. Tycker att det som Pelle skriver är väldigt viktigt men också svårt. Om man hade ett system där man kunde skriva moduler som följde en viss standard så skulle det inte alls vara problem att få folk att skriva alla möjliga saker, för om man kan göra en modul så kan man skriva något från grunden, och få en utmaning i samma veva.

    Problemet som man kan se på alla möjliga håll är dock att det inte fungerar på det viset. Det skulle antagligen bli alldeles för mycket bråk om vilket system modulerna skulle följa och skulle säkert redan falla där. Om ett stort företag som Microsoft å andra sidan skulle göra något fritt som gynnade alla så kanske det skulle ha mer genomslagskraft. Som det ser ut idag kommer det nog inte hända tyvärr.

    Skrivet av Dan, onsdag 5 oktober 2005, 00:36

  5. Mycket bra kommentarer! Jag tror inte att det går att lösa problemet. Avsikten med mitt inlägg var snarare att väcka tankar kring utveckling i distribuerade öppen källkods-projekt. Och visa lite på hur mycket ”mjuka värden” påverkar också i en teknikfixerad bransch. (Kommunikationsproblem, not invented here, samordning etc.)

    Egoism och revir spelar förstås också en roll när projekten blir så personliga som de oftast blir när det är en privatperson som står bakom. Det kan för många vara svårt att dela sitt projekt med någon annan, att låta någon annan ändra i sin kod. Hur vet man vad den andre utvecklaren egentligen kan? Speciellt om man ska släppa in någon på ett Sourceforge-konto med fri tillgång till cvs:en.

    Skrivet av Christian Davén, onsdag 5 oktober 2005, 01:13

Rätt enkelt handlar mest om användbarhet och webbutveckling. Jag som skriver heter Christian Davén.

Läs mer om Rätt enkelt

Etikettikon Etiketter

användbarhet, bloggande, google, gui, javascript, meta, programmering, webben, webbutveckling, wordpressfler etiketter

Medaljikon Flitiga kommentatorer