Jeden używałby Linuksa - gdyby tylko był na niego dobry program do prowadzenia księgowości firmy. Drugi docenia Open Office ale podkreśla ile mu brakuje do pakietu Microsoftu. Trzeciego, owszem - interesuje model przetwarzania GITa, ale jakość obecnego interfejsu uważa za niepoważną. Firma czwartego już jest właściwie gotowa na robienie projektów w Django ale oczekuje oficjalnego wsparcia dla DB2. Piąty wdeptuje GIMPa w ziemię w porównaniu z Photoshopem. Szósty pyta: gdzie gry? Siódmy...
Takich głosów było wiele zawsze ale ostatnio jakoś bardziej rzucają mi się w oczy. Dlatego pozwolę sobie na powtórzenie paru oczywistych prawd - tym razem posługując się, trochę może naciąganą, analogią.
Impreza
Sprawę imprezy sylwestrowej można rozwiązać dwojako.
Pierwsza możliwość jest prosta: od paru stów do paru tysięcy za osobę (zależnie od miejsca i rodzaju zabawy) a potem będzie i stolik, i kelner, i orkiestra, i dania pod nos, i co tylko szanowny pan zażyczy - w ramach standardowego programu, oczywiście.
Drugi sposób jest zupełnie inny. Paweł udostępni mieszkanie, Kaśka i Anka coś upieką, Krzysiek z Gośką zrobią kanapki, Janusz i Andrzej kupią jakieś alkohole, ktoś zatroszczy się o muzykę, ktoś posprząta, ... Wspólnie szykujemy, wspólnie korzystamy. Przy okazji jesteśmy dość elastyczni.
Zdecydowanie bliższy jest mi ten drugi model ale nie o tym chcę dzisiaj pisać. Za to - wyobraźmy sobie, że do Pawła puka mało mu znany sąsiad i stwierdza: Słyszałem, że robisz imprezę. Nawet wpadłbym, tylko wiesz, moim zdaniem nie ma prawdziwego Sylwestra bez rac, pamiętaj by przygotować. No i szampan powinien być prawdziwy, francuski, najlepiej Dom Pérignon jak w Holidayu.
Po co ludzie robią open-source
Trudno sprowadzać wszystkich do jednego schematu, celów i motywacji jest bardzo wiele. Niemniej jednak, gdzieś u podstaw, jest taki model:
- najpierw komuś czegoś bardzo brakuje, na tyle, by zaczął nad tym pracować,
- pracując, uzyskując pierwsze efekty, decyduje się dzielić z innymi - trochę dla dodatkowej satysfakcji, trochę ze zwykłej życzliwości ale przede wszystkim mając nadzieję, że ziści się następny punkt,
- inni przyłączają się, dodając różne rzeczy od siebie - patche, testy, dokumentację, promocję, gotowość wspierania następnych użytkowników, ...
Jeśli mechanizm zadziała, także pierwotny autor uzyskuje lepsze, ciekawsze oprogramowanie, niż to, które miałby, gdyby pracował tylko sam dla siebie.
To jest także motywacja wielu firm inwestujących w open-source (a nie liczących na zysk ze szkoleń czy wsparcia technicznego): potrzebują do swojej działalności jakiegoś oprogramowania, nie muszą na jego tworzeniu zarabiać bo główny nurt działalności mają gdzie indziej, za to liczą na ograniczenie kosztu dzięki podzieleniu się pracą z innymi.
Namawianie
Skąd zatem to całe zabieganie o zwykłych użytkowników, przekonywanie, pomaganie?
Jest naturalna chęć podzielenia się efektami swojej pracy, potwierdzenia jej jakości. Jest świadomość, że zanim ktoś zostanie współtwórcą, musi zostać zwykłym użytkownikiem. Jest wreszcie potrzeba uzyskania pewnej masy krytycznej - im nas więcej, tym poważniej jesteśmy traktowani (choćby przez producentów sprzętu czy autorów sieciowych API).
Ale wysnuwanie z tego wniosku, że autor open-sourceowego programu ma obowiązek być na usługi kapryszącego użytkownika, jest zwykłą pomyłką. Chcesz mieć race, to je przynieś.
Sprawa podejścia
Trafiłem niedawno na zgrabne podsumowanie możliwego podejścia do projektów open-source:
-
Chcę X. Powinniście zrobić X.
-
Chcę X. Jak mógłbym pomóc w robieniu X?
Pierwsze jest wszechobecne i jałowe. Drugie sprawia, że rzeczy się stają.
Czytanka
Nieco na uboczu głównego tematu zachęcam do przejrzenia wspomnień Williama Steina o powstawaniu Sage (bardzo interesującego programu wspomagającego obliczenia matematyczne, o którym niegdyś szerzej pisałem). Bardzo ciekawa, realistyczna i przedstawiona bez ideologizowania historia trudnego projektu open-source.
Święta nadchodzą. Rozmaitych Merry i Wesołych w czytniku mam już mnóstwo, sam nie lubię składać życzeń, dlatego poprzestanę na zupełnie nieokolicznościowym tekście.