Mikään pakko ei tietenkään ole tehdä yhteistyötä, ja mitään lupia ei tarvitse kysellä, mutta käytännössä hommat on kuitenkin helpompia, jos vähän ottaa muitakin huomioon.
Juuri siksi minun mielestä ne väitteet, että "jos ei kelpaa, ainahan voi tehdä toisin" on epärealistisia. Onhan toki totta, että aina voi kirjoittaa oman ohjelman/ohjelmiston tilalle tai vaihtaa johonkin muuhun projektiin, jos ei miellytä: niinhän minä tein silloin, kun hylkäsin esimerkiksi Windowsin. Se ei kuitenkaan mielestäni ole lainkaan avoimen lähdekoodin pointti! Mun mielestä avoin koodi ekaa kertaa pitkiin aikoihin mahdollistaa, että ei ole pakko hylätä toimimatonta/itseä miellyttämätöntä proggista, vaan voi osallistua sen kehitykseen, ja muuttaa toimimattoman toimivaksi.
Mulle avoin koodi ei ole niinkään forkkausta, vaan patchien hyväksyttämistä. Joskus toki joutuu forkkimaankin, mutta kyllä suurimmat menestykset on saatu aikaan nimenomaan voimat yhdistämällä.
Hommat voivat olla myös vaikeampia jos ottaa muita huomioon, mikä riippuu ihan siitä ketä nämä muut ovat.
Patchien hyväksyttämisen etu on siinä että jos patchin tekijä ei tunne projektia hän voi pyytää palautetta niiltä jotka työskentelevät proktin parissa aktiivisemmin, jolloin vähäisemmilläkin tiedoilla voi saada aikaan laatutyötä. Samoin jos ei ole kiinnostusta alkaa syvällisemmin kehittämään projektia mutta haluaa korjata jonkin pienen itselle tärkeän asian niin kun tämän korjauksen lähettää projektin ylläpitäjille niin oma ongelma tulee korjatuksi mutta itse ei tarvitse esim. alkaa hoitamaan kaikkea projektin ylläpitotoimintaa, mikä forkkauksen tapauksessa tapahtuisi.
Tilanne voi kuitenkin olla sellainen että sinulla on yritys jossa on N kappaletta työntekijöitä joiden kokopäivätyötä on jonkin tietyn asian tekeminen maksaville asiakkaille. Tämä asia mitä teette perustuu johonkin vapaaseen ohjelmistoon, mutta tämän projektin varsinaiset ylläpitäjät ovat harrastelijoita joilla on ehkä 2h/kk aikaa työskennellä projekin parissa. He voivat myös olla toisen yrityksen palkkalistoilla jolla ei ole mitään kiinnostusta tehdä niitä muutoksia joita teidän täytyy saada tehtyä niille maksaville asiakkaille, joten ylläpitäjät eivä voi käyttää työaikaansa mihinkään teitä kiinnostavien ominaisuuksien kehittämiseen.
Tällainen tilanne voi olla täysin mahdoton jos nämä N kappaletta työntekijöitä joutuvat istumaan mitään tekemättömänä 2 viikkoa kun odotetaan projektin ylläpitäjien mielipidettä johonkin tekniseen suunnitelmaan. Tällaisessa tapauksessa siis hommat ovat käytännössä moninkertaisesti vaikeampia kun otetaan muitakin huomioon, ja usein oikea ratkaisu onkin tehdä itselle tärkeät asiat muilta kysymättä.
Esimerkiksi legendaarinen GCC-kääntäjän forkkaus tapahtui juuri näin, eli oli yrityksiä joiden oli pakko saada toimiva kääntäjä markkinoille, mutta Stallmanin johtama GCC:n kehitystiimi ei pystynyt yhteistyöhön, joten nämä ulkopuoliset päättivät että he eivät ota GCC:n kehittäjiä millään tavalla huomioon vaan tekevät asiat oman päänsä mukaan. Tuloksena oli että heidän kääntäjänsä oli niin paljon parempi että alkuperäinen GCC heitettiin roskakoriin ja tästä ulkopuolisten kehittämästä versiosta tehtiin uusi virallinen GCC.
Usein tuntuukin että nämä jotka alunperin ovat huolestuneita Ubuntun kehityksestä ovat niitä jotka pelkäävät itse joutuvansa sinne roskakoriin jos Ubuntu onnistuukin tekemään kaiken paljon paremmin heiltä kysymättä. Jonkin verran on puhuttu siitä että avoimen lähdekoodin harrastajien motivaatio on maine toisten ihmisten silmissä, ja jos tuleekin joku uusi taho joka tekee kaiken paremmin ja vie kaiken huomion niin tämä voidaan kokea uhkana.
Nythän näyttää, että Canonical kehittää Ubuntulle oman SDK:n ja sille kehityssoftat (tähän suuntaan ainakin Ubuntu Phone näyttää menevän). Tässä olisi mainio mahdollisuus rakentaa kaikkien (tai edes suurimpien ja suosituimpien) distrojen välinen yhteinen kehitysalusta ja sille huippulaadukkaat työkalut. Se tarkoittaisi, että kaupallisilla toimijoilla olisi paljon helpompaa, mikäli haluaisivat portata softaansa Linux-ympäristöön.
Linuxillehan on jo olemassa jonkinlainen lähinnä Red Hatin määrittämä standardi joka takaa yhteensopivuuden eri jakelujen välillä. Mikäänhän ei toki käsittääkseni estä muita distroja ottamasta tätä Ubuntun SDK:ta omaan käyttöönsä, paitsi edellä mainittu uhka omalle asemalle.
Mitä taas tulee paketinhallintaan, sen walled garden -asenteesta olen aina pitänyt. Paketinhallinta vaan on siitä mukava, että kuka tahansa voi alkaa ylläpitämään pakettia, tai ottaa yhteyttä paketin ylläpitäjään ja ehdottaa muutoksia. Tämä on tietenkin oleellinen ero Applen App storeen – onneksi myös Ubuntun Software Center edelleen tässä mielessä eroaa App Storesta edes vähän.
Se oleellinen ero ei kuitenkaan taida olla tämä, sillä jos esim. App Storesta ladatussa Angry Birds pelissä on bugi niin mikään ei estä ottamasta yhteyttä Rovioon ("paketin ylläpitäjään") ja ehdottamasta muutoksia. Kuka tahansa voi myös laittaa oman sovelluksensa App Storeen.
Se oleellinen ero on siinä että Applen järjestelmään ei voi asentaa ohjelmia muuten kuin App Storen kautta, mutta esim. Ubuntun Software Centeriin voi asentaa haluamiaan pakettilähteitä, tai voi vaikka ladata satunnaisen .deb paketin netistä ja Software Center asentaa sen (ns. "Windows-tyyliin" tuplaklikkaamalla ladattua pakettia). Se mistä kannattaa huolestua ja mitä kannattaa pitää silmällä on että rajoitetaanko tätä mahdollisuutta asentaa ohjelmia ja sisältöä muista lähteistä, ei se että onko jossain yhdessä lähteessä, esim. Ubuntun kaupassa, myynnissä suljettuja ohjelmia tai sisältöjä.