<<<OBSAH  >>>ENCSEN/CSZVONPřeklady

10. Společenský kontext otevřeného software

Je velkou pravdou, že nejlepší programy začínají tak, že autor sám potřebujete vyřešit své každodenní problémy, a šíří se proto, že se ukáže, že takový problém trápí mnoho ostatních uživatelů. To nás vede zpět k pravidlu 1, které je přeformulováno do možná užitečnější podoby:
18. Pokud chcete pracovat na zajímavém problému, začněte tím, že naleznete problém, který zajímá vás osobně.
Tak začal i Carl Harris s popclientem a já s fetchmailem. To se ale ví už dávno. To zajímavé, co nám Linux a fetchmail přinesl, je další krok. Vývoj programů ve velké skupině vývojářů a uživatelů.
V knize The Mythical Man-Month, Fred Brooks tvrdí, že programátorův čas není nastavitelný. Pokud přidáte programátory do projektu, který se opožďuje, opozdí se ještě více. Dokazuje, že složitost a problémy s komunikací se zvyšují se čtvercem počtu programátorů, zatímco množství práce stoupá pouze lineárně. Toto tvrzení se později stalo Brookovým zákonem, který je často považován za předmět víry. Kdyby ale tento zákon platil beze zbytku, Linux by nemohl existovat.
Klasická kniha Geralda Weinberga : "`The Psychology Of Computer Programming'', obsahuje něco, co můžeme při zpětném pohledu považovat za nesmírně důležitou opravu Brookova tvrzení. V jeho diskuzi "nesobeckého programování" Weinberg tvrdí, že ve skupinách, ve kterých si vývojáři nechrání svůj kód a vybízejí ostatní, aby jim pomohli vyhledávat chyby a navrhovat vylepšení, projekty probíhají mnohem rychleji než jinde.
Weinbergova terminologie možná zabránila tomu, aby jeho analýza získala takové přijetí, jaké si zasluhovala, člověk se musí usmát při myšlence, že Internetovští hackeři jsou "nesobečtí". Nicméně, myslím, že jeho argumenty nebyly nikdy tak aktuální jako dnes.
Historie Unixu nás měla připravit na to, co se nyní učíme z Linuxu (a co jsem v menším měřítku ověřil experimentálně tak, že jsem úmyslně kopíroval Linusovy metody). Tedy to, že zatímco kódování zůstává víceméně samotářskou aktivitou, opravdu velké myšlenky se uskutečňují tehdy, pokud je využita pozornost a mozky celé společnosti. Vývojář, který využívá pouze vlastní mozek v uzavřeném projektu musí zaostat za vývojářem, který dokáže iniciovat otevřený evoluční projekt, ve kterém se odhalování chyb a vylepšení věnují stovky lidí.
Tradičnímu Unixovému světu bylo zabráněno v dotažení tohoto přístupu několika faktory. Jedním z nich byla právní omezení, různé licence, obchodní tajemství a zájmy. Další překážkou (při zpětném pohledu) bylo to, že Internet ještě nebyl na dostatečné úrovni.
Před levným Internetem existovala prostorově omezená společenství, jejichž kultura podporovala Weinbergovo "nesobecké programování", ve kterých mohl programátor snadno přilákat mnoho diváků a spolupracovníků. Bellovy laboratoře, MIT AI laboratoře, UC Berkeley se staly legendárními domovy vynálezů a jsou stále velmi plodné.
Linux byl prvým projektem, který vědomě a úspěšně využil celý svět jako svoji studnici talentů. Nemyslím si, že je náhodné, že Linux vznikal v době zrodu WWW a že Linux opustil svá batolecí léta se začátkem nástupu Internetu do běžného povědomí(1993-1994). Linus byl první, který se naučil hrát podle nových pravidel, které nastolil všudypřítomný Internet.
Zatimco levný Internet byl nutnou podmínkou pro to, aby se Linuxový model uplatnil, myslím, že to nebyla podmínka dostačující. Dalším nesmírně důležitým faktorem byl vývoj stylu vedení a vytvoření zvyků, které umožnily vývojářům získat další spolupracovníky a využít všechny možnosti tohoto media.
Ale jaký je styl vedení a jaké jsou tyto zvyky? Tyto zvyklosti nemohou být založeny na síle, a i pokud by byly, tak by vedení z pozice síly nemohlo přinést výsledky, které vidíme. Weinberg cituje z autobiografie "Memoáry revoluce", kterou v 19. století napsal ruský anarchista Petr Alexejevič Kropotkin.
"Jelikož jsem se narodil v rodině, která vlastnila nevolníky, započal jsem svůj aktivní život, jako všichni mladí muži v mém věku, s pevnou vírou v nutnost povelů, příkazů, trestů atd. Brzy jsem ale musel řídit důležité záležitosti a jednat se [svobodnými] muži, a zde měla každá chyba závažné následky. Začal jsem oceňovat rozdíl mezi činností na základě příkazů a disciplíny a činností na základě společného porozumění. To prvé obdivuhodně funguje při vojenské přehlídce, ale nemá žádnou cenu ve skutečném životě, kde cíle může být dosaženo pouze úsilím mnoha spolupracujících myslí.
"Velké úsilí mnoha spolupracujících mozků, to je přesně to, co projekt jako Linux vyžaduje, a model řízení založený na povelech je zcela nemožný v prostředí dobrovolníků v anarchistickém ráji, který nazýváme Internet. Aby mohli pracovat a soutěžit efektivně, programátoři, kteří chtějí vést projekty založené na spolupráci, se musí naučit, jak získat a povzbuzovat skupiny lidí se společným zájmem, jak neurčitě naznačuje Kropotkin svým "principem porozumění". Musí se naučit využívat Linusův zákon.
Dříve jsem se zmínil o "Delphi efektu" jako o možném vysvětlení Linusova zákona. Ještě silnější analogie s přizpůsobivými systémy ale nabízí biologie a ekonomie. Linusův svět se v mnoha ohledech chová jako volný trh nebo ekologie, společnost sobeckých individuí, která se snaží maximalizovat užitek a při tomto ději vzniká sebeopravující se spontánní řád více propracovaný a účinnější, než může dosáhnout jakékoliv centrální plánování. Zde bychom měli hledat "princip porozumění".
"Užitková funkce, kterou linuxový programátoři maximalizují není klasicky ekonomická, ale lze ji spojit s uspokojením vlastního já a získáním dobré reputace mezi ostatními programátory. (Někdo by mohl nazvat toto chování altruistické, ale tento pohled ignoruje fakt, že altruismus je sám o sobě formou uspokojení vlastního já pro altruistu). Dobrovolná společenství, která pracují podobným způsobem nejsou ve skutečnosti vzácná, podobným, ve kterém jsem zapojen již velmi dlouho je okruh přátel science fiction, ve kterém je výslovně uznáváno, že hlavním motivem pro spolupráci je zvýšení vlastní reputace mezi ostatními.
Linus tím, že se úspěšně postavil do role ochránce projektu, který je z velké části rozvíjen někým jiným a tím, že získával podporu pro projekt dokud se projekt nestal sebeudržujícím, ukázal, že plně pochopil Kropotkinovo pravidlo sdíleného porozumění. Kvasi-ekonomický pohled na Linuxův svět nám umožňuje pochopit, jak se tento princip uplatňuje.
Můžeme nahlížet na Linusovy metody jako na způsob, jak vytvořit účinný trh v uspokojování vlastního já, tím, že připoutá sobectví individuelních programátorů co nejpevněji k obtížným cílům, které mohou být dosaženy pouze vytrvalou spoluprací. V projektu fetchmailu jsem ukázal (ačkoli v menším měřítku), že tato metoda může být napodobena s dobrými výsledky. Možná, že jsem vše dělal s plnějším vědomím a systematičtěji než Linus sám.
Mnoho lidí, zejména těch, kteří politicky nedůvěřují volnému trhu, očekávají, že společnost sebeřídících egoistů bude fragmentována, bude ochraňovat svá území, bude plýtvat zdroji, vše tajit a bude k sobě nepřátelská.Ale toto očekávání je jasně vyvráceno například překvapující různorodostí, kvalitou a hloubkou dokumentace Linuxu. Je to zázrak, když si uvědomíme, jak programátoři nenávidí psaní dokumentace. Jak je tedy možné, že programátoři Linuxu ji produkují tolik? Je zřejmé, že Linuxův volný trh v sebeuspokojování funguje lépe při nastolení ctnostného chování než masivně financované dokumentační útvary poskytovatelů komerčního software.
Fetchmail i Linux ukázaly, že pokud dostatečně odměním ego mnoha jiných programátorů, silný vývojář-koordinátor může využít Internet, aby získal mnoho spolupracovníků, aniž se projekt zhroutí v chaotický zmatek. Takže já navrhuji následující protiargument k Brookově zákonu.
19. Pokud má koordinátor projektu k dispozici medium alespoň tak dobré jako Internet a dokáže vést bez příkazů, mnoho hlav je nevyhnutelně lepší než jedna.
Myslím si, že budoucnost otevřeného software bude stále více patřit lidem, kteří vědí, jak se chovat v Linusově hře, lidem, kteří opustí katedrálu a vezmou si tržiště za své. Tím nechci říci, že už nezáleží na individuálních vizích a velkých schopnostech. Spíše si myslím, že budoucnost patří lidem, kteří začnou s individuální vizí a velkými schopnostmi a ty potom zmnohonásobí ve vytvořených skupinách se společným zájmem.
A možná nejen budoucnost otevřeného software. Žádný vývojář v uzavřeném projektu nemůže mít takovou nabídku talentů pro vyřešení problému, jako se nachází ve společenství Linuxu. Jen málokdo si může dovolit najmout více než 200 lidí, kteří přispívali do fetchmailu.
Možná že nakonec kultura otevřeného software zvítězí ne proto, že je morálně správná, nebo že hamounění software je morálně špatné (za předpokladu, že tomu druhému věříte, já ani Linus ne), ale jednoduše proto, že uzavřené projekty nemohou vyhrát v evolučním zápase s otevřeným systémem, který může vynaložit o několik řádů více kvalifikovaného času na řešení problémů.

<<<OBSAH  >>>ENCSEN/CSZVONPřeklady