Już parę razy temat zalet i wad rozwiązań typu Open-Source przewinął się przez tego bloga. Przy omawianiu systemów WordPress i PrestaShop tak naprawdę zasygnalizowałem problem. Czuję się zobowiązany napisać sprostowanie, które z jednej strony będzie odpowiedzią na liczne pytania jakie pojawiły się w związku z opublikowanym materiałem. Poruszając taki temat, mam etyczny obowiązek podsumowania i wskazania zarówno zalet, które najczęściej pchają nas w rozwiązania typu open source ale też wad – bo jak wiadomo nie ma rzeczy idealnych do wszystkiego.

W przeciwieństwie do „ekspertów” z blogów agencji interaktywnych oraz z kolorowych blogów typu „jestem przebojowa z WordPress” nie będę pisał tego co ja osobiście uważam o open-source, bo to raczej nikogo nie obchodzi a skupię się na samych faktach.

Rozwiązań open-source wszyscy używamy codziennie

Na co dzień używam rozwiązań open-source jako deweloper (Apache, MySQL, PHP, WordPress, PrestaShop i wiele, wiele innych). Każdy użytkownik Internetu korzysta bez przerwy z narzędzi, które powstały jako projekty otwarte. Większość systemów operacyjnych w serwerach to różnego rodzaju Linuxy, oprogramowanie serwerowe, nie wspominając o bibliotekach i dodatkach do stron, które realizują czasem skomplikowane a czasem banalne funkcje.

Co to jest Open-Source?

W wielkim uproszczeniu: jest to oprogramowanie, którego kod jest otwarty. Autorami takiego oprogramowania są najczęściej społeczności programistów, którzy pracują zarówno jako wolontariusze oraz w ramach zwykłej komercyjnej pracy. Takie oprogramowanie można za darmo wykorzystywać i je modyfikować do własnych potrzeb.

Czy aby na pewno darmowe?

Najczęściej tak, ale… na open-source zarabia się przy wdrożeniach, przy modyfikacjach, integracjach i sprzedaży dedykowanego sprzętu i usług.

Przykładem może być tutaj świetnie PrestaShop i WordPress. Te systemy CMS są darmowe, można je za darmo wykorzystywać ale dodatkowe moduły i szablony, które niosą jakąkolwiek realną wartość są najczęściej płatne. Co więcej, aby taki WordPress czy PrestaShop spełniał swoją funkcję potrzebuje dodatkowo pracy programistów i hostingu, które jak wiadomo też są płatne.

Są przypadki, że open-source jest uboższą wersją innego komercyjnego oprogramowania lub po prostu starszą wersją płatnego oprogramowania. Cel jest taki aby przekonać przyszłych klientów darmową wersją konkretnego oprogramowania by potem sprzedać wersję komercyjną. Wypuszczenie otwartej wersji konkretnego oprogramowania jest też sposobem na rozwój wersji komercyjnych. Na open-source można dodatkowo zarabiać prowadząc szkolenia, oferując wsparcie. Inne modele biznesowe opierają się na odroczonej korzyści, np. open-source można pisać jako „przynętę” aby potem móc oferować stworzenie oczekiwanych przez klientów dodatkowych (już płatnych) funkcjonalności. Można też sprzedać prawa do wersji komercyjnej obcej firmie itp…

Piszę to aby uzmysłowić sobie, że tego kodu nikt nie pisze za darmo. Wiele osób ma po prostu interes aby oprogramowanie open-source istniało, było rozwijane i miało odpowiednią wartość.

Zalety open-source dla klientów

Jeżeli jesteś właścicielem projektu korzystanie z Open-Source ma wiele zalet:

  1. Niski koszt w początkowych fazach – skoro część systemu jest darmowa np. podstawa systemu CMS to finalnie produkt powinien być tańszy, ponieważ nie trzeba napisać tego co zapewnia kod open-source.
  2. Bezpieczeństwo -systemy otwarte są bezpieczne mimo tego, że szczegóły co do tego jak działają w nich zabezpieczenia są powszechnie znane. Jest to tzw. zasada Kerckhoffsa. To tak jak z zamkiem w drzwiach. Możemy wiedzieć jak taki zamek działa ale bez klucza nie otworzymy go. Wszystkim zależy na maksymalnym bezpieczeństwie rozwijanego Open-Source’a stąd zazwyczaj jest ono (a przynajmniej powinno być) na wysokim poziomie.
  3. Niezależność – rozwijając system na podstawie znanego systemu Open-Source, nie uzależniamy się od jednej firmy. Zawsze możemy powierzyć obsługę rozwijanej aplikacji innej firmie, która też ten system zna.
  4. Elastyczność – systemy Open-Source np. systemy CMS, są tworzone dla szerokiego zastosowania. Aby nie przeładowywać oprogramowania funkcjonalnościami zostawia się „furtki” do dodawania własnych, dodatków, modułów, pakietów itd.
  5. Trwałość -oprogramowanie stale aktualizowane (dotyczy nie porzuconych projektów) łatwo spełnia zasadę trwałości.
  6. Kompatybilność z innymi usługami i oprogramowaniem – jest to pochodna elastyczności i popularności. Jeżeli wykorzystujemy znany system np. skrypt do obsługi sklepu, to dostawcy bramek płatności i firmy kurierskie mają zazwyczaj gotowe moduły do integracji z ich API.
  7. Niezawodność – pochodna wszystkich powyższych cech. Open-Source jest dodatkowo testowany na ogromnej grupie osób. Problemy są z czasem rozwiązywane co przyczynia się do wysokiej jakości oprogramowania.
  8. Zaspokaja najczęstsze potrzeby „z pudełka” – jeżeli nasze potrzeby są typowe i mało precyzyjne to open-source nie rzadko spełnia wszystkie nasze wymagania już na starcie. Projekt stworzenia sklepu internetowego, który trwałby kilka tygodni i kosztowałby kilkanaście albo kilkadziesiąt tysięcy złotych można w szczególnych przypadkach sprowadzić do instalacji darmowego skryptu, która zajmie nie więcej niż 15 minut.

Zalety oprogramowania open-source na pierwszy rzut oka wyglądają świetnie. W czym tkwi haczyk i jak poruszane zalety mają się w praktyce?

Wady open-source dla klientów

  1. Wysoki koszt w utrzymaniu – nie pierwszy raz spotykamy się z sytuacją, w której niska cena na starcie daje wysokie koszty w późniejszych fazach. Skąd to się bierze? Każdy proces dodawania funkcjonalności do open-source jest bardziej skomplikowany. Programista musi uwzględnić przyszłe aktualizacje oraz tworzyć funkcje w zgodzie z założeniami twórców open-source. To zawsze komplikuje rozwój systemu zakładając, że ma to być wieloletni rozwijający się projekt.
  2. Brak wsparcia i gwarancji – skoro nie ma oficjalnego producenta, który powiedzmy wprost, bezpośrednio zarobił na nas i chce budować z nami długofalowe relację, tak naprawdę nie mamy gwarancji ani wsparcia w przypadku pojawienia się problemów (zarówno tych drobnych jak i poważnych).
  3. Nie-bezpieczeństwo – po pierwsze, hakerzy mają większe motywacje do łamania zabezpieczeń i tworzą narzędzia automatyzujące masowe łamanie takich systemów bazując na oficjalnie przecież opublikowanych poprawkach. Takie narzędzia są później sprzedawane na czarnym rynku i można ich użyć przeciw konkurencji, która nie aktualizuje co tydzień swojego oprogramowania. W przypadku znalezienia nowej luki (co nie zdarza się rzadko), wszystkie istniejące systemy bazujące na dziurawym systemie są narażone na atak. Sumiennie aktualizowane systemy też są narażone na atak jest to problem tzw. Zero-Day Exploit. Znaleziona (i nie zgłoszona do twórców) luka przez jakiś czas „wisi” a nawet jak jest znaleziona to jej załatanie trwa określony czas. Wiele luk nie jest też odpowiednio wcześnie wykrytych, stąd hakerzy mają czasem kilka miesięcy na korzystanie z luk, które nie zostały jeszcze wykryte. Największym problemem bezpieczeństwa jest korzystanie z tych nieszczęsnych dodatkowych modułów, które korzystają z „otwartości” oprogramowania i możliwości integracji jakie oferuje. darmowe wtyczki i dodatki, najczęściej są przyczyną zawirusowanych stron czy sklepów internetowych.
  4. Ryzyko pod kątem utrzymywania projektu – nigdy nie wiadomo czy projekt nie pozostanie porzucony
  5. Niekompatybilność wersji wstecz – tutaj typowym przykładem może być znany w Polsce system sklepowy PrestaShop. Tajemnicą poliszynela jest fakt, że wersja 1.7 nie jest kompatybilna z 1.6 w efekcie mamy do czynienia gdzie pod przykrywką aktualizacji projekt został tak naprawdę porzucony i stworzono nowy od podstaw. Sytuacja ta świetnie ilustruje, że z tą elastycznością i trwałością kodu open-source nie jest do końca tak jak w teorii byśmy wszyscy chcieli.
  6. Brak innowacji – skoro wszyscy używają jednego i tego samego systemu, właściciele sklepów szybko wpadają w pułapkę korzystania z tych samym rozwiązań co jak wiadomo nie jest pożądane w żadnym biznesie.
  7. Nie zaspokaja specyficznych potrzeb – jeżeli masz specyficzne potrzeby, których system open-source nie rozwiązuje „z pudełka” to dostosowywanie go jest zazwyczaj mniej opłacalne niż stworzenia dedykowanego systemu. Zakładając że projekt będzie utrzymywany przez wiele lat.
  8. „Już nie zajmujemy się tym systemem” – mówiąc brutalnie, jeżeli konkretna firma oferuje równolegle rozwiązania na bazie open-source i dedykowane, prędzej czy później będzie marginalizować wszelkie open-source i klientów, którzy najzwyczajniej „zostawili u nich mniej”. Firmy i programiści dysponujący odpowiednim know-how, będą rozwijać własne, dedykowane systemy, które są bardziej dopasowane dla ich potrzeb i ich rozwój będzie prostszy dając przy tym korzyść dla ich klientów.

Mity związane z open source

  1. Open-Source jest dla niskobudżetowych projektów – nieprawda. Wiele dużych firm długotrwale korzysta z  open-source począwszy od oprogramowania serwerowego po CMSy.
  2. Open-source jest niebezpieczne – nieprawda. To nie dostosowanie konkretnego sytemu do potrzeb stwarza takie ryzyko lub niepoprawne wdrożenia.
  3. Otwarte oprogramowanie jest darmowe – nieprawda. Kod jest darmowy, ale ktoś jeszcze musi go wdrożyć, przeszkolić i oferować wsparcie, które już darmowe nie jest.
  4. Gotowe rozwiązania są niskiej jakości – nieprawda. To niezrozumienie istoty lub nieumiejętność dopasowania i wdrożenia ich do potrzeb klienta stwarza problemy, które odbijają się na jakości całego systemu.
  5. Open-source jest tworzony za darmo dlatego nie może mieć wartości – nieprawda. Wiele instytucji, korporacji, dużych i licznych mniejszych firm jest uzależniona od pewnych rozwiązań a niektóre nawet oparły model biznesowy o ich rozwiązania. Dlatego cały czas zwykłymi regułami rynku napędzają rozwój open-source a praca programistów jest odpowiednio wynagradzana.

Co mają z tego wszystkiego deweloperzy?

Zależy oczywiście od przypadku. Czasem można stworzyć fajny system „na start”, MVP albo serwis za kilka tysięcy złotych, który bez rozwiązań open-source kosztowałby kilka razy więcej. Czasem trzeba sprzątać czyiś bałagan lub niestety robić wszystko by… minimalizować straty (bo nie pozostało nic innego) bo jesteś ostatnią osobą, która może coś zrobić.

Dla dewelopera open-source powinien być przede wszystkim nauką. Kontakt z takimi systemami to świetna okazja by nabrać możliwe najwięcej wiedzy o tym jak wszystko działa, jakie oferuje funkcjonalności, znaleźć też sprawy które można poprawić i stwarzają problem klientom, a potem zbudować własny, który będzie oferował tyle ile sami chcemy.

Podsumowanie

Jak zwykle wszystko zależy od konkretnego przypadku oraz wiedzy i intencji osoby, która głosi sądy na temat open-source lub każdego innego rozwiązania.

Można mnożyć przykłady jaki to open-source jest rewolucyjny i mnożyć przy tym korzyści etyczne, biznesowe i nie widzieć świata poza nim.

Można też przywoływać przypadki jak to jakaś „Interactive Agency” tworzy stronę na WordPressie, w której po pół roku aż roi się od wirusów i jakich to kosztów klient nie doświadcza po dziś dzień. Wykorzystujmy open-source wszędzie tam gdzie można sobie na to pozwolić. Jeżeli projekt wymaga wieloletniego wsparcia analizujmy ryzyko i planujmy rozwój aplikacji w dłuższej perspektywie czasu.

Bez open-source nie byłoby mnie ani mojego biznesu. Nie jestem przy tym jego ślepym zwolennikiem i nie wkładam go wszędzie tam gdzie jego funkcjonalność bazowa nie pokrywa się z co najmniej 80% wymagań. Dlaczego? Otrzymuję zbyt wiele zapytań na naprawę i integracje systemów i już nie raz dochodziło do paradoksu, w którym wolałbym napisać apkę od podstaw zamiast bezustannie szukać kolejnego kompromisu.

Źródła:

https://en.wikipedia.org/wiki/Open-source_software

https://en.wikipedia.org/wiki/Kerckhoffs%27s_principle

https://pl.wikipedia.org/wiki/Zero-day_exploit

Oceń artykuł na temat: Open-Source – zalety, wady i mity
Średnia : 4.8 , Maksymalnie : 5 , Głosów : 20