Krzysztof Siewicz - Zarys systemu normatywnego społeczności wolnego oprogramowania
Wolne oprogramowanie:
Wolne oprogramowanie to programy, które są publicznie dostępne w formie zrozumiałych dla człowieka kodów źródłowych, na licencji zezwalającej na kopiowanie, modyfikacje oraz rozpowszechnianie zarówno oryginału, jak i modyfikacji.
Społeczność wolnego oprogramowania:
„Społeczność" oznacza tu grupę podmiotów korzystających lub rozwijających projekt wolnego oprogramowania.
Uwarunkowania techniczne:
Wszelkie modyfikacje programu wymagają dostępu do zrozumiałych dla człowieka kodów źródłowych, podczas gdy czytelne dla maszyn kody wynikowe wystarczają, aby z oprogramowania korzystać.
Każde oprogramowanie zawiera błędy (bugs) i jednocześnie nie dysponuje wszystkimi oczekiwanymi funkcjami.
Oprogramowanie musi zwykle współpracować z innymi elementami w danym systemie informatycznym.
Każde oprogramowanie podlega ciągłym modyfikacjom w celu naprawiania błędów, wprowadzania nowych funkcji oraz zapewniania interoperacyjności.
Uwarunkowania ekonomiczne:
Uwarunkowania techniczne tworzą rynek usług usuwania błędów, wprowadzania nowych funkcji oraz zapewniania interoperacyjności oprogramowania.
Rynek ten jest areną zażartej walki konkurencyjnej, jest też podatny na zawłaszczenie (proprietary lock-in) i monopolizację.
Produkcja oprogramowania jest organizowana nie tylko z myślą o warunkach technicznych, lecz również o strategiach marketingowych podmiotów aktywnych na tym rynku.
System normatywny społeczności wolnego oprogramowania:
Na system normatywny społeczności wolnego oprogramowania składają się normy regulujące organizację produkcji wolnego oprogramowania oraz relacje między tymi normami.
Normy te mają trzy źródła:
normy prywatne;
normy społeczności
normy publiczne.
Normy prywatne to nakazy i zakazy powstałe na skutek korzystania przez jednostki ze swobody dysponowania własnymi prawami oraz swobody umów.
Normy społeczności to przede wszystkim normy pozaprawne, wywodzące się ze zwyczaju lub etyki, powstałe ewolucyjnie w trakcie współpracy nad rozwojem wolnego oprogramowania.
Normy publiczne są nakładane na jednostki i społeczności z zewnątrz, w szczególności przez prawo, lecz także przez inne środki regulacji.
Status prawny licencji i ich znaczenie społeczno-ekonomiczne:
Licencje wolnego oprogramowania są podstawą systemu normatywnego i same w sobie stanowią fenomen społeczny.
Są to „licencje modelowe", gdyż poszczególne projekty rzadko udostępniane są na licencji innej niż jedna z już istniejących i zaaprobowanych licencji wolnego oprogramowania.
Ponieważ GNU General Public License (GPL) lub inne popularne licencje obejmują dużą liczbę projektów, wszelkie spory w ramach jednego z nich mogą wpłynąć na prawa i obowiązki podmiotów zewnętrznych związanych taką samą licencją.
Każda licencja wolnego oprogramowania przyznaje użytkownikowi cztery wolności wskazane w FSD (Free Software Definition):
uruchamiania programu,
studiowania i przystosowywania go,
rozpowszechniania kopii,
ulepszania oraz publikowania ulepszeń.
Podejmowanie wszelkich działań objętych licencją bez zgody licencjodawcy jest wyraźnie zabronione przez prawo.
Zgoda ta jest udzielana właśnie w niepodlegającej negocjacji licencji, której zaakceptowanie jest w zasadzie nieuchronne, jak konieczność przestrzegania prawa powszechnego.
Prawa licencjobiorców zostają co do zasady zrównane z prawami deweloperów, co pozwala im aktywnie uczestniczyć w produkcji oprogramowania, a nie tylko pasywnie konsumować produkt końcowy.
Copyleft:
GPL i niektóre inne licencje zawierają mechanizm prawny chroniący przyznane prawa i zapobiegający następczej prywatyzacji oprogramowania pierwotnie udostępnionego jako wolne (copyleft).
Mechanizm ten wymaga od licencjobiorcy przestrzegania czterech wolności innych użytkowników i przyczynia się do rozpowszechniania ideologii wolnego oprogramowania.
Gwarancja copyleft dla wolności przyznanych licencją sprawia, że stają się prawami niezbywalnymi.
Kompatybilność licencji oraz podwójne licencjonowanie:
Licencje są kompatybilne, jeżeli zezwalają na łączenie objętego nimi oprogramowania.
Niekompatybilność licencji ogranicza liczbę elementów, z których można korzystać przy pisaniu oprogramowania, zatem niektórzy deweloperzy decydują się na podwójne licencjonowanie, czyli określenie kilku modelowych licencji, spośród których użytkownik może wybierać.
Niektóre formy podwójnego licencjonowania pozwalają na łatwiejsze łączenie z oprogramowaniem własnościowym.
Inne prywatne instytucje prawne:
Przedsiębiorcy wykorzystują takie instrumenty jak prawa autorskie, patenty, znaki towarowe lub swobodę umów w celu ograniczenia praw licencjobiorców.
Dodatkowe usługi związane z oprogramowaniem mogą być oferowane pod warunkiem korzystania z określonej wersji programu.
Istota norm prywatnych:
Do norm prywatnych autor zalicza udzielenie praw do kontroli oprogramowania użytkownikom w szerokim zakresie.
Tym prawom, określanym przez cztery wolności, odpowiadają obowiązki nieprzeszkadzania w ich wykonywaniu, które mogą być wzmocnione klauzulami copyleft.
Istnieją jednakże ograniczenia zakresu wolności, wynikające choćby z niekompatybilności licencji lub innych działań powodujących rozdysponowanie praw przez użytkowników.
Zgodnie z normami prywatnymi, każdy ma prawo do swobodnego dysponowania oprogramowaniem dopóty, dopóki nie wpływa to na wolność innych lub on sam nie zobowiąże się do powstrzymania od korzystania ze swych wolności.
Kultura hakerska:
Istnieje dość popularny, choć dyskusyjny pogląd, że hakerzy20 organizują swoje działania zgodnie z „kulturą prezentu" (gift culture), czyli gospodarki definiującej bogactwo jako ilość dóbr, które dana jednostka jest w stanie rozdać.
Według Erica S. Raymonda, status społeczny jednostek zależy od wartości wkładu wniesionego w rozwój wolnego oprogramowania.
Status społeczny w społecznościach wolnego oprogramowania zależy także od poziomu etycznego poszczególnych jednostek.
Własność projektu:
Wokół każdego niemal zaawansowanego projektu wolnego oprogramowania można zaobserwować strukturę „cebulową", z głównymi deweloperami otoczonymi liczniejszymi, lecz mniej uprzywilejowanymi uczestnikami.
Licencje dają równe prawa wszystkim, a ich literalne brzmienie sugeruje istnienie bardziej anarchistycznej struktury.
Własność projektu ma charakter powierniczy (fiducjarny) i jest wykonywana w imieniu wszystkich uczestników, a co za tym idzie - poddana publicznemu nadzorowi.
Merytokracja:
Jest to proces przyznawania władzy autorom najlepszego kodu.
W sytuacjach wyjątkowych niedoświadczeni uczestnicy mogą zostać technicznie odseparowani od projektu w celu utrzymania jakości kodu i umożliwienia zespołowi efektywnej pracy.
Zwykle jednakże merytokracja nie jest narzucana, lecz uzgadniana w sposób dorozumiany lub nawet wyraźnie zapisana w „konstytucji projektu".
W takich projektach społeczność wybiera swych reprezentantów (właścicieli modułów, kierowników projektu), którzy wchodzą w skład swego rodzaju zarządu.
Prawo do rozwidlenia:
Rozwidlenie (forking) to rozpoczęcie konkurencyjnego projektu we własnym zakresie, przez nowych głównych deweloperów i zazwyczaj w ramach nowej społeczności.
Zwykle inicjatorzy forkingu wyczerpująco tłumaczą swe postępowanie, dostarczając przede wszystkim argumentów technicznych.
Rozwidlenie jest środkiem obrony przed próbami zawłaszczenia projektu lub skierowania go na techniczne manowce. Jest ono jednak postrzegane jako środek ostateczny, gdy konflikty lub odmienne wizje techniczne wewnątrz społeczności są nie do pogodzenia.
W nieco słabszej formie, prawo do rozwidlania umożliwia każdemu poprawianie błędów lub przygotowanie wyspecjalizowanej wersji programu.
Istota norm społeczności:
Podstawową normą społeczności jest ta, nakazująca dzielenie się kodem i zakazująca zatajania informacji o autorstwie wkładów.
Własność projektu, merytokracja oraz nakaz podporządkowania się głównym deweloperom kontrastują z prawem do rozwidlania.
Przykłady istotnych norm publicznych:
Istotne dla systemu normy publiczne to normy odnoszące się do kontroli używania, modyfikacji i rozpowszechniania oprogramowania.
Takie normy zawiera prawo autorskie, które nadaje wyłączne uprawnienia do używania i rozwijania danego oprogramowania tylko niektórym jednostkom.
Inne normy należące do systemu wynikają z wolności słowa, stowarzyszania się, własności prywatnej, swobody gospodarczej oraz zasad odpowiedzialności.
Istotne jest, że w określonych sytuacjach normy te mogą mieć nierozłączne zakresy, lecz w każdym przypadku wpływają one na zakres dostępnej dla jednostek kontroli nad używaniem i rozwijaniem oprogramowania.
Zgodnie z przyjętym tu rozumieniem pojęcia „regulacji", do systemu normatywnego należy zaliczyć także normy regulujące używanie i rozwój wolnego oprogramowania, wynikające z działań w zakresie zamówień publicznych, podatków, pomocy publicznej, polityki konkurencji i innych.
Normy publiczne ustanawiają prawo do używania i rozwijania oprogramowania, które nie jest powszechne, lecz wyłączne.
Poszczególne normy publiczne i ich relacje wpływają na zakres ochrony przyznawanej takim jednostkom oraz swobodę korzystania z praw wyłącznych.
Wpływ norm publicznych na normy prywatne:
Licencjonowanie wolnego oprogramowania jest możliwe dzięki ochronie prawa autorskiego, choć niekiedy podnosi się, że taki sam efekt wywołałoby całkowite zniesienie ochrony prawnej.
Społeczeństwo może zatem wpływać na działania propagatorów wolnego oprogramowania, zmierzające zarówno do zrównania użytkowników z deweloperami, jak i do podporządkowania użytkowników jako konsumentów.
Można tego dokonać nie tylko przez prawo autorskie, ale także przez dostosowanie zasad odpowiedzialności lub swobody umów, na przykład przez prawo ochrony konkurencji i konsumentów.
Ponadto, społeczeństwo może chcieć wpływać na popularyzacj wolnego oprogramowania przez realizację spójnej polityki w zakresie zamówień publicznych, podatków i innych regulatorów rynku.
Wobec tego, w pewnym zakresie możliwe jest wykorzystanie norm prywatnych do dostosowania domyślnego reżimu praw wyłącznych ustanowionego normami publicznymi.
Wpływ norm publicznych na normy społeczności:
Stosując różne środki regulacji, można wspomagać uczestnictwo w społecznościach lub wpływać na ich struktury. Jest to możliwe bezpośrednio w przypadku projektów tworzonych na potrzeby administracji publicznej
Społeczeństwo może także wpływać na równowagę pomiędzy władzą głównych deweloperów, a wolnością jednostek, zwłaszcza w projektach nadzorowanych przez państwo.
Normy społeczności dostosowują domyślny reżim norm publicznych dla potrzeb merytokracji i „kultury prezentu".
WNIOSKI:
Normy prywatne pozwalają użytkownikowi swobodnie dysponować oprogramowaniem, dopóki nie zostaną naruszone swobody innych użytkowników lub sam użytkownik nie zrzeknie się części uprawnień.
Normy społeczności przekazują wolności użytkowników w ręce zaufanych głównych deweloperów.
Pozostałe normy to normy publiczne, które przyznają wyłączne, zbywalne i podlegające obrotowi prawa do używania i rozwijania oprogramowania tylko niektórym jednostkom.
Ostatecznie wolność jednostki wydaje się być jedynie wspomagana, a nie wchłaniana przez instytucje społeczności, takie jak kolektywne podejmowanie decyzji czy struktury hierarchiczne.
Normy publiczne kształtują relacje między wolnością jednostki, kontrolą społeczności oraz komercyjnym wykorzystaniem uprawnień.
Celem systemu normatywnego jest podział praw i obowiązków związanych z dostępem do kodów źródłowych. Z technicznego punktu widzenia system ten organizuje produkcję oprogramowania w ramach społeczności, która jest uprawniona do nadzorowania wysiłków jednostek skierowanych na naprawianie błędów, wprowadzanie nowych funkcji oraz zapewnianie interoperacyjności, lecz nie daje prawa narzucania komukolwiek decyzji produkcyjnych
W sensie ekonomicznym, system jest środkiem utrzymania konkurencji na rynku oprogramowania.