Chaos pod kontrolą

W książce Harnessing Complexity: Organizational Implications of Scientific Frontier (The Free Press, 1999) Robert Axelrod i Michael D. Cohen wprowadzają pojęcie złożonego systemu adaptacyjnego (complex adaptive system). To taki system, w którym pojedyncze działanie - np. uruchomienie strony internetowej - może prowadzić do nieprzewidzianych, a nawet nieprzewidywalnych konsekwencji.

W książce Harnessing Complexity: Organizational Implications of Scientific Frontier (The Free Press, 1999) Robert Axelrod i Michael D. Cohen wprowadzają pojęcie złożonego systemu adaptacyjnego (complex adaptive system). To taki system, w którym pojedyncze działanie - np. uruchomienie strony internetowej - może prowadzić do nieprzewidzianych, a nawet nieprzewidywalnych konsekwencji.

Zapożyczając pojęcia z zakresu nauki i badań biologicznych, wyróżniają trzy czynniki, które kształtują środowiska o wyso- kim stopniu złożoności: zmienność, interaktywność i selektywność. Wykorzystując wypracowane narzędzia teoretyczne, Axelrod i Cohen rozpatrują jako złożony system adaptacyjny rozwój Linuxa, w szczególności koncentrując się na jego zmienności.

Jedną z najważniejszych (jeśli nie najważniejszą) cech Linuxa jest powszechna dostępność jego kodu źródłowego. Sprawia to, że każdy programista znający się na rzeczy i mający odpowied- nią motywację może modyfikować kod tego oprogramowania, przyczyniając się do powstania jego nowej wersji. Można było wobec tego oczekiwać, że bardzo szybko powstanie wiele niekompatybilnych wersji systemu, jednak różnorodność ta została wykorzystana do osiągnięcia pozytywnego efektu.

Wprowadzanie zmian do systemu zwykle spowodowane jest istnieniem usterek lub braków w istniejącej wersji systemu. Użytkownik systemu, chcąc go zmodyfikować, może wysłać prośbę o pomoc do środowiska użytkowników Linuxa poprzez tematyczne strony internetowe czy grupy dyskusyjne. Zainteresowani użytkownicy składają propozycje. Następnie małe fragmenty kodu źródłowego są dołączane do standardowej wersji, w wyniku czego powstaje nowa wersja. Później następuje okres testów i dyskusji, po czym kluczowi programiści zaangażowani w rozwój Linuxa dołączają nowy kod do wersji standardowej. Wystarczająco duża liczba ochotników testujących nową wersję systemu sprawia, że większość istotnych problemów zostaje zdefiniowana, a zdecydowana większość błędów - wyeliminowana. Ważnym elementem, który sprawia, że mimo powstawania wielu wersji Linuxa, wciąż istnieje wersja standardowa, jest istnienie wąskiej grupy z Linusem Torvaldsem na czele zatwierdzającej zmiany. Jednak to właśnie różnorodność jest motorem napędzającym stałą poprawę jakości w projektach typu open source.

Co najmniej trzy z czterech podstawowych czynników sprzyjających badaniom występują w przypadku Linuxa. Po pierwsze, problem jest "wiekowy" lub szeroko rozpowszechniony. Autorzy argumentują, że w porównaniu z oprogramowaniem innego typu systemy operacyjne mają długą historię. Narodziny Unixa, którego Linux jest bezpłatną wersją, datują się na koniec lat 60. Po drugie, specyfika problemu zapewnia szybkie otrzymywanie pewnych informacji zwrotnych. Również ten warunek spełnia Linux. Po trzecie, badanie pro-blemu nie niesie ryzyka katastrofy. Według Axelroda i Cohena modularna budowa Linuxa i optymalizowanie pod względem prędkości jedynie jądra systemu sprawiają, że ryzyko to jest znacznie mniejsze niż w przypadku innych systemów operacyjnych.

Jedynie czwarty czynnik nie da- je się zaobserwować w przypadku Linuxa. Rozwój działalności badawczej jest również warunkowany przez świadomość zagrażającej katastrofy, której zapobiec może pogłębianie wiedzy na dany temat. Czynnik ten można przypisać jednak tylko niektórym użytkownikom systemu spod znaku pingwina. Część programistów zaangażowanych w rozwój Linuxa jest motywowana strachem przed powolnym "wymieraniem" rodziny systemów unixowych i rosnącą hegemonią Microsoftu. Gdyby do tego faktycznie doszło, ich wiedza na temat środowisk unixowych nabrałaby charakteru wyłącznie historycznego.