AgileProgramowaniePolecane tematy

Ekonomiczna perspektywa powstania koncepcji open source

Chociaż, badacze różnią się w ocenie wpływu dostępu do informacji na całościowe postrzeganie kosztów transakcyjnych to technologia, dzięki której świat, w którym ponad 3 mld ludzi są – dzięki sieci – na „wyciągnięcie ręki”, rozpoczęła serie zmian w sferze ekonomicznej, socjalnej i kulturowej.

Ekonomiczna perspektywa powstania koncepcji open source

Jedna z podstawowych teorii ekonomicznych – teoria kosztów transakcyjnych opracowana przez Ronalda Coase i rozwinięta przez Olivera Williamsona tłumaczy, dlaczego istnieją firmy. Wskazuje ona, że właściwie zorganizowana działalność gospodarcza jest w stanie lepiej optymalizować koszty związane z transakcjami rynkowymi niż pojedyncze osoby. W ostatnich latach teoria kosztów transakcyjnych wydaje się być mniej adekwatna do opisywania otaczającej nas rzeczywistości ekonomicznej. Dzieje się tak za sprawą postępu technologicznego i zmieniającego się dostępu do środków produkcji i informacji.

Rozwiązania tworzone przez społeczności entuzjastów

Jednym z niespodziewanych efektów tych zmian jest tworzenie się luźno związanych grup (społeczności) tworzących wspólnie dobra niemieszczące się w tradycyjnej podażowo-popytowej grze rynkowej. W przypadku rynku oprogramowania wytwory społeczności – tworzone przez grupy entuzjastów i specjalistów – okazały się nie tylko hobbystycznymi eksperymentami, ale zaczęły zastępować produkty tworzone w oparciu o prace najemną specjalistów w największych światowych korporacjach. Budowana od lat 70 XX wieku niejednorodna, rozproszona geograficznie społeczność budująca Wolne i Otwarte Oprogramowania (open source) stała się jednym z najważniejszych elementów rynku IT.

Artykuł pochodzi z numeru ITwiz 4/2014.

Produkty społeczności OSS służą nie tylko specjalistom IT – każdy z nas spotyka się z nimi niemal codziennie. Robimy to korzystając z telefonu, gdzie najpopularniejszym systemem operacyjny dla smartfonów jest Android, oparty na otwartym systemie operacyjnym Linux, przeglądając Internet, gdzie większość informacji udostępnianych, jako strony WWW obsługiwane jest za pomocą otwartego projektu Apache HTTP Server, wyszukując informacji w Wikipedii, czy używając przeglądarki internetowej Mozzila FireFox.

Model wytwórczy zmieniający rynek IT

Wolne i Otwarte Oprogramowanie jest fenomenem zarówno, jeśli chodzi o sposób wytwarzania, jak i proces dystrybucji. W przeciwieństwie do oprogramowania wytwarzanego klasycznie – w oparciu o płatną prace specjalistów zatrudnionych przez przedsiębiorstwa – OSS budowane jest przez społeczności osób zrzeszonych w celu realizacji projektu, który udostępniany jest na zasadach licencyjnych umożliwiających jego bezpłatne wykorzystywanie, zmianę i redystrybucję. Wyjątkowość tego zjawiska będzie bardziej wymowna, jeżeli przez moment spróbujemy wyobrazić sobie, że podobna sytuacja dzieje się na rynku muzycznym, a nie – jak w przypadku OSS – na rynku oprogramowania. Wyobraźmy sobie świat, w którym najlepsi muzycy tworzą i oddają swoją muzykę za darmo, co więcej pozwalają zmieniać swoje utwory, a następnie sprzedawać tak zmienione utwory bez żadnych ograniczeń. Nie obrażają się za przeróbki ich dzieł, co więcej starają się zebrać jak największą grupę innych muzyków, którzy pracują nad następną, ulepszoną wersją tego samego utworu. Chociaż ta paralela może być nie do końca odpowiednia, to właśnie taka sytuacja od ponad 30 lat ma miejsce na rynku oprogramowania.

Wyobraźmy sobie świat, w którym najlepsi muzycy tworzą i oddają swoją muzykę za darmo, co więcej pozwalają zmieniać swoje utwory, a następnie sprzedawać tak zmienione utwory bez żadnych ograniczeń. Nie obrażają się za przeróbki ich dzieł, co więcej starają się zebrać jak największą grupę innych muzyków, którzy pracują nad następną, ulepszoną wersją tego samego utworu. Chociaż ta paralela może być nie do końca odpowiednia, to właśnie taka sytuacja od ponad 30 lat ma miejsce na rynku oprogramowania.

Wśród firm tworzących oprogramowanie z sukcesem działa społeczność, która tworzy produkty, a następnie rozdaje je bezpłatnie wraz z dostępem do kodu źródłowego. Wytwory tej społeczności nie tylko skutecznie konkurują z największymi producentami oprogramowania, ale w niektórych obszarach rynku mają pozycję dominującą. Fakt istnienia tego fenomenu jest nadal obszarem żarliwej dyskusji wśród ekonomistów i socjologów. Otwarte i wolnego oprogramowanie, skłania do refleksji nad pojęciem własności i nad wartością owej pozarynkowej produkcji społecznej. Po 30 latach okazuje się, że oprogramowanie tworzone przez społeczności nie tylko nie zagroziło twórcom oprogramowania komercyjnego, ale transformowało cały rynek tworząc m.in. całą rzeszę firm opierających strategie na sprzedaży rozwiązań opartych o otwarte oprogramowanie, stanowiąc źródło innowacji, wsparcia dla użytkowników.

Rewolucja technologiczna i „otwarty” model innowacji

Postęp technologiczny wg. klasycznej teorii Josepha Schumpetera to skutek przełomu naukowego oraz jego komercjalizacji, czyli procesu innowacji. Według tej teorii procesy związane z wynalazczością realizowane są przede wszystkim w ośrodkach akademickich lub przez samodzielnych wynalazców. Natomiast innowacyjność to domena ośrodków badań i rozwoju firm komercyjnych. Chociaż definicja Schumpetera, jest przedmiotem dyskusji to dobrze opisuje postęp technologiczny epoki rewolucji przemysłowej. Kapitał niezbędny do komercjalizacji przełomów naukowych był w posiadaniu dużych firm, które organizowały ośrodki badań i rozwoju, gdzie – w procesie innowacji – wynalazki zamieniane były na produkty. Firmy zapewniały sobie przewagę konkurencyjną kontrolując środki produkcji i wymianę informacji.

Taki „zamknięty” model innowacji mógł działać, ponieważ dostęp do narzędzi i maszyn, był jeszcze niedawno zarezerwowany dla firm dysponujących znacznym kapitałem i zespołem doświadczonych pracowników. Dziś indywidualny posiadacz komputera może realizować potencjał innowacyjny w dużo większym stopniu niż kiedykolwiek, dzięki m.in. zasobom Internetu i ogólnodostępnym technikom komunikowania się na odległość. Efektem tej zmiany jest to, że po raz pierwszy w historii umysł ludzki stał się bezpośrednią siłą wytwórczą, a nie jedynie elementem systemu produkcji. Jak opisuje Manuell Castells w „Społeczeństwie Sieci”, otacza nas nowa forma przestrzeni, nazwana przestrzenią przepływów symetryzująca dostęp do informacji. To właśnie rewolucja informacyjna i wynikający z niej rosnący potencjał innowacyjny użytkowników jest szerszym kontekstem pojawienia się zjawiska, którym jest społeczna produkcja oprogramowania.

Pierwsze przypadki dzielenia się kodem

Oprogramowanie, jako produkt niezależny od komputera, pojawiło się stosunkowo późno, bo dopiero w latach 70-80 XX wieku. Do tego czasu programy, aplikacje były zwyczajowo dodatkiem do sprzedawanych maszyn. Wynikało to przede wszystkim z olbrzymich kosztów np. maszyna IBM 705 kosztowała w 1956 roku ok. 1,6 mln USD. Licencjonowanie i odsprzedaż oprogramowania w sytuacji, kiedy komputer był niezwykłą rzadkością, zasadniczo ograniczało się do wąskiej grupy twórców sprzętu. Drugim problemem ograniczającym niezależną dystrybucje oprogramowania, który pojawił się wraz ze wzrostem ilości komputerów był brak standaryzacji, co przekładało się na to, że programy mogły być uruchomione tylko na jednej konkretnej wersji sprzętu.

Takie warunki sprawiały, że jednymi osobami, z jakimi można było podzielić się oprogramowaniem były osoby korzystające z tego samego współdzielonego komputera – zazwyczaj osoby z tej samej firmy. Na warunki techniczne nałożyła bliska współpraca amerykańskich laboratoriów technologicznych i ośrodków akademickich, która wytworzyła specyficzna atmosferę współpracy. Inżynierowie i naukowcy zatrudnieni na uniwersytetach i w laboratoriach dzielili się kodem źródłowym stworzonego oprogramowania, przyjmując, że kod ten może zostać zmieniony, a część ich pracy będzie wbudowana w program kogoś zupełnie innego, bez żadnych warunków licencyjnych. Uczestniczący w tej wymianie twórcy – zazwyczaj pasjonaci – wspominali, że dzielenie się oprogramowaniem było „tak naturalne, jak dzielenie się przepisami kulinarnym”.

Otwarte i wolnego oprogramowanie, skłania do refleksji nad pojęciem własności i nad wartością owej pozarynkowej produkcji społecznej. Po 30 latach okazuje się, że oprogramowanie tworzone przez społeczności nie tylko nie zagroziło twórcom oprogramowania komercyjnego, ale transformowało cały rynek tworząc m.in. całą rzeszę firm opierających strategie na sprzedaży rozwiązań opartych o otwarte oprogramowanie, stanowiąc źródło innowacji, wsparcia dla użytkowników.

Z biegiem lat i wraz z procesem ujednolicania się platform sprzętowych, oprogramowanie podlegało coraz większej komercjalizacji i standaryzacji, to zaś – wraz z popularyzacją technologii informacyjnych – sprawiło, że oprogramowanie stawało się niezależnie sprzedawanym produktem. Wraz z rosnącym potencjałem sprzedażowym oprogramowania, pojawiły się dwa przeciwne podejścia do sposobu pojmowania własności związanej z oprogramowaniem. W podejściu klasycznym własność to prawo pozwalające właścicielowi na ograniczenie dostępu do posiadanych dóbr. Społeczność wolnego oprogramowania odwraca te prawa, stawiając brak ograniczeń oraz prawo redystrybucji i modyfikacji, jako wartości nadrzędne. Te dwa podejścia symbolicznie reprezentują z jednej strony Richard Stallman, który założył Fundację Wolnego i Otwartego Oprogramowania w proteście wobec jego postępującej komercjalizacji, z drugiej strony Bill Gates, założyciel Microsoftu, piszący w 1976 oku otwarty list, w którym piętnuje kopiowanie i bezpłatne dzielenie się oprogramowaniem, wskazując, że nieograniczone wymienianie się kodem źródłowym prowadzi do degradacji rynku.

Twórcy Wolnego i Otwartego Oprogramowania

O ile Billa Gatesa nie trzeba przedstawiać, to warto poświęcić akapit historii Richarda Stallmana. W latach 70-tych XX wieku był on programistą w laboratorium sztucznej inteligencji działającej przy Massachusetts Institute of Technology (MIT). Wraz z kolegami tworzyli oni tam społeczność dzielącą się tworzonym kodem na zasadach dobrowolności. Społeczność ta rozpadła się pod wpływem wprowadzenia zakazu dzielenia się oprogramowaniem, wynikającego ze zmiany głównego systemu operacyjnego. System operacyjny, na którym działało budowane i współdzielone ówcześnie oprogramowanie, wymieniono na komercyjną wersję systemu operacyjnego Digital Equipment, a wraz z przyjęciem nowego systemu, przyjęto warunki licencyjne zakazujące modyfikacji i redystrybucji programów pomiędzy pracownikami. To nałożyło się na przejęcie przez firmę Symbolics dużej cześć programistów laboratorium MIT.

Jak wspomina Richard Stallman, ograniczenia praw do modyfikacji oprogramowania i niemożność dzielenia się kodem źródłowym złamało kulturę wolnej wymiany kodu i było dla niego bezpośrednim powodem porzucenia pracy w laboratorium MIT. Po rezygnacji z pracy w MIT, Richard Stallman rozpoczął pracę nad projektem pierwszego wolnego systemu operacyjnego GNU (jest to rekursywny akronim pochodzący od słów GNU is Not Unix) tworzonego na wzór przełomowego – z punktu widzenia architektury – rozwoju oprogramowania systemu operacyjnego Unix. Wkrótce potem Richard Stallman tworzy Fundację Wolnego i Otwartego Oprogramowania, gdzie skodyfikowano definicje wolnego oprogramowania jako kombinacje: Wolność do uruchamiania programu, w dowolnym celu (wolność 0). Wolność do analizowania, jak działa program, i zmieniania go, aby robił, co i jak potrzebujecie (wolność 1). Warunkiem koniecznym jest dostęp do kodu źródłowego. Wolność do rozpowszechniania kopii, byście mogli pomóc innym ludziom (wolność 2). Wolność do udoskonalania programu i publicznego rozpowszechniania własnych ulepszeń, dzięki czemu może z nich skorzystać cała społeczność (wolność 3). Warunkiem koniecznym jest tu dostęp do kodu źródłowego.

Na bazie tych deklaracji w 1989 roku powstaje licencja GNU (GPL). Licencja ta dodatkowo wymusza na użytkownikach modyfikujących oprogramowanie na licencji GPL przenoszenie na kolejnych użytkowników prawa, do dalszej bezpłatnej modyfikacji i redystrybucji. Przenoszenie prawa do modyfikacji kodu znane jest także, jako „copyleft”, nawiązujące i odwracające znaczenie terminu „copyright”. Chociaż mechanizm „copyleft” miał istotny wpływ na kształtowanie powstającej społeczności Otwartego i Wolnego Oprogramowani, dając hobbystom tworzącym oprogramowanie pewność, że ich praca nie zostanie użyta w zamkniętych projektach, to w pewnym stopniu ograniczał możliwość budowania strategii biznesowych w oparciu o otwarte oprogramowanie.

Jednym z niespodziewanych efektów tych zmian jest tworzenie się luźno związanych grup (społeczności) tworzących wspólnie dobra niemieszczące się w tradycyjnej podażowo-popytowej grze rynkowej. W przypadku rynku oprogramowania wytwory społeczności – tworzone przez grupy entuzjastów i specjalistów – okazały się nie tylko hobbystycznymi eksperymentami, ale zaczęły zastępować produkty tworzone w oparciu o prace najemną specjalistów w największych światowych korporacjach.

Richard Stallman nie był jedyną osobą pracującą nad formalnym uregulowaniem dystrybucji wolnego oprogramowania, z pośród wielu należy wymienić przede wszystkim osoby pracujące na Uniwersytecie Berkeley. Pracownicy uniwersytetu pracując nad pochodną systemu UNIX pod nazwą Berkley System Distribution (BSD), stworzyli licencję BSD, która jest zgodna z zasadami wolnego oprogramowania, jednak nie zawiera w sobie mechanizmu „copyleft”. Dzięki temu osoby modyfikujące oprogramowanie udostępniane na licencji BSD i pochodnych (licencja MIT, licencja X11) maja prawo do sprzedaży i rozpowszechniania swoich projektów w dowolnej formie, także w postaci wyłącznie binarnej. Licencja wymaga jednak zachowanie informacji o autorze i samej licencji. Wraz z rosnąca popularnością open source dość szybko pojawił się problem uregulowania sytuacji, w których oprogramowanie komercyjne łączone jest z oprogramowaniem typu Open Source. Jedną z pierwszych grup, która opracowała wytyczne dotyczące otwartości oprogramowania była grupa tworząca dystrybucję systemu Linux Debian. Pozwalają one na większą elastyczność w łączeniu otwartego oprogramowania z oprogramowaniem komercyjnym.

Mówiąc o licencjach otwartych trudno byłoby nie wspomnieć o licencji wypracowanej przez fundacje Apache. Ta niezwykle popularna licencja nie posiadająca klauzuli „copyleft” dziedziczy logikę z prostej licencji BSD, umożliwiając włączenie kodu na tej licencji do zamkniętego oprogramowania.

Zmiana w sposobie tworzenia open source 

Pierwsze projekty open source to historycznie praca pojedynczych programistów którzy budowali je, aby rozwiązać swoje indywidualne problemy. Stąd też pierwszymi twórcami projektów Open Source są tradycyjnie ich użytkownicy. Dziś coraz więcej „wkładu początkowego” wnoszą korporacje, które przekazują środki pieniężne, czas swoich pracowników lub całe komercyjne projekty do środowisk open source. W przeciwieństwie do projektów klasycznych – skupionych na procedurze testów przedwdrożeniowych – rozwój i jakość projektów zapewniana jest przede wszystkim poprzez bezpośredni udział użytkowników.

Linux do dziś rozwijany jest w ramach zasady określonej przez Erica Raymonda jako „bazarowa”, którą najlepiej opisuje zdanie „Udostępniaj często, udostępniaj wcześnie i słuchaj swoich klientów.” (ang. „Release often, release early. And listen to your customers”). To podejście jest odwróceniem istniejącego i stosowanego także w środowisku open source paradygmatu „katedralnego” czyli takiego, w który wymaga przeprowadzenia przez udostępnieniem gotowego produktu dużej ilości testów, dzięki którym minimalizuje się ilość ewentualnych błędów. Linus Torvalds, który na masową skale wprowadził „bazarowe” podejście do tworzenia i udostępniania swojego systemu operacyjnego angażując użytkowników jako projektantów, testerów i programistów. Chociaż „bazarowe” tworzenie oprogramowania jest w dużym stopniu zdecentralizowane i chaotyczne to badania dotyczące porównania, jakości projektów IT wskazują, że tak prowadzone projekty charakteryzują się lepszą jakością, niż ich tradycyjne odpowiedniki. Jednocześnie badacze odkryli, że etapy znane z klasycznego tworzenia oprogramowania takie, jak analiza, zbieranie wymagań, projektowanie, chociaż niejawnie to jednak występują także w przypadku społecznej produkcji oprogramowania.

Definicje wolnego oprogramowania:
  • Wolność 0 – Wolność do uruchamiania programu, w dowolnym celu.
  • Wolność 1 – Wolność do analizowania, jak działa program, i zmieniania go, aby robił, co i jak potrzebujecie. Warunkiem koniecznym jest dostęp do kodu źródłowego.
  • Wolność 2 – Wolność do rozpowszechniania kopii, byście mogli pomóc innym ludziom.
  • Wolność 3 – Wolność do udoskonalania programu i publicznego rozpowszechniania własnych ulepszeń, dzięki czemu może z nich skorzystać cała społeczność. Warunkiem koniecznym jest tu dostęp do kodu źródłowego.

Tadeusz Chełkowski jest dyrektorem Center of Excellence w Adobe.

Źródła: J. Schumpeter, “The theory of economic development: An inquiry into profits, capital, credit, interest, and S. Breschi, F. Malerba, and L. Orsenigo, “Technological regimes and Schumpeterian patterns of innovation,” Econ. J., 2000; M. Castells, The rise of the network society: The information age: Economy, society, and culture; E. Von Hippel, “Horizontal innovation networks—by and for users,” Ind. Corp. Chang., 2007; S. Weber, The Success of Open Source. Harvard University Press, 2005, p. 320; S. Weber, “The success of open source,” 2004; H. Chesbrough, “Open innovation: The new imperative for creating and profiting from technology,” 2003; J. Henkel, “Selective revealing in open innovation processes: The case of embedded Linux,” Res. Policy, 2006; A. Fosfuri, M. S. Giarratana, and A. Luzzi, “The penguin has entered the building: The commercialization of open source software products,” Organ. Sci., 2008.

Tagi

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *