Otvoreni kod i principi uređenja zajednice
Početkom devedesetih godina prošlog veka, u svetu definisanom nulama i jedinicama, pojavio se softverski kod pod imenom linuks (linux). Njegov autor je Linus Torvald (primetimo sličnost ličnog imena i naziva koda). Reč je o kernelu, tj., samom srcu svakog operativnog sistema. U to vreme dominirali su operativni sistemi kao što su Unix ili MS DOS/Windows. Linuks, ako izuzmemo da je reč o kernelu a ne kompletnom operativnom sistemu, razlikovao se od njih na dva načina. Prva razlika se odnosila na tehnički deo, što trenutno nije u našem fokusu. Druga važna razlika jeste vrsta licence[1] koja je primenjena na ovaj kod. Reč je o GNU Opštoj javnoj licenci[2] (GNU General public licence). Ova licenca štiti slobodu korišćenja, proučavanja, deljenja i menjanja izvornog koda programa bez ikakvih restrikcija. Primenjuje se na raznovrstan softver i postoji nekoliko verzija licence, ali nećemo dublje ulaziti u tumačenje i razlike između ovih verzija jer naš primarni interes nije bavljenje samom licencom već implikacijama njene primene na softver. Tako dolazimo do glavnog fenomena kojim ćemo se baviti, a to je uža i šira zajednica okupljena oko unapređivanja i promocije slobodnog i otvorenog softvera (Free and Open Source Software).
Treba napomenuti da otvoreni kod ne podrazumeva i besplatan softver. Određeni program može biti otvoren u smislu koji je definisan u nekoj verziji GNU Opšte javne licence, ali može biti distribuiran kao komercijalni proizvod. To znači da onome kome je potreban taj program da bi „odradio posao“ može biti jednostavno i razumljivo da plati taj program kako bi ujedno dobio tehničku podršku. S druge strane, programerima ili studentima programiranja može biti od koristi da izvorni kod tog programa preuzmu besplatno radi daljeg izučavanja i eventualnog unapređivanja ili modifikovanja istog. Zbog toga se može reći da je na neki način atribut „otvoren“ primarniji u odnosu na atribut „besplatan“. U naučno-obrazovnom smislu značaj otvorenosti je nemerljiv, no to ne znači da nema svoju cenu. To je sasvim razumljivo jer pisanje koda koji će biti dostupan i ustupljen na korišćenje, proučavanje, deljenje i modifikovanje svim ljudima oduzima jako mnogo vremena, te je sasvim normalno da se autoru tog koda treba nekako odužiti.
Oko linuksa (kernela) izgrađeni su mnogi operativni sistemi. Operativni sistemi koji u svom srcu imaju linuks najčešće se nazivaju GNU/Linuks distribucije. Neke od najpoznatijih distribucija su komercijalni operativni sistemi, ali mnogo je više distribucija koje promovišu FOSS (Free and Open Source Software) filozofiju. Svaki operativni sistem je složena celina koja uključuje i potrebuje doprinos mnogih ljudi koji ulažu svoje znanje i potencijale u njihov razvoj i promociju. Ako izuzmemo one-man-project sisteme, većinu operativnih sistema održavaju i razvijaju timovi programera, dizajnera itd., koji funkcionišu ili bi trebalo da funkcionišu kao jedinstvena i jasno strukturisana celina, kako bi razvoj i podrška bili koliko toliko predvidljivi.
Ako uzmemo u obzir FOSS filozofiju i veliki broj volontera okupljenih oko projekata koji ovu filozofiju promovišu, treba se zapitati sledeće: kako organizovati zajednicu okupljenu oko ovih projekata? Da to nije nimalo jednostavno pitanje pokazuje se time što FOSS filozofija nije čisto pravni odnos prema nekom proizvodu (npr., licenciranje), već uključuje lični angažman i izvestan etički stav o tome šta je softver, kome je namenjen, čemu sve može služiti, koja su ograničenja i opasnosti njegove upotrebe itd. Zatim se postavlja pitanje o načinu organizovanja i raspolaganju infrastrukturnim sredstvima, o raspolaganju finansijama, načinu komunikacije unutar uže i šire zajednice itd. Možemo, dakle, reći da ovakvi projekti sadrže niz aspekata koji podrazumevanju javnu diskusiju i otvoreni razgovor, kako o tehničkim stvarima tako i o ciljevima i svrsi svakog pojedinačnog projekta. Na kraju, svaki projekat ili kod napisan sa ciljem da bude od koristi bar jednoj osobi sadrži i etičku dimenziju, jer smo svedoci toga da postoji obilje softvera čiji je cilj da nanoseći štetu nedužnim i neveštim korisnicima računara nekome obezbedi materijalnu korist. Ukratko, postoji softver koji je napisan sa namerom da nekom nanese zlo (npr., da nekome oduzme slobodu raspolaganja privatnim podacima ili da ga jednostavno opljačka).
Kada je reč o poznatijim GNU/Linuks distribucijama (koje imaju i ponekoliko hiljada aktivnih članova), postoje određene sličnosti u načinu organizovanja ovih zajednica sa načinima organizovanja sličnih kompanija te veličine. Iza operativnih sistema kao što su SUSE[3], Red Hat[4] ili Debian[5] stoje velike zajednice. Ove zajednice nužno se moraju organizovati hijerarhijski, čemu je analogon neka vrsta „prirodne“ strukturisanosti građanskog društva (ovo zvuči hegelijanski). To naravno ne podrazumeva glavnog direktora, upravnika ili vlasnika poput vrhovne ličnosti sa apsolutnom moći. Organizaciju njihovih zajednica mogli bismo posmatrati poput organizacije različitih preduzeća slične veličine, sa tom razlikom što SUSE i Red Hat podržavaju otvoreni kod uz komercijalni element, dok Debian podržava FOSS filozofiju, i sve ove imaju upravne odbore čiji se članovi periodično menjaju, i najčešće su posredno ili neposredno bili uključeni u aktivnosti skoro svih jedinica koje su u organizaciji prisutne. Možemo reći da su ove zajednice organizovane na nivou ozbiljnog menadžerizma, ali i parlamentarizma. Pravo glasa najčešće imaju svi aktivni članovi, često uključujući jedan glas od strane šire zajednice (npr., ljudi koji nemaju programerskog znanja ali podržavaju projekat kroz finansijke donacije ili besplatan marketing) okupljene oko projekta.
Kada je konkretno reč o Debian-u, postoji „društveni ugovor“ kojim su definisani osnovni ciljevi, pravni akti i svrha celog projekta pod svetlom načela FOSS filozofije. Između ostalog, postoji pisani kodeks ponašanja[6] koji jasno definiše osnovna pravila i zahteve kojih se programeri, i svi oni koji pomažu razvoj projekta, moraju pridržavati kako bi se sve odvijalo u pozitivnoj i demokratskoj atmosferi. Ako danas možemo zamisliti da postoji nešto poput neposredne demokratije, Debian zajednica je verovatno najpribližnija tome. Naravno, i ovde postoji Project Leader[7], no njegova je uloga prilično formalizovana kada se ispoštuju sva ostala pravila u okviru FOSS filozofije kao sistema koji pruža osnovna načela kojima se povezuje zalaganje i rad na softveru sa etičkim principima. Nećemo ovde dalje objašnjavati koje su to uloge Debian Project Leader-a, jer je reč o manje-više univerzalnoj definiciji Project Leadera koju srećemo u ekonomskim i organizacionim disciplinama.
Da je u Debian zajednici reč o manje-više neposrednoj demokratiji potvrđuje i to što se glasanjem često donose odluke u korist nekih predloga, a posle toga se opet organizuju glasanja i vraćaju na snagu prethodni predlozi i slično. To bismo mogli da nazovemo lošom stranom neposredne demokratije – česta glasanja i referendumi, no ipak se to čini zarad zajednice.
Do sada smo spomenuli zajednice sa vrlo visokim stepenom demokratičnosti i parlamentarizma. Međutim, iza nekih distribucija stoje kompanije čija je transparentnost i demokratičnost dovedena u pitanje. Zajednica okupljena oko operativnog sistema pod nazivom Ubuntu primer je (javno upitne i neosvešćene) zloupotrebe otvorenosti zajednice. Iako je velika zajednica kao temelj poslužila razvoju sistema u tehničkom i svakom drugom smislu, ispostavilo se da je glavni cilj osnivača distribucije Marka Šatelvorta (Mark Shuttleworth) pre svega komercijalni uspeh, i neka vrsta delimičnog (a možda i potpunog!?) brendiranja i licenciranja Ubuntu-a, poput komercijalnih vlasničkih projekata. Već niz godina Mark donosi odluke sa kojima se veliki deo zajednice ne slaže, a posledica toga je da su mnogi iskusni i ključni ljudi razvojnog tima napustili projekat[8]. Sve je više glasova o tome da je Kanonikal (Canonical, firma koju je Mark osnovao za pravno zastupanje Ubuntu-a) zao[9], a forumi su prepuni mržnje prema kompaniji koja navodno radi za zajednicu[10], a u praksi joj sve manje i ređe uzvraća za njene zasluge. Moglo bi se reći da je tačka usijanja, kada je sve postalo jasno, bio trenutak kada je sa zvaničnog sajta Ubuntu distribucije u jednom trenutku nestao meni pod nazivom Community (nakon burne reakcije zajednice brzo je opet vraćen). Polako se pojavila razlika između zajednice i „vrhovnog vođe“ i njegovog tima; od otvorene i demokratske zajednice došlo se do zajednice zavedene diktatorskim šarmom.
Oko Linuks Minta[11] (Linux Mint), koji slovi za prilično konzervativnu distribuciju, nalazi se rastuća zajednica koja sa, slobodno možemo reći, oduševljenjem prati razvoj projekta. Oduševljenje ove velike i stalno rastuće zajednice, verovatno potiče odatle što je uži tim koji radi na razvoju samog softvera dosledan u sprovođenju FOSS filozofije. Slično drugim zajednicama, i Linuks Mint zajednica poseduje „bazen ideja“ (Idea’s pool) – mesto gde svi članovi predlažu svoje ideje o tome šta bi se moglo unaprediti i u kom smeru bi voleli da se projekat razvija. O predlozima se javno diskutuje i razmenjuju argumenti, nakon čega se prihvataju ili odbacuju. O ključnim pitanjima, kao što su privatnost korisnika, pouzdanost određenih delova softvera, inovacijama i slično, mora se diskutovati i na laičkom i na „stručnom“ nivou kako bi se donela odluka koja će obezbediti dugotrajno zadovoljstvo svih korisnika i stabilan i predvidiv razvoj projekta. „Stručni“ nivo u praksi podrazumeva izvesnu dozu meritokratije, tj., oni koji najviše doprinose projektu i samim tim su najbolje upućeni u samu stvar, imaju prvenstvo u predlaganju rešenja ali i kritike (a ako zatreba mogu biti arbitrarni u pogledu toga šta je argumentovana a šta besmislena diskusija). Krajnji cilj jeste uživanje u stvaranju, deljenju i korišćenju softvera; to se postiže aktivnim zalaganjem svih članova – i laika i stručnjaka.
Timovi oko FOSS projekata organizovani su na različite načine, a spomenućemo još i to da su neke zajednice koje rade na razvoju određenih distribucija sponzorisane od strane većih kompanija. Ovi projekti služe za testiranje novih softverskih rešenja, a zajednice imaju slobodu da se organizuju kako žele dokle god svojim raspravama i neslaganjima ne koče razvoj projekta. Postoje, takođe, i male distribucije iza kojih često stoji jedan čovek koji ima svoju viziju, kome ne odgovaraju postojeći projekti ili ne želi da uvažava tuđe predloge ili barem većinu predloga. Zato su takvi pojedinci najčešće primorani da rade sami, a takvi projekti nemaju stabilan i predvidiv razvoj, komunikacija sa korisnicima je minimalna i siromašna, i životni vek projekata često je kratak.
Možemo reći da u moru projekata otvorenog softera ili FOSS filozofije, preovladava princip meritokratije kako bi se zajednica diferencirala na one koji aktivno doprinose razvoju projekta, i one koji laički postavljaju pitanja i predloge bez razumevanja tehničkih i temeljnih principa izraženih u GPL licencama. S obzirom na veliki broj projekata (samo aktivnih GNU/Linuks distribucija ima negde oko 250), postoji relativno veliki broj demokratski organizovanih zajednica, mali broj zajednica koje teže diktatorskim režimima i nesrazmerno veliki broj single-man i malih projekata sa dva, tri člana gde ne možemo govoriti o organizaciji u skladu sa bilo kakvim principima. Jer ako broj članova zajednice stalno varira i ne prelazi više od par ljudi, ne mogu se uspostaviti pravila i principi koji bi se morali poštovati, zato što se takva komunikacija može podvesti pod „razgovor u četiri oka“, i ne mora nužno izaći u javni prostor.
Koje su mane ovakvih zajednica? Spomenućemo samo neka opšta zapažanja i primere. Iako se meritokratija čini kao samorazumljiv i prirodan princip, poželjno je da bude ograničena, ili suočena sa demokratijom ili nekim drugim oblikom političkog uređenja, jer nisu retki primeri da onaj ko najviše doprinosi projektu često precenjuje sopstveni angažman. Takvi pojedinci ponekad imaju i liderske ambicije, pa smatraju da im veliki doprinos projektu daje za pravo da se ponašaju kako žele, da su baš oni uvek u pravu, i da im po nekom nepisanom pravilu pripada ključna, liderska uloga (poput nekog duhovnog vođe). A na primeru Ubuntu-a vidimo da se od harizmatičnog lidera koji uzima od zajednice ono najbolje i koristi svaku priliku da spomene tu reč – zajednica, lako dolazi do diktatora koji istu zanemaruje jer ima komercijalne pretenzije. Neposredna demokratija takođe ima svojih mana, jer iako se glasanje čini kao najbolje rešenje, nekad se potezanje referenduma o svakom spornom pitanju čini kao cepidlačenje, nerazumevanje osnovnih principa demokratije kao argumentovanog sučeljavanja stavova u javnom prostoru, i predstavlja opterećenje i užoj i široj zajednici.
Kao što u svetu postoje različiti politički principi kojima se uređuje funkcionisanje malih, lokalnih ili velikih zajednica (poput država), isto tako se u organizacionim principima preduzeća, grupe građana ili bilo koje druge ljudske zajednice sadrže temeljni etički i politički principi. Zajednica okupljena oko softvera otvorenog koda nije izuzetak. Ono što je, dakle, izvesno jeste nužnost postojanja javnog prostora kao uslova otvorene – istinske komunikacije. U zavisnosti od toga da li je prisutan komercijalni momenat, postoje izvesna ograničenja i prisustvo nekih tržišnih principa i pravila, koje nećemo sresti u svim projektima. Čak i ako zanemarimo komercijalni element, raznolikost i fragmentarnost zajednice u open source software svetu je toliko velika, da možemo pronaći najrazličitije oblike pisanih i nepisanih pravila, političkih principa pa i vrlo ozbiljnih etičkih kvalifikacija. Na pitanje koje je od prisutnih uređenja najbolje ne možemo uputiti na neki pojedinačni oblik uređenja, već ćemo ukazati na vrednost različitosti i mogućnosti da svako odabere ono što mu najviše odgovara. Ako ne bi postojalo toliko različitih oblika uređenja, kako bismo uopšte znali da je princip koji zastupamo najbolji? Kao što su mnogi filozofi morala, od Heraklita preko Nikolaja Hartmana pa sve do savremenih autora, potvrdili: svaka vrednost mora imati svoj korelat – nevrednost! Stoga se nameće još jedno pitanje: ako su fragmentarnost i različitosti ovog mikrokosmosa direktno povezane sa samim razvojem i napretkom u oblasti softvera otvorenog koda, što danas ima direktne posledice na mnoge sfere ljudskog bivstvovanja (iako mnogi toga nisu svesni), šta možemo iz toga zaključiti u pogledu ljudske zajednice kao makrokosmosa? Imamo mnogo primera malih zajednica, koje nemaju nikakve veze sa softverom, a koje pružaju ili mogu pružiti dobre etičke primere većim zajednicama. Zbog čega bi onda zajednice oko otvorenog koda bile bolji primer od ovih? Jedan od mogućih odgovora bio bi da je činjenica da ove zajednice beleže sve veću opštu prihvaćenost i dobijaju podršku velikog broja ljudi, a istovremeno neizmerno doprinose funkcionisanju savremenog društva u celini (pre svega kroz tehnološke inovacije i premanentno obrazovanje). Stoga, nema razloga ne smatrati ih poželjnim fenomenom u savremenom društvu.
Za P.U.L.S.E Vukašin Milošević
Tekstovi o društvu na portalu P.U.L.S.E
[1] „Linux kernel is released under GNU GPL version 2 and is therefore Free Software as defined by the Free Software Foundation. You may read the entire copy of the license in the COPYING file distributed with each release of the Linux kernel.“, na web adresi: https://www.kernel.org/category/faq.html
[2] O ovoj i ostalim licencama koje štite slobodu proučavanja, deljenja i modifikovanju izvornog koda programa videti na internet stranici: http://www.gnu.org/licenses/
[3] https://www.suse.com/
[4] https://www.redhat.com/en
[5] http://www.debian.org/
[6] https://www.debian.org/code_of_conduct
[7] https://www.debian.org/devel/leader
[8] Ovo je samo jedan od primera: http://www.omgubuntu.co.uk/2015/10/kubuntu-lead-steps-down-but-no-this-isnt-the-end-of-kubuntu
[9] http://www.linuxzasve.com/moj-pogled-zasto-je-ubuntu-zao
[10] „We believe in the power of open source software; Ubuntu could not exist without its worldwide community of voluntary developers. We are committed to creating it, refining it, certifying it for reliability and promoting its use.“, na web adresi: http://www.canonical.com/about.
[11] https://linuxmint.com/