Prev
Katedrāle un tirgus: Nepieciešamie tirgus izstrādes priekšnosacījumi
Next
Katedrāle un tirgus: Par pārvaldību un Mažino līniju

Atvērtā koda programmatūras sociālie faktori

Ir pareizi teikts: labākie stiķi sākas kā autora ikdienas problēmu personīgs risinājums un izplatās tāpēc, ka problēma izrādās tipiska lielam lietotāju skaitam. Tas mūs atgriež pie pirmā likuma, pārfrāzējot to nedaudz noderīgākā veidā:

18. Lai atrisinātu interesantu problēmu, sāc ar problēmu, kas interesē tevi.

Tā tas bija Karlam Harisam ar pirmatnējo popclient, un man ar fetchmail. Bet tas jau sen ir skaidrs. Tagad mēs pievērsīsimies citai interesantai  Linux un fetchmail vēstures vietai — programmas attīstībai, kad tai ir liels aktīvu lietotāju un līdzistrādātāju skaits.

The Mythical Man-Month Freds Brūks norādīja, ka programmētāja laiks nav aditīvs lielums — pievienojot jaunus programmētājus vēlā projekta stadijā, tas tiek kavēts vēl vairāk. Kā mēs to redzējām, viņš argumentēja to ar sarežģītību un komunikācijas izmaksām, kas projektā pieaug proporcionāli programmētāju skaita kvadrātam, kamēr produktivitātes pieaugums ir tikai lineārs. Brūka likums bieži tiek uzskatīts par acīmredzamu patiesību. Bet mēs šajā esejā esam izpētījuši dažādus veidus, kā atvērtā koda pasaulē šis pieņēmums tiek atspēkots arī praktiski — ja Brūka likums darbotos, Linux nebūtu iespējams.

Džeralds Veinbergs (Gerald Weinberg) klasiskajā The Psychology of Computer Programming pieņēma ka, mēs varam ieviest vitālu Brūka likuma korekciju. Viņa diskusijā "nesavtīgā programmēšana" Veinbergs noradīja, ka ražotnēs, kur izstrādātāji necenšas slēpt savu kodu un iedrošina cilvēkus meklēt kļūdas un iespējamos uzlabojumus, uzlabojumi notiek daudz straujāk kā jebkur citur. (Jaunais Kenta Beka (Kent Beck) "ekstrēmās programmēšanas" paņēmiens, kur programmētāji strādā pārī — vienam lūkojoties pār otra plecu, varētu būt mēģinājums spēcināt šo efektu.)

Iespējams, Veinberga terminoloģijas izvēle novērsa viņa darbam pelnīto uzmanību — vairums pasmaidīs, iedomājoties Interneta hakerus kā "nesavtīgus". Bet es domāju, šodien šie argumenti izskatās pārliecinošāki kā jebkad.

Tirgus metode, izmantojot visu "nesavtīgās programmēšanas" efekta spēku, pamatīgi vājina Brūka likumu. Brūka likums netiek atcelts, bet ar lielu izstrādātāju skaitu un lētu saziņu, šis efekts var tikt nomākts ar konkurējošām nelinearitātēm, kas savādāk ir neredzamas. Tas atgādina saikni starp Ņūtona un Einšteina fiziku — vecākā sistēma vēl arvien ir spēkā mazjaudīgiem dzinējiem, bet, ja jūs iegūstat pietiekami lielu masu un ātrumu, jūs iegūstat tādus brīnumus kā Linux kodolsprādzienu.

Unix vēsture mūs sagatavoja tam, ko mēs pieredzējām ar Linux (un ko mēs praktiski pārbaudījām mazākā mērogā apzināti kopējot Linusa paņēmienus (EGCS)). Lai arī kodēšana pēc būtības ir vientuļnieku nodarbošanās, patiesi labas lietas tiek iegūtas apkopojot visas kopienas pieredzi un idejas. Izstrādātājs, kas izmanto tikai savas smadzenes slēgtā projektā, pamazām zaudē tam izstrādātājam, kas zina, kā izveidot atvērtu vidi ar evolucionāru pieeju, kurā tiek pētītas dizaina iespējas, tiek piedāvāts kods, un kļūdu meklēšana un uzlabojumi nāk no daudziem simtiem (vai pat tūkstošiem) cilvēku.

Tomēr tradicionālā Unix pasaule neļāva attīstīties šai pieejai vairāku iemeslu dēļ. Pirmkārt, tam traucēja tiesiskie un dažādi licenču ierobežojumi, tirgus noslēpumi un komerciālas intereses. Otrkārt (kā tagad redzams), tolaik Internets vēl nebija pietiekami labs.

Vēl pirms lēta Interneta, jau bija dažas ģeogrāfiski kompaktas kopienas, kurās tika veicināta Veinberga "nesavtīgā programmēšana", un izstrādātāji spēja iedvesmot daudzus spējīgus padomdevējus un līdzizstrādātājus. Bella, MIT mākslīgā intelekta, LCS, UC Bērklija laboratorijas kļuva par leģendāru risinājumu mājvietām, un ir spējīgas vēl šodien.

Linux bija pirmais veiksmīgais projekts, kurā apzināti tika iesaistīti visas pasaules talantīgākie cilvēki. Domāju, tā nav sagadīšanās, ka Linux sākotnējais periods sakrita ar vispasaules tīmekļa (World Wide Web) dzimšanas laiku, un ka Linux bērnība bija 1993. — 1994. gadi, kas  sakrita ar Interneta pakalpojumu sniedzēju (Internet Service Provider - ISP) nozares attīstību un Interneta ieiešanu masās. Linuss bija pirmais cilvēks, kas saprata, kā jāspēlē pēc jaunajiem noteikumiem, ko nodrošināja vispārēja Interneta pieejamība.

Lai arī lēts Internets bija nepieciešams nosacījums Linux modeļa attīstībai, domāju, tas nebija vienīgais. Otrs svarīgais nosacījums bija vadības stila un sadarbojošos lietotāju grupu izveide, kas ļāva izstrādātājiem iesaistīt līdzizstrādātājus un iegūt maksimālu atdevi no pieejamās vides.

Bet kāds tad ir šis vadības stils un kādi ir šie lietotāji? Tas nevar būt balstīts uz spēka attiecībām, un ja arī būtu, vadība ar piespiešanu nedotu tādus rezultātus, kādus mēs redzam. Šajā sakarā Veinbergs citē atbilstošu vietu no 19. gadsimta krievu anarhista Pjotra Aleksejeviča Kropotkina (Петр Алексеевич Кропоткин) "Revolucionāra atmiņām":

Tā kā es biju dzimis kņaza ģimenē, es, tāpat kā daudzi mana laika jaunieši, uzskatīju par nepieciešamu vadībai izmantot komandēšanu, rīkošanu, rājienus, sodus u.tml. Bet, kad man vajadzēja vadīt nopietnus pasākumus ar (brīviem) cilvēkiem, agrā notikumu stadijā, kur katra kļūda varēja izraisīt tālejošas sekas, es sāku novērtēt atšķirību starp darbību, kas balstīta uz komandām un disciplīnu, un darbību, kas balstīta uz kopīgu izpratni. Pirmā brīnišķīgi strādāja militārā parādē, bet praktiski nebija pielietojama reālā dzīvē, kur rezultāts var tikt sasniegts tikai daudziem piepūloties ar kopīgu mērķi.

"Daudzu piepūle ar kopīgu mērķi" ir tieši tas, kas nepieciešams Linux līdzīgam projektam un "komandēšanas principu" ir praktiski neiespējami pielietot brīvprātīgo anarhistu paradīzē, ko mēs saucam par Internetu. Lai strādātu un sacenstos efektīvi, hakeriem, kuri vēlas vadīt sadarbojošos projektus ir jāiemācās izveidot un aktivizēt efektīvas interešu kopienas tādā veidā, kā to vispārīgi ieteica Kropotkins savā "kopīgās izpratnes" principā. Viņiem ir jāiemācās izmantot Linusa likumu.(SP)

Agrāk, lai skaidrotu Linusa likumu, es atsaucos uz "Delfu efektu". Bet vēl spēcīgāka analoģija ir ar adaptīvām sistēmām bioloģijā un ekonomikā. Daudzējādā ziņā Linux pasaule ir kā brīvais tirgus vai ekosistēma ar daudziem savtīgiem aģentiem, kas cenšas izveidot kārtību, kurā katrs gūtu maksimālu labumu. Šādā vidē spontāni izveidojas kārtība, kas ir daudz smalkāka un efektīvāka, kā to būtu iespējams iegūt ar centralizētu plānošanu. Tieši šeit ir jāmeklē "kopīgās izpratnes" princips.

"Labuma funkcija", ko vairo Linux hakeri, nav klasiski ekonomiska, bet tā ir nenovērtējama viņu pašapliecinājumam un reputācijai citu hakeru vidū. (Kāds var saukt viņu motivāciju par "altruistisku", bet tad viņš ignorē faktu, ka arī altruisms ir altruista pašapliecināšanās veids). Brīvprātīgās kultūras, kas strādā šādā veidā, patiesība nav nekas neparasts — viena cita, kurā es piedalos jau ilgu laiku, ir zinātniskās fantastikas fanu pulks. Tajā, atšķirībā no hakeriem, jau ilgu laiku ir trāpīgi noteikts, ka "egolifts" (egoboo - ego-boosting, jeb kāda reputācijas celšana citu fanu vidū) ir galvenais dzinulis brīvprātīgajās aktivitātēs.

Linuss, kas veiksmīgi sevi nostādīja kā vārtzini, kur izstrādi galvenokārt veic citi, un uzturēja projektā interesi līdz tas kļuva patstāvīgs, ir parādījis pamatīgu Kropotkina "kopīgās izpratnes" principa sapratni. Šis pseido-ekonomiskais skats uz Linux pasauli ļauj mums saskatīt, kā šī sapratne ir pielietota.

Mēs varam uzskatīt Linusa paņēmienu kā efektīvu "egoliftu" tirgu, kas ļauj atsevišķu hakeru savtīgumu apvienot tik cieši, ka iespējams nonākt līdz grūtam finišam, lai arī tas ir panākams tikai ar neatslābstošu sadarbību. Ar fetchmail projektu es parādīju (gan mazākā mērogā), ka šis paņēmiens var tikt atkārtots ar labiem rezultātiem. Iespējams, es pat to izdarīju apzinātāk un sistemātiskāk kā viņš.

Daudzi cilvēki (īpaši tie, kas politiski neuzticas brīvam tirgum) iedomājas, ka neatkarīgu egoistu kultūrai jābūt sadrumstalotai, teritoriālai, neefektīvai, noslēgtai un naidīgai. Bet šīs iedomas pilnībā apgāž (kaut vai, piemēram,) graujošā Linux dokumentācijas daudzveidība, kvalitāte un pamatīgums. Tas, ka programmētāji ienīst dokumentēšanu ir svēta pārliecība, bet kā gan Linux hakeri ir radījuši tik daudz dokumentācijas? Acīmredzami Linux "egoliftu" brīvais tirgus strādā labāk, kā pamatīgi apmaksātie komerciālo produktu dokumentēšanas departamenti.

Gan fetchmail, gan Linux kodola projekti rāda, ka pareizi atalgojot daudzu hakeru ego, spēcīgs izstrādātājs/koordinators ar Internetu var iegūt labumu no daudzajiem līdzizstrādātājiem, nenogrimstot haotiskā jūklī. Tā Brūka likumam es pretstatu sekojošo:

19: Ja izstrādes koordinatoram ir vismaz tik labs saziņas līdzeklis kā Internets, un viņš zina kā vadīt bez piespiešanas, daudzas galvas noteikti ir labāk par vienu.

Domāju, ka atvērtā koda programmatūras nākotne arvien vairāk piederēs cilvēkiem, kas zina, kā spēlēt Linusa spēli. Cilvēkiem — kas pametīs katedrāli un metīsies tirgū. Tas nenozīmē, ka individuālām spējām vairs nebūs nozīmes. Drīzāk es domāju, ka atvērtā koda jaunākie sasniegumi programmatūrā piederēs cilvēkiem, kas sāk no individuālās vīzijas un krāšņuma, un kas attīsta to  tālāk ar efektīvu interešu kopienu palīdzību.

Iespējams, tā nav tikai atvērtā koda programmatūras nākotne. Neviens slēgtā koda izstrādātājs nevar pievērst tik daudz cilvēku vienas problēmas izpētei, cik to var atļauties Linux kopiena. Un tikai retais var atļauties nolīgt vairāk kā 200 cilvēku, kas ir atbalstījuši fetchmail (1999-600, 2000-800)!

Iespējams, galu galā atvērtā koda kultūra triumfēs ne jau tāpēc, ka sadarbība ir morāli pareiza vai "slēpšana" ir morāli nepareiza (varbūt jūs tam ticat, lai gan ne es, ne Linuss — neticam), bet vienkārši tāpēc, ka slēgtā koda pasaule nevar uzvarēt evolucionāro bruņoto sacensību ar atvērtā koda kopienām, kas problēmām var iztērēt daudz vairāk zinātāju laika.

Prev
Katedrāle un tirgus: Nepieciešamie tirgus izstrādes priekšnosacījumi
Next
Katedrāle un tirgus: Par pārvaldību un Mažino līniju

Created by Valdis Vītoliņš on 2008-11-21 10:05
Last modified by Valdis Vītoliņš on 2021-04-13 14:28
 
Xwiki Powered
Creative Commons Attribution 3.0 Unported License