W świecie technologii embedded, elastyczność i innowacja idą w parze, kształtując nową rzeczywistość pracy dla developerów. W naszym wywiadzie z Maciejem Jońcą, doświadczonym embedded developerem z ASSA ABLOY, zgłębimy, jak różnorodne środowiska pracy wpływają na realizację projektów. Maciej opowie o swoich spostrzeżeniach na temat wyzwań w branży, efektywności pracy zdalnej oraz roli narzędzi technologicznych, które wspierają współpracę w zespołach. Zanurzmy się w fascynujący świat technologii, która kształtuje przyszłość embedded developmentu!
Embedded development i praca w różnych organizacjach
Inhire: Macieju, masz doświadczenie w różnych środowiskach – od małych firm, przez sektor publiczny, aż po międzynarodową korporację. Jakie największe różnice dostrzegasz w codziennej pracy embedded developera w tych organizacjach?
Maciej z ASSA ABLOY: To prawda, miałem możliwość pracować dla firmy zatrudniającej mniej niż 20 osób, instytucji państwowej zatrudniającej kilkadziesiąt osób oraz aktualnie pracuję dla międzynarodowej korporacji, zatrudniającej globalnie dziesiątki tysięcy ludzi na całym świecie.
Różnice są znaczące i są szczególnie widoczne w obowiązkach embedded developera i procesie decyzyjnym.
W firmach, gdzie zespoły embedded są nieliczne, często jest się przysłowiowym One Man Army – elektronikiem, programistą, architektem, testerem i audytorem w jednym, a we wszystkich tych obszarach należy mieć z tyłu głowy różne normy, np. europejskie, które należy spełnić. Drabinka decyzyjna jest zazwyczaj krótka lub bardzo krótka – decydujemy sami, nasz przełożony lub inwestor.
Tam, gdzie zespoły są duże, mamy jasno sprecyzowany zakres obowiązków, przykładowo odpowiadamy za jedną funkcjonalność, którą musimy zaimplementować. Owszem, nierzadko i tutaj także należy mieć wiedzę nie tylko z zakresu samego programowania, ale zazwyczaj skupiamy się na jednej rzeczy, w której jesteśmy lub stajemy się specjalistami.
Z racji rozległej struktury organizacyjnej, proces decyzyjny może się znacząco wydłużyć. Zanim zostanie podjęta decyzja, musi ona przejść przez wiele rąk, nierzadko znajdujących się w różnych strefach czasowych, co zwyczajnie trwa.
Inhire: Czy przejście do dużej organizacji wymagało od Ciebie zmiany podejścia do projektowania i wdrażania rozwiązań embedded? Czy są rzeczy, które w dużej firmie robi się lepiej, a w mniejszej łatwiej?
Maciej z ASSA ABLOY: W niektórych aspektach tak, w innych nie. Koniec końców, efektem finalnym pracy embedded developera jest fizyczny produkt.
Dla użytkownika końcowego nie ma znaczenia czy produkt pochodzi od wielkiej firmy czy małego start-upu, więc w tym kontekście nic się nie zmienia.
Z mojego doświadczenia wynika, że z powodu dużo mniejszej bezwładności w mniejszych firmach, dynamika projektów jest znacznie większa. Można łatwiej i szybciej stworzyć MVP, co jest bardzo satysfakcjonujące. Problem pojawia się, gdy trzeba wprowadzić produkt na rynek – uzyskanie wszystkich niezbędnych certyfikatów do rozpoczęcia sprzedaży produktu, jest dla małych firm długi i często kosztowny. Dla małego zespołu jest to trudne zadanie.
Duże firmy mają działy ludzi wyspecjalizowanych w danych dziedzinach – jedni zajmują się programowaniem, inni testami, kolejni zaś certyfikacją urządzenia. W dużych firmach kluczowa jest synchronizacja i dobre zarządzanie wszystkimi zaangażowanymi zespołami i siatką zależności pomiędzy nimi, tak aby produkt końcowy był zadowalający, ale to już należy do obowiązków Project Leadów, nie developerów.
Praca zdalna w embedded
Inhire: Embedded development często kojarzy się z pracą na fizycznym sprzęcie. Jak wygląda rzeczywistość – czy da się pracować zdalnie w tej branży?
Maciej z ASSA ABLOY: Jak najbardziej się da, chociaż to też głównie zależy od dwóch rzeczy – mindsetu pracodawcy oraz jakiego sprzętu używamy przy pracy.
Różnicą pomiędzy embedded, a “typowym” software developerem jest to, że my zazwyczaj oprócz komputera potrzebujemy dodatkowego hardware. Bardzo łatwo można odróżnić embedded od software developera – na biurku embedowca i w jego otoczeniu znajduje się mnóstwo elektroniki – jak zasilacze, oscyloskopy czy lutownice.
To nie jest kwestia czy użyjemy tego całego sprzętu, tylko kiedy.
Na dłuższą metę cała ta dodatkowa elektronika jest nam potrzebna w pracy, więc nie możemy sobie pozwolić na bycie cyfrowymi nomadami, ale nie przeszkadza nam to w pracy zdalnej. Po prostu jesteśmy mniej mobilni – wszystko zależy od aktualnego projektu oraz od odpowiedniego zarządzania swoją pracą.
Jeżeli pracuje się nad rozwiązaniami np. militarnymi, to zabranie ze sobą na pracę zdalną części elektroniki, nad którą aktualnie pracujemy, nie wchodzi w grę.
Podobnie jest podczas integracji różnych urządzeń ze sobą, przykładowo integracji elementów w dwumetrowej szafie elektrycznej. Jednak ciężko mi sobie wyobrazić zabieranie jej ze sobą na pracę zdalną.
Najczęstszym powodem dlaczego jeździmy do biura (oprócz wspólnej integracji), jest konieczność wykorzystania specjalistycznego sprzętu, jak przykładowo bardzo dokładne oscyloskopy czy specjalizowany sprzęt lutowniczy. Są to zazwyczaj drogie lub bardzo drogie urządzenia. Firma nie może sobie pozwolić na ich wypożyczanie ze względu na możliwość uszkodzenia, a tym bardziej na ich kupno dla każdego z inżynierów.
Jeśli chodzi o moje doświadczenie, to w trakcie pandemii i po niej nie miałem żadnego problemu z pracą zdalną. Pracodawcy zmienili swoje podejście do tego rodzaju pracy. Teraz, zazwyczaj z odpowiednim wyprzedzeniem, wiem, kiedy muszę się pojawić w biurze: gdy trzeba polutować płytki, odebrać lub wysłać przesyłkę, zrobić pomiary. Najczęściej jest to jednak chęć spotkania się z kolegami i koleżankami z pracy.
Inhire: Jak wygląda współpraca zespołowa, gdy część osób pracuje zdalnie, a część stacjonarnie? Jakie widzisz największe wyzwania i jak można je rozwiązać?
Maciej z ASSA ABLOY: Mimo rozwinięcia narzędzi komunikacyjnych do pracy zdalnej, największym wyzwaniem jest bariera komunikacyjna w porównaniu do pracy stacjonarnej.
Praca stacjonarna zdecydowanie ułatwia nawiązywanie lepszych kontaktów ze współpracownikami i złapania lepszego flow. Przekłada się to na większą swobodę komunikacji, głębsze zrozumienie siebie nawzajem i ogólnie lepszą współpracę.
Z drugiej strony, pracując zdalnie, łatwiej jest nam priorytetyzować pracę i pozostać skoncentrowanym na jednym zadaniu. Spotkania czy pomoc w rozwiązaniu jakiegoś problemu kolegi/koleżanki w biurze często są organizowane ad hoc – zawsze jest dobry moment na to. Pracując zdalnie, możemy najpierw dokończyć obecne zadanie, aby dopiero następnie odpowiedzieć.
W mojej opinii, dobrym rozwiązaniem jest praca hybrydowa lub zdalna, ale z jakąś formą cyklicznych spotkań czy to w biurze, czy w formie wspólnej integracji. Pozwala to wyciągnąć z obu trybów pracy, zdalnej i stacjonarnej, wszystko co najlepsze.
Technologia a elastyczność pracy
Inhire: Czy symulacje i emulacje mogą w pełni zastąpić pracę na fizycznym sprzęcie? Gdzie są granice takich rozwiązań?
Maciej z ASSA ABLOY: Są one wykorzystywane w embedded, ale żadne z nich nie jest w stanie w pełni zastąpić pracy na fizycznym sprzęcie.
W kwestii symulacji, istnieje duża ilość narzędzi, dzięki którym relatywnie tanim kosztem możemy zasymulować działanie pewnych komponentów. Komponenty te następnie łączy się w system. Różnica między symulacjami, a fizycznym systemem wbudowanym jest taka, że w symulacji często trudno jest przewidzieć wszystkie zależności w systemie, szczególnie w kontekście elektroniki.
Przykładowo, możemy zasymulować sobie system pomiarowy ciśnienia atmosferycznego, ale jeśli na nasz fizyczny czujnik będą wpływały parametry, których nie przewidzieliśmy, jak np. wilgotność powietrza to nasza symulacja nie jest kompletna i może być błędna. Nie zmienia to faktu, że w np. w branży automotive wykorzystuje się symulacje, jednak koniec końców i tak należy je zweryfikować na fizycznym sprzęcie.
Emulacje są zdecydowanie rzadziej wykorzystywane. Ich głównym problemem jest słaby lub kompletny brak wsparcia dla mikroprocesorów, z którym pracujemy. Dla większości producentów, emulacje to temat trzeciorzędny. Z punktu widzenia firmy produkującej urządzenia, dużo łatwiej jest wykorzystać development kity do początkowych faz projektu niż skorzystać z emulatora. W późniejszych etapach projektu, gdy programista ma dostęp do docelowej elektroniki, wykorzystanie emulatora ma mały sens.
Inhire: Rozwój IoT i technologii chmurowych zmienia wiele branż – czy myślisz, że w przyszłości embedded developerzy będą mogli pracować bardziej zdalnie niż obecnie?
Myślę, że nie zanosi się na zmianę. Jedyna możliwość jaką widzę to nagły przyrost małych urządzeń IoT, które embedded developer będzie mógł programować praktycznie z dowolnego miejsca na świecie, ale na ten moment nie przychodzi mi do głowy żadna branża, która nie korzystałaby już z urządzeń IoT.
Motywacja i oczekiwania embedded developerów
Inhire: Czy kiedykolwiek myślałeś o zmianie specjalizacji w IT tylko po to, by móc pracować w pełni zdalnie? Jeśli nie, co sprawia, że embedded jest dla Ciebie na tyle atrakcyjne, że zostajesz przy tej dziedzinie?
Maciej z ASSA ABLOY: Owszem, myślałem, ale wtedy zawsze utwierdzam się w przekonaniu, że embedded jest tym, co chcę robić. Często powtarzam, że moja praca to moje hobby.
To jest naprawdę wspaniałe uczucie, gdy jesteśmy w stanie przekuć koncept w fizyczne urządzenie, które można dotknąć, wziąć do ręki, zobaczyć na półce w sklepie. Nie ujmując stricte software’owi, embedded to jest coś więcej niż sam zapis jedynek i zer. Produkty, które robimy, to są rzeczy, które fizycznie istnieją i fizycznie wpływają na ludzi.
Jako przykład mogę podać jeden z produktów nad którym pracowałem – urządzenie do diagnostyki chorób płuc. Miałem ogromną satysfakcję z tego, że urządzenie które współtworzyłem może komuś pomóc, czy wręcz uratować życie.
Inhire: Jakie rady dałbyś firmom, które chcą zatrudnić świetnych embedded developerów, ale wiedzą, że nie mogą zaoferować pełnej pracy zdalnej? Jak mogą przekonać kandydatów do dołączenia do ich zespołu?
Maciej z ASSA ABLOY: To jest pytanie, na które nie ma łatwej odpowiedzi. Pomijając najbardziej uniwersalne kwestie czyli wynagrodzenie i benefity, różni kandydaci mogą mieć różne priorytety i nie ma tutaj jednego klucza odpowiedzi.
W kontekście pracy hybrydowej, odległość gra kluczową rolę. Im dalej kandydat ma do biura, tym ważniejsza jest elastyczność trybu pracy i możliwość negocjacji. Skoro niemożliwa jest praca w pełni zdalna, to może jest możliwość spotykania się w biurze rzadziej niż kilka razy w tygodniu. Może istnieje możliwość spotykania się, na przykład, raz w miesiącu? W tym obszarze firma powinna wykazać się elastycznością i umieć odstąpić od sztywnych zasad.
Pewnym rozwiązaniem dla pracodawcy jest posiadanie core’owego, stacjonarnego / częściowo stacjonarnego teamu, która mogłaby obsługiwać hardware znajdujący się w biurze. Dzięki temu, część osób może pracować praktycznie w pełni zdalnie i jedynie od czasu do czasu musieliby się pojawiać w biurze.
Maciej Jońca
Absolwent AGH, od 2017 roku jest związany z systemami Embedded, od 2020 roku profesjonalnie. Pracował dla Polskiej Akademii Nauk, krakowskiego start-upu związanego z MedTech oraz aktualnie jest embedded developerem w ASSA ABLOY.