Blog (92)
Komentarze (104)
Recenzje (0)

Katedra i bazar... czyli jak metodyka przełożyła się na skalowanie międzymordzia

@marcinw2Katedra i bazar... czyli jak metodyka przełożyła się na skalowanie międzymordzia07.10.2019 20:22

Katedrę Notre-Dame w Paryżu budowano 180 lat (obraz i dane podaję za Wikipedią), czy w dzisiejszych czasach możliwe byłoby coś takiego?

Świat przyspieszył w wielu dziedzinach i dzisiaj chciałbym przybliżyć klasykę, czyli jak można tworzyć oprogramowanie (użyte zostanie odniesienie do bazaru i katedry) i porównać w kilku słowach to co mamy teraz do tego co widziałem w 2010:

Katedra

W wielkim skrócie - budujemy długo, a osoby postronne nie mają zbyt wielkiego wpływu na produkt i nie widzą elementów pośrednich (bo nie mają wstępu na plac budowy).

Ten model wykorzystują szczególnie wielkie firmy i my widzimy ciszę, czasem jakieś przecieki (oczywiście zawsze "przypadkowe"), a potem jest wielka premiera i fanfary:

Panie i panowie, ladies and gentleman, there is one more thing!

Tak się dzieje z produktami, które wymagają dziesiątek prototypów, są zerowane, wchodzą w ślepe uliczki, a my mamy zobaczyć dopiero doskonały efekt końcowy i rzucić się do sklepów.

Ten model był stosowany zwłaszcza w czasie, gdy nie było Internetu:

...obecnie pewne elementy wydostają się miesiące wcześniej, poza tym projekty wymagają coraz większej ilości inżynierów czy specjalistów z różnych dziedzin i niemożliwe jest utrzymanie tajemnicy...

I tu dochodzimy do problemów katedry - trzeba mieć funduszę na opłacenie zasobów (jak to się ładnie mówi w nonomowie), do tego w różnych przypadkach efekt końcowy widoczny jest dopiero po dłuższym czasie (co oczywiście nie wpływa zbyt dobrze na morale zespołów, które miesiącami są tylko "kosztem"), a efekt końcowy może być porażką (skoro docelowi użytkownicy nie widzą produktu, nie mogą wyrazić o nim opinii i wskazać oczywistych błędów).

Szczególnie ta ostatnia kwestia jest ważna - jeżeli CEO firm są charyzmatyczni i mają wizję i wiedzę, to są w stanie ustawić właściwie projekty, a jeżeli nie, to cóż - ilość wpadek wzrasta dramatycznie: proszę popatrzeć na sytuację Apple po pierwszym odejściu Jobsa, Windows Vista i 8 po odejściu Billa Gatesa, itd.

Może więc bazar?

Wyobraźmy sobie miejsce, gdzie wszyscy mogą dodawać swoje idee (zdjęcie za Wikipedią)... a co więcej - produkt powstały z ich połączenia jest widoczny od razu, z jego problemami i zaletami.

Pomysł niby wspaniały i skutkujący często mnogością opcji (obrazek poniżej pokazuje ile układów polskiej klawiatury miało Ubuntu już w 2010), ale użytkownicy tak stworzonego oprogramowania często muszą mieć wiedzę techniczną po to, aby go uruchomić... albo ustawić pod swoje potrzeby.

Jeśli chodzi o tworzenie, to również z tym bywa różnie - zdarzają się projekty, gdzie jakość woła o pomstę do nieba, gdyż za kodowanie zabrali się totalni marzyciele albo ignoranci (przy dobrze wykonanej katedrze chyba częściej zdarza się dobierać ludzi, którzy rzeczywiście mają coś do powiedzenia, gdyż właściciele środków przeznaczonych na ich opłacenie częściej kontrolują stan swojej inwestycji).

W tym momencie dochodzimy do obrazka z początku wpisu - w 2010 na Ubuntu 10.04 tak wyglądało zużycie zasobów wraz ze środowiskiem Ubuntu Netbook Edition 2D opartym na Gnome i uruchomionym Firefox 3.6.3:

Jak się zmieniły popularne środowiska graficzne pingwina, nie muszę chyba mówić - z kronikarskiego obowiązku dodam, że samo Ubuntu bez żadnych "udziwnień" w wersji 64-bit zajmuje na starcie ok. 1 GB RAM (i szczerze mówiąc w 2019 nie chce mi się tego optymalizować).

Do czego dążę?

Oprogramowanie z bazaru może nigdy nie mieć wersji stabilnej, może nie mieć wsparcia, może być kalekie i szczerze mówiąc urągające wszelkim normom... a ja w takim wypadku odpowiam, że "to proszę albo przesiąść się na coś innego, albo zgłosić błąd albo napisać poprawkę".

Normą jest również istnienie wielu wersji (jakkolwiek tego nie nazwać, chodzi mi tutaj o niezgodne ze sobą forki z kodem powstałe z jednego rodzica), plusem w tym wypadku często jest cena, a ja sam mogę mieć pretensję jedynie sam do siebie, że nie chce mi się szukać alternatywy.

Zgadzam się, że ten model na pewno nie jest tak "sexi" jak katedra - w wielu projektach nie ma takiej kompatybilności wstecznej i użytkownicy reagują wręcz nerwowym "znooowwwu jakaś zmiana" i "coś mi przestało działać", często i gęsto nie ma efektu "wow", pamiętajmy jednak, że celem wielu z tych perełek nie jest działanie na milionach maszyn ale np. pokazanie dróg rozwoju, a ich prawdziwą siłą jest praktycznie zawsze dostępność kodu źródłowego.

W takim modelu próbuje się pisać chociaż ReactOS czy Haiku - myślę, że biorąc pod uwagę niezbyt chyba duże środki na ich rozwój (w porównaniu do oryginałów) to należałoby docenić co potrafią na dzień dzisiejszy:

Tak należy traktowac również chociażby Servo Mozilli...

I pośrodku

A teraz wyobraźmy sobie, że chcemy połączyć te dwie metody (katedrę i bazar).

I tak mamy np. jądro linuksowe, do którego doklejamy kod własnościowy (a po ludzku - najczęściej sterowniki napisane przez firmy, które nie chcą pokazać kodu źródłowego).

Pojawia się problem - skoro na bazarze wszystko szybko się zmienia, to elementy z katedry mogą nie pasować... i nie pasują, co widać na przykładzie jądra linuksowego użytego w Androidzie, a ponieważ nikt tego nie kontroluje, to firmy idą na łatwiznę (często i gęsto producenci poprzestają na publikacji konkretnej zmienionej przez siebie wersji z dodanym binarnym kodem nie troszcząc się o dodanie poprawek do wersji ogólnej).

Wiem, że to zabrzmi naiwnie, ale jedyne co może tutaj pomóc to pisanie maili do Intela, NVidii, AMD, Samsunga czy Qualcomma (czyli mówiąc wprost trucie czterech liter, żeby wymusić zmianę ich strategii działania).

W tym wypadku model katedry ma zaletę - firmy tworzące systemy operacyjne (a więc np. Microsoft czy Apple) mają większą siłę przekonywania i dzięki swojemu zaangażowaniu i podpisanym umowom część sprzętu ma szansę działać lepiej z ich produktami.

Nawiasem mówiąc problem ze zmianą metodyki ma Microsoft - kiedyś używali lekko koślawej katedry (problemy z technologią x86, potem z bezpieczeństwem kodu zwłaszcza przed Windows XP SP2), następnie ją poprawili, teraz podgryzani przez konkurencję próbują iść w stronę częściowego bazaru (Windows 10), ale ograniczeni są patentami, kompatybilnością wsteczną... i brakiem starej kadry inżynierskiej.

Szczerze mówiąc śmieszy mnie również narzekanie na Androida czy Chrome, skoro pisane są również w dużej mierze w modelu katedry (oczywiście są pewne elementy bazaru i można sobie zrobić fork kodu, ale zmiany w głównej gałęzi muszą być zaakceptowane przez nadzorcę jakim najczęściej jest Google).

Podam krótki przykład - zaproponowałem swego czasu, żeby w okienku historii w Chrome na Androidzie można było zwijać konkretne dni (błąd 962309), całość zakodowałem (CL 1608741) i na dzień dzisiejszy nie wiadomo, czy ktoś się nad tym pochyli i "klepnie", że jest to zgodne z wolą korporacji.

Zmiana banalna (video) i nie piszę tego, żeby się pochwalić, tylko chcę zwrócić uwagę na fakt, że metoda katedry ma swoje zalety, ale również ogromne wady.

Pójdźmy dalej:

To jest zrzut ekranu z 2011 pokazujący uprawnienia jednej z aplikacji pobieranych z Google Play (artykuł był tutaj) - nadzorca Androida, jakim jest Google, zdecydował o takim a nie innym podziale uprawnień i w modelu katedry narzucił go milionom użytkowników (byłoby to znacznie trudniej zrobić przy bazarze).

Jak to się skończyło, nie muszę chyba mówić (z drugiej strony Apple narzucił użytkownikom pewne określone sposoby "wyłączania" Wi-Fi czy Bluetooth, co dokładnie tak samo pokazało wadę i zaletę tego modelu)

I moje pięć groszy

W dzisiejszych czasach ludzie chcą mieć wszystko za darmo (najlepiej, żeby jeszcze samo przyszło i wszystko zrobiło).

To se ne da pane Havranek!

Rozwój wymaga pracy, konkretnej i zero-jedynkowej (coś jest zrobione albo dobrze albo źle) i praca ta jest przeniesiona na producenta softu (katedra) albo na użytkowników (bazar).

To nie jest tak, że przyjdą małe elektroniczne krasnoludki i zrobią Linuksa na desktopy - system Windows ma elementy sięgające lat osiemdziesiątych poprzedniego wieku, a te wszystkie Gnomy i KDE niekoniecznie (poza tym wszystko ostatecznie sprowadza się do tego ilu fachowców nad nimi pracowało, a z tym bywa naprawdę różnie).

Na pewno oba modele rozwoju oprogramowania są niezbędne i jeżeli jednego brakuje przy tworzeniu jakieś klasy programów, to pojawią się problemy dla nas zwykłych użytkowników - wyobraźmy sobie, że Firefox się kończy i wszystkie przeglądarki opierają się na Chromie albo wyobraźmy sobie, że na rynku jest tylko iOS.

Tego chyba nie chcemy, a przedsmak mamy np. w AppStore i blokadzie używania innych enginów HTML niż jedyny słuszny.

Bez linuksa, bazaru, open-source, GNU, ale również iOS, Windows, katedry i tysiąca innych rozwiązań nie mielibyśmy dziś postępu... i konkurencji i na przykład Mac OS mógłby wyglądać tak:

Właśnie dlatego cieszmy się, że jest okropny Windows i niedobry Linux, niefajny Android i paskudny iOS, bo tylko dzięki temu nasze życie jest inne niż dziesięć czy dwadzieścia lat temu (a na pewno nie jest takie nudne) i tylko dzięki temu firmy mogą oferować nowe rozwiązania (np. konkretne urządzenia z odpowiednio skrojonym firmware) i dostajemy odpowiedniki software, który został porzucony przez producenta (np. FreeDOS może zastąpić MS-DOS, free pascal Turbo-Pascala, itp.)

PS. Pisanie tekstów typu Mandźaro chcę zaro uważam za klasyczny klickbait z uwagi na formę i brak informacji jak poradzić sobie z opisanym tam problemem, dodatkowo przepraszam za uproszczenia, które wynikły z mojej dostępności i formy blogowej.

PS2. Pisałem już o katedrze i bazarze w 2013, nie uprawiam również ewangelizacji i wskazywałem zalety i BOLĄCZKI Ubuntu już w 2010 (np. tutaj i tutaj), miałem podobną serię artykułów o Windows (np. tutaj).

Szanowna Użytkowniczko! Szanowny Użytkowniku!
×
Aby dalej móc dostarczać coraz lepsze materiały redakcyjne i udostępniać coraz lepsze usługi, potrzebujemy zgody na dopasowanie treści marketingowych do Twojego zachowania. Twoje dane są u nas bezpieczne, a zgodę możesz wycofać w każdej chwili na podstronie polityka prywatności.

Kliknij "PRZECHODZĘ DO SERWISU" lub na symbol "X" w górnym rogu tej planszy, jeżeli zgadzasz się na przetwarzanie przez Wirtualną Polskę i naszych Zaufanych Partnerów Twoich danych osobowych, zbieranych w ramach korzystania przez Ciebie z usług, portali i serwisów internetowych Wirtualnej Polski (w tym danych zapisywanych w plikach cookies) w celach marketingowych realizowanych na zlecenie naszych Zaufanych Partnerów. Jeśli nie zgadzasz się na przetwarzanie Twoich danych osobowych skorzystaj z ustawień w polityce prywatności. Zgoda jest dobrowolna i możesz ją w dowolnym momencie wycofać zmieniając ustawienia w polityce prywatności (w której znajdziesz odpowiedzi na wszystkie pytania związane z przetwarzaniem Twoich danych osobowych).

Od 25 maja 2018 roku obowiązuje Rozporządzenie Parlamentu Europejskiego i Rady (UE) 2016/679 (określane jako "RODO"). W związku z tym chcielibyśmy poinformować o przetwarzaniu Twoich danych oraz zasadach, na jakich odbywa się to po dniu 25 maja 2018 roku.

Kto będzie administratorem Twoich danych?

Administratorami Twoich danych będzie Wirtualna Polska Media Spółka Akcyjna z siedzibą w Warszawie, oraz pozostałe spółki z grupy Wirtualna Polska, jak również nasi Zaufani Partnerzy, z którymi stale współpracujemy. Szczegółowe informacje dotyczące administratorów znajdują się w polityce prywatności.

O jakich danych mówimy?

Chodzi o dane osobowe, które są zbierane w ramach korzystania przez Ciebie z naszych usług, portali i serwisów internetowych udostępnianych przez Wirtualną Polskę, w tym zapisywanych w plikach cookies, które są instalowane na naszych stronach przez Wirtualną Polskę oraz naszych Zaufanych Partnerów.

Dlaczego chcemy przetwarzać Twoje dane?

Przetwarzamy je dostarczać coraz lepsze materiały redakcyjne, dopasować ich tematykę do Twoich zainteresowań, tworzyć portale i serwisy internetowe, z których będziesz korzystać z przyjemnością, zapewniać większe bezpieczeństwo usług, udoskonalać nasze usługi i maksymalnie dopasować je do Twoich zainteresowań, pokazywać reklamy dopasowane do Twoich potrzeb. Szczegółowe informacje dotyczące celów przetwarzania Twoich danych znajdują się w polityce prywatności.

Komu możemy przekazać dane?

Twoje dane możemy przekazywać podmiotom przetwarzającym je na nasze zlecenie oraz podmiotom uprawnionym do uzyskania danych na podstawie obowiązującego prawa – oczywiście tylko, gdy wystąpią z żądaniem w oparciu o stosowną podstawę prawną.

Jakie masz prawa w stosunku do Twoich danych?

Masz prawo żądania dostępu, sprostowania, usunięcia lub ograniczenia przetwarzania danych. Możesz wycofać zgodę na przetwarzanie, zgłosić sprzeciw oraz skorzystać z innych praw wymienionych szczegółowo w polityce prywatności.

Jakie są podstawy prawne przetwarzania Twoich danych?

Podstawą prawną przetwarzania Twoich danych w celu świadczenia usług jest niezbędność do wykonania umów o ich świadczenie (tymi umowami są zazwyczaj regulaminy). Podstawą prawną przetwarzania danych w celu pomiarów statystycznych i marketingu własnego administratorów jest tzw. uzasadniony interes administratora. Przetwarzanie Twoich danych w celach marketingowych realizowanych przez Wirtualną Polskę na zlecenie Zaufanych Partnerów i bezpośrednio przez Zaufanych Partnerów będzie odbywać się na podstawie Twojej dobrowolnej zgody.