Open source nie tylko dla programistów. O możliwościach otwartego oprogramowania dla projektantów.

Eric S. Raymond, jeden z założycieli oprogramowania open source, jest autorem „Prawa Linusa” (inspirowanego twórcą Linuksa – Linusem Torvaldsem), które brzmi: Given enough eyeballs, all bugs are shallow, co tłumaczy się jako Wystarczająca liczba przyglądających się oczu sprawia, że wszystkie błędy stają się banalne.

Oprogramowanie open source to oprogramowanie, które każdy może modyfikować i ulepszać, ponieważ jego kod źródłowy jest publicznie dostępny (i ponieważ jego twórcy dali każdemu pozwolenie na jego zmianę), co w skali globalnej daje szerokie spektrum możliwości rozwoju kodu źródłowego. Na przestrzeni dwóch dekad koncepcji open source udało się rozkwitnąć, ponieważ okazało się, że zalety społecznościowego opracowywania oprogramowania znacznie przewyższają jego wady.

Niewielki projekt, który trwa przy zaangażowaniu garstki fanów i pasjonatów, może ewoluować, by swoim zasięgiem objąć cały świat – tak, jak było chociażby w przypadku Linuxa.

O projektach open source słyszało pewnie wielu programistów, ponieważ jest to jedna z lepszych metod nauki programowania, przy której dodatkowo możemy rozwijać nasz ukochany produkt (np. wspomniany Linux, Firefox, Gimp, Inkscape, Docker). Kiedy myślimy „open source”, od razu myślimy o programistach. Niekoniecznie bierzemy pod uwagę inne osoby, na przykład projektantów, którzy przyczyniają się do tworzenia użytecznego oprogramowania.

Open source jest brzydki

Przez długi czas darmowe i otwarte oprogramowanie było synonimem brzydoty, mało intuicyjnego interfejsu i złego doświadczenia użytkownika. Istnieją tysiące bardzo fajnych projektów open source, które są źle zaprojektowane i dlatego ludzie nie chcą z nich korzystać. Dlaczego UX jest zły w tak wielu projektach open source? Powodów jest zapewne wiele, lecz jednym z najważniejszych jest brak profesjonalnych projektantów zaangażowanych w tego typu projekty. Poza tym bywa, że twórcy konkretnych projektów open source zwyczajnie nie są świadomi wartości dobrego designu lub nie są pewni, od czego zacząć proces projektowania.

Jednak oprogramowanie typu open source nie powinno oznaczać złego designu i – na szczęście – rośnie liczba projektów kierowanych przez społeczności, gdzie jest silny nacisk na dobry UX – weźmy na przykład Grafana (aplikacja do analizy, monitorowania i interaktywnej wizualizacji oprogramowania) lub IINA (jeden z lepiej zaprojektowanych odtwarzaczy multimedialnych, jakie widziałam).

Środowiska open source coraz aktywniej przyciągają do współpracy projektantów, co widać m.in na przykładzie Drupala, który na swojej witrynie internetowej ma stronę poświęconą wyłącznie badaniom UX i zamieszcza tam szczegółowe informacje o tym, jak projektanci mogą wnieść swój wkład w rozwój projektu. Niektóre inne organizacje –  jak na przykład Mozilla, Zulip, Wikimedia – również aktywnie zachęcają projektantów do współpracy.

Zyskaj lepszy start do kariery z Open Source

Jeśli stawiasz pierwsze kroki w projektowaniu, to każde doświadczenie przy realnym produkcie jest bezcenne. Początkujący projektanci często znajdują się w sytuacji niczym z „Monty Pythona”: chcą zdobyć doświadczenie, ale nie mogą, bo go nie mają. Innymi słowy: nie mając wystarczającej praktyki zawodowej przedstawionej w swoim portfolio, nie otrzymują ofert pracy, a co za tym idzie – nie mogą zdobyć upragnionego doświadczenia. Więc jak raczkujący projektant może zwiększyć swoje szanse na zatrudnienie?

Częstą strategią w budowaniu portfolio jest przeprojektowanie popularnych aplikacji. Efektem jest sztuczny projekt, na który od czasu do czasu spoglądają jedynie rekruterzy. Można to jednak zrobić lepiej. Korzyści płynące z zaangażowania się w rzeczywisty projekt open source są ogromne – zarówno dla strony pomagającej, jak i poszukującej pomocy.

Zacznijmy od środowiska pracy, które jest zbliżone do tego w komercyjnej pracy. Nad jednym projektem open source’owym zwykle pracuje kilku programistów. Będą oni poddawać propozycje ulepszenia UX/UI krytyce i jednocześnie będą ich pierwszymi testerami. Osoby zaangażowane w projekt mogą mieć kontakt z grupą docelową, co też ułatwia realizację testów użyteczności. Wielką zaletą rozwiązań open source jest możliwość korzystania z pracy innych, często bardziej doświadczonych specjalistów. A zatem to również idea nieograniczonego przepływu wiedzy i doświadczenia.

Niezależnie od tego, czy chodzi o kodowanie, projektowanie interfejsu użytkownika, projektowanie graficzne, pisanie czy organizowanie, jeśli szukasz praktyki, to jest dla ciebie miejsce w projekcie open source.

Możesz z łatwością znaleźć wiele projektów, które wymagają pracy projektowej – od brandingu, przez dokumentację, po projekt strony internetowej lub aplikacji. Możesz tu również tworzyć publiczne projekty (jak np. ikony), które z jednej strony pomogą Ci zdobyć reputację, a z drugiej strony pozwolą Twoim wkładem wesprzeć całą społeczność.

Moja przygoda z projektami open source zaczęła się od portalu Open Source Design, gdzie poznałam zespół programistów mieszkających w Kanadzie. Wówczas byli oni na wczesnym etapie projektowania aplikacji mobilnej dla branży logistyczno-transportowej i potrzebowali wsparcia w user experience. Po drodze okazało się, że Github nie jest wcale taki zły, a mój zakres obowiązków sięga od researchu, UX, UI i brandingu po grafiki mniejsze i większe. Praca ta jest zdecydowanie bardzo samodzielna i daje wiele satysfakcji dzięki możliwości wpływu na rozwój produktu. Oczywiście, jak to zawsze w zespole bywa, Twoje projekty są oceniane i poddawane krytyce – nie każda propozycja jest od razu akceptowana i implementowana, czasami są wątpliwości. Praca z innymi przy wspólnym projekcie oznacza, że musisz różne zagadnienia wyjaśniać, tłumaczyć, a także prosić o pomoc innych. Jeśli jednak dbamy o jakość komunikacji w zespole, działania związane z uczeniem się i nauczaniem mogą być satysfakcjonujące dla wszystkich zaangażowanych osób.

Moje doświadczenia z projektami open source są bardzo wartościowe, nie tylko dlatego, że tak wiele się przy nich nauczyłam (i nadal uczę), ale też dzięki otwartym i pozytywnym ludziom, których spotkałam. Właśnie takie projekty – z ciepłymi, przyjaznymi społecznościami – sprawiają, że ludzie chcą się angażować przez lata. Poza tym kultura open source to, jak już mówiłam, przede wszystkim niesamowita społeczność, praca z ludźmi z całego świata, często ze specjalistami najwyższej klasy – to ogromna zaleta udziału w tego typu inicjatywach.

Gdzie szukać projektów?

Open Source Design to społeczność projektantów i programistów, która ma za zadanie udoskonalić doświadczenie użytkownika oraz zaprojektować interfejs oprogramowania open source. Posiada ona wiele celów przewodnich, w tym chociażby otwarcie procesu projektowania i zaangażowanie projektantów w procesy poprzez utrzymywanie otwartej komunikacji z programistami.

Jednym z najlepszych sposobów osiągnięcia tych celów jest skorzystanie z sekcji „praca” w witrynie internetowej, w której programiści i organizacje publikują oferty, a projektanci mogą przeglądać wymagania i nawiązywać współpracę. Niektóre z tych projektów są odpłatne, ale większość jest bezpłatna. Oczywiście, jest dużo więcej źródeł dotarcia do ciekawych projektów open source, na przykład GitHub, gdzie coraz częściej można spotkać etykiety z „UX” w nazwie, czy na stronach konkretnych organizacji.

O czym warto pamiętać przy pracy z projektem open source?

Biorąc pod uwagę to, że większość projektów open source jest tworzonych i kierowanych przez programistów i równie często są to zespoły rozproszone/zdalne, jeśli jesteś projektantem/projektantką i dopiero dołączasz do projektu open source, rozgość się na GitHub, ponieważ większość rozmów decyzyjnych odbywa się właśnie tam.

Kolejną ważną kwestią jest poznanie kontekstu. Zapoznaj się ze sposobem, w jaki Twój zespół pracuje, kim są osoby tworzące projekt, jakie są ich motywacje i cele. Czy projekt ma harmonogram, którego należy przestrzegać? Czy zespół preferuje system małych zmian, czy może większych fragmentów? Jakie są poprzednie dyskusje odnośnie ważnych koncepcji oraz wnioski z nich płynące?

Staraj się zdefiniować problemy, które chcesz rozwiązać, a także to, co będzie stanowiło o ich potencjalnym sukcesie, ponieważ w pracy grupowej dużo łatwiej jest zgodzić się, co do istoty problemu, a nie co do konkretnego rozwiązania.

Przewaga oprogramowania otwartego nad zamkniętym

Z badania przeprowadzonego przez firmę Black Duck wśród około 900 respondentów, 90 procent organizacji używa otwartego oprogramowania i jest ono częścią ich strategii na przyszłość, a 60 procent ankietowanych zwiększyło skalę jego wykorzystania w ciągu ostatniego roku.

Wzrost popularności otwartych technologii jest dobrze zauważalny także na rynku polskim. Trend ten potwierdzają wyniki pierwszego badania dotyczącego ich wykorzystania w rodzimym biznesie, zrealizowanego przez Linux Polska. 

Aż 97 procent badanych potwierdziło, że używa częściowo lub wyłącznie otwartych technologii, tworząc własne rozwiązania IT i aplikacje.

W raporcie McKinsey & Company „Jak doskonałość oprogramowania napędza wyniki biznesowe” („How software excellence fuels business performance”) zaobserwowano, że największym wyróżnikiem czołowych firm jest przyjęcie otwartego oprogramowania.

Optymalizacja kosztów, dostęp do innowacyjnych rozwiązań, elastyczność w możliwości dostosowania aplikacji do własnych potrzeb – oto najczęściej wskazywane korzyści, wynikające ze stosowania otwartych aplikacji.

Obserwujemy coraz większe starania, aby przyciągać w swoje szeregi projektantów po to, by polepszać doświadczenia użytkowników. O ile może to nie być tak atrakcyjne dla osób z długoletnim stażem, to dla początkujących projektantów pole możliwości rozwoju zawodowego w projektach open source jest naprawdę interesujące.

Najpopularniejsze licencje na oprogramowanie open source

Jeśli jesteście ciekawi,  które licencje są obecnie najpopularniejsze, szeroko stosowane lub mające silną społeczności, a także zatwierdzone dodatkowo przez Open Source Definition, to poniżej zamieszczam listę:

  • Apache License 2.0,
  • BSD 3-Clause „New” or „Revised” license,
  • BSD 2-Clause „Simplified” or „FreeBSD” license,
  • GNU General Public License (GPL),
  • GNU Library or „Lesser” General Public License (LGPL),
  • MIT license,
  • Mozilla Public License 2.0,
  • Common Development and Distribution License,
  • Eclipse Public License version 2.0.

Apache 2.0 jest licencją wolnego oprogramowania, autorstwa Apache Software Foundation. Kod źródłowy Apache, podobnie do większości dostępnego w internecie kodu źródłowego, jest objęty licencją umożliwiającą dystrybucję. Licencja Apache dopuszcza użycie przez użytkownika kodu źródłowego zarówno na potrzeby wolnego oprogramowania, jak też zamkniętego oprogramowania komercyjnego.

Jest zdecydowanie mniej restrykcyjna niż w przypadku GPL i pozwala na swobodniejsze wykorzystanie oprogramowania Apache w aplikacjach komercyjnych, określając jedynie kilka warunków o podstawowym charakterze. Popularne rozwiązania oparte o tę licencję to między innymi Kubernetes, Apache http server, Typescript.

W czołówce najpopularniejszych licencji uplasowała się także licencja MIT. Co ciekawe w 2020 r. MIT była najpopularniejszą licencją na GitHub, wyprzedzając wszelkie warianty wspomnianego wcześniej w klasyfikacji GPL i inne licencje wolnego i otwartego oprogramowania (FOSS). Godne uwagi projekty, które korzystają z licencji MIT, obejmują: X Window System, Ruby on Rails, Nim, Node.js, Lua i jQuery. Znane firmy, które korzystają z licencji MIT, to Microsoft (.NET Core), Google (Angular) i Facebook (React). Ponadto analizy pokazują, że wykorzystywana liczba liberalnych licencji open source stale rośnie, podczas gdy wykorzystanie licencji typu copyleft, zwłaszcza licencji GPL, nadal spada

Podsumowanie

Piszę ten artykuł z intencją skierowaną ku osobom na początku swojej przygody z user experience oraz designem szeroko pojętym, ponieważ zdobywanie doświadczenia w projektach open source nie jest takie oczywiste. Dla mnie też nie było, ponieważ słyszymy głównie o  kursach, bootcampach, książkach, networkingowaniu, udzielaniu się w społeczności, osobistej komunikacji z wymarzonymi firmami, ale o zaangażowaniu się w konkretny projekt open source’owy już raczej nie. Z mojego doświadczenia wynika, że warto pójść tą drogą, ponieważ poza tym, że realnie pomagamy programistom, którzy coraz częściej (w miejscach takich, jak Open Source Design) głośno deklarują potrzebę UX-owego przewodnika w swoich projektach, to wiele uczymy się o współpracy zespołowej w praktyce, o czym już pisałam wcześniej. Możemy też zostać poproszeni o testowanie naszych rozwiązań oraz mamy doświadczenie w projektowaniu niskobudżetowym albo wręcz zerowym, gdzie podejmujemy decyzje projektowe bez możliwości przeprowadzenia solidnych badań, co przydarzyć się nam może w naszej przyszłej pracy. Nie jest to oczywiście komfortowa sytuacja, ale odzwierciedla część branży, w której być może przyjdzie nam kiedyś pracować.