Firmy działające w trybie Talent as a Service, takie jak Mobica, często kojarzone są z komercyjnymi projektami dla dużych firm chroniących swoją własność intelektualną i kod źródłowy. Jednak w projektach z obszaru Embedded to sprzęt jest faktycznym produktem, a oprogramowanie często tworzone jest przez Software House’y i publikowane jako open-source.
Czym jest oprogramowanie open-source?
Oprogramowanie open-source, czyli z otwartym kodem źródłowym jest rozwijane w przestrzeni publicznej przy wsparciu całej społeczności danego projektu. Licencja pozwala na niemal dowolne wykorzystanie powstałego kodu, w zależności od wariantu, dopuszczając choćby wykorzystanie go w programach typu closed-source.
Przyjrzyjmy się teraz powodom, dla których inżynierowie wyjątkowo cenią sobie pracę nad projektami open-source i jak wpływa ona na ich rozwój i karierę.
Trzy główne korzyści z rozwijania systemu open-source
1. Zwiększona widoczność w środowisku programistów
Rozwijanie projektów open-source to świetny sposób na to, aby zaistnieć w społeczności programistycznej. Projekty te cieszą się dużą popularnością, co daje specjalistom możliwość autopromocji i ułatwia nawiązywanie kontaktów z osobami o podobnych zainteresowaniach i umiejętnościach.
2. Rozwój umiejętności programistycznych
Każdy commit w oprogramowaniu open-source jest publicznie widoczny, choćby jeżeli nie wyląduje w Pull Request, albo Pull Request nie zostanie zaakceptowany. W efekcie jakość tak powstałego kodu jest bardzo wysoka i można się nim pochwalić podczas procesów rekrutacyjnych lub wykorzystać jako argument do awansu.
3. Wspieranie innowacji
Umiejętność pracy w projektach open-source jest istotnym elementem rozwoju kariery. Przyjrzyjmy się zaletom takich projektów oraz temu, co na temat pracy w nich mają do powiedzenia sami specjaliści.
– Praca w projekcie open-source oznacza ciągłą naukę nowych reguł i stylów programowania. Można znacząco podnieść jakość pisanego kodu i wiele nauczyć się o jego testowaniu, systemach CI i CD. Jako kontrybutor w projekcie open-source jesteś częścią jego społeczności i możesz brać udział w konkretnych wydarzeniach (np. Test Days). I to wszystko w ramach pracy – mówi Artur Tynecki, Expert Software Engineer w Mobica, pracujący nad projektem Embedded w branży IoT.
Zalety systemu open-source
Niektórych może zaskoczyć fakt, iż duże korporacje decydują się na umieszczenie efektów swojej pracy w domenie open-source, zamiast zatrzymać ją tylko dla siebie. Istnieją jednak ważne powody, dla których decydują się one pójść tą drogą. Oczywiście open-source niekoniecznie sprawdzi się przy komercyjnych projektach z innych dziedzin, np. aplikacji mobilnych czy webowych, gdzie każda aplikacja stanowi oddzielną całość i nie ma konieczności jej częstych modyfikacji.
O jakich więc powodach mowa?
Więcej wolności dla programistów
Motto konsorcjum AUTOSAR brzmi: „Pracujmy razem nad standardami, a konkurujmy przy implementacji”. Wpisuje się to w bieżące podejście wielu przedsiębiorstw z branży oprogramowania. AUTOSAR to całkowicie otwarty standard projektowania i tworzenia systemu w motoryzacji, który gwarantuje modułowość, skalowalność, przenoszalność, możliwość ponownego wykorzystania i standaryzację kodu, jednocześnie likwidując zamknięte silosy i nieefektywność. Dla programistów natomiast oznacza to większą elastyczność i możliwość pracy z różnymi firmami z branży.
Równe traktowanie odbiorców
Grupa Khronos gromadzi 150 najważniejszych firm z branży które współpracują ze sobą po to, aby stworzyć darmowy standard w obszarze grafiki 3D, rozszerzonej i wirtualnej rzeczywistości, obliczeń równoległych i sztucznej inteligencji. Wszyscy członkowie grupy, z takim samym prawem głosu, mają możliwość rozwijania standardu i zapewnienia obsługi swoich produktów na podstawie dokładnie takich samych interfejsów, niezależnie od platformy sprzętowej czy konkretnego urządzenia.
Oszczędność czasu
Niektórzy producenci sprzętu tacy jak ARM, udostępniają swoje oprogramowanie na licencjach open-source bez tworzenia grup czy konsorcjów. W ten sposób, na permisywnej licencji Apache 2.0, dostępny jest cały ekosystem Mbed, na który składają się między innymi system operacyjny mbed-os, narzędzia i przykładowe aplikacje.
ARM oddaje więc użytkownikom swoich platform oficjalne, działające oprogramowanie wraz z pełną możliwością jego dopasowania, portowania czy optymalizacji pod kątem konkretnego zastosowania. Klienci ARM-a oszczędzają dzięki temu mnóstwo czasu i pracy, a co za tym idzie pieniędzy, które musieliby zużyć na napisanie własnego systemu lub na oczekiwanie aż zespół programistów ARM-a naprawi lub dopisze potrzebne dla nich funkcje.
Open-source skupia najlepszych programistów
Można również spojrzeć na kod open-source pod kątem olbrzymiej liczby osób testujących i zgłaszających błędy, a choćby poprawki do kodu źródłowego. Co więcej, dzięki publicznie dostępnym systemom kontroli wersji i utrzymywania kodu, bardzo łatwo jest przygotować i udostępnić poprawkę każdemu, kto ma na to ochotę. Umożliwia to także sugerowanie, dyskutowanie, głosowanie, a choćby implementację nowych pomysłów czy funkcji, jeżeli okażą się przydatne. Na koniec warto wspomnieć, iż daje to programistom, choćby tym bardzo doświadczonym, możliwość szlifowania swoich umiejętności, pomagając zarazem wszystkim, którzy korzystają z danego programu.
– Miło jest widzieć, jak ludzie pałają prawdziwą pasją do projektu, nad którym pracujesz! Niektórzy poświęcają mnóstwo prywatnego czasu, żeby udostępnić innym nową funkcję, która wydaje im się przydatna. To sprawia, iż naprawdę można spojrzeć na swoją pracę z innej perspektywy – mówi Andrzej Kurek, Principal Engineer w Mobica, aktywnie pracujący nad projektami open-source zarówno komercyjnie, jak i w swoim wolnym czasie.
Oprogramowanie open-source jest bardziej odporne na cyberzagrożenia
Oprogramowanie open-source jest wyjątkowo odporne na wszelkie zagrożenia właśnie ze względu na swoją otwartą naturę, która zachęca społeczność do szybkiej identyfikacji i naprawy wszelkich luk i słabości. Liczba ludzi zaangażowanych w dany projekt w dużej mierze przekłada się na szybkość eliminowania wykrytych potencjalnych zagrożeń. Istnieją choćby zespoły (zarówno akademickie, jak i pracujące dla biznesu), które specjalizują się w identyfikacji możliwych problemów w projektach open-source i ogłaszaniu swoich znalezisk jako „trofeów”. Krótko mówiąc, otwartość systemu znacząco wpływa na jego cyberbezpieczeństwo.
Spójrzmy teraz na niektóre projekty open-source, nad którymi pracują inżynierowie w Mobica.