Od ponad 10 lat trwa boom na software developerów. To jeden z najbardziej poszukiwanych pracowników oraz Święty Graal kariery dla studentów rozpoczynających studia IT i coraz większej rzeszy uczestników bootcampów i szkół programowania, którzy pragną się przekwalifikować. Kim jest software developer? Jak wygląda ścieżka kariery programisty i czy zakres obowiązków software developera zawsze wygląda tak samo?
Software developer: kto to?
Przeglądając ogłoszenia o pracę z obszaru programowania można zauważyć mnogość stanowisk – developer, programista, software engineer. Do tego dochodzą takie określenia specjalizacji jak full stack, embedded, DevOps, Back-end i Front-end, a do tego dodatkowo cały przekrój różnych języków programowania. Można się pogubić, zwłaszcza, jeśli dopiero planuje się karierę.
Programista a developer - czy to jest samo?
I tak i nie. Dla wielu przedstawicieli branży IT stanowiska te są tożsame. Inni uważają zaś, że programista odpowiada za tworzenie oprogramowania pod względem pisania kodu, a developer poza kodowaniem jeszcze je rozwija - czyli projektuje rozwiązania, tworzy nowe funkcjonalności czy całe koncepcje działania. A jak w tym wszystkim odnajduje się dodatkowo software engineer? Otóż dla jednych inżynier oprogramowania dodatkowo dba o całe środowisko programistyczne – myśli globalnie, projektuje zasadę działania programu w zgodzie z całym procesem, któremu program ma służyć. Inne firmy w osobie inżyniera widzą przede wszystkim pracownika z dużą wiedzą techniczną, który mając wykształcenie inżynierskie jest lepiej przygotowany do tego, by projektować i pisać oprogramowanie w obszarach aplikacji stosowanych w przemyśle.
Z badań serwisu Stack Overflow wynika, że cieszącą się największym uznaniem nazwą stanowiska wśród osób technicznych jest developer – preferowany przez 71,6% badanych. Być może właśnie dlatego najczęściej pojawiająca się w nazwa stanowiska w CV to software developer.
Z uwagi na różnice w postrzeganiu samej nazwy stanowiska, wybierając firmę warto przyjrzeć się temu, co rozumie ona pod pojęciem developera czy programisty, bo z tym związane będzie to, jakie możliwości rozwoju będą czekać na pracownika.
Bardzo często zauważamy, że to, co przyciąga do nas programistów to duży wybór projektów, technologii i związane z tym możliwości rozwoju. Bycie programistą w Rockwell Automation to możliwość pracy w świetnej atmosferze, wśród ludzi, którzy obdarzają Cię szacunkiem i zaufaniem. Każdy ma szansę rozwoju zarówno w obszarze technicznym jak i (czego często brakuje w wielu firmach), procesowym. – wyjaśnia Marek Czyż, Software Team Lead, od ponad 13 lat związany z Rockwell Automation.
Software developer zakres obowiązków
W skrócie można powiedzieć, że do obowiązków programisty należy tworzenie kodu. W praktyce jednak zakres obowiązków software developera może być szerszy – zależny od specyfiki danej organizacji i rodzaju projektu przy jakim pracuje. Najczęściej do zadań programisty należy tworzenie dokumentacji, w niektórych firmach również testowanie a nawet wdrażanie oprogramowania. Z reguły im mniejsza firma informatyczna, tym więcej zadań niezwiązanych stricte z pisaniem kodu będzie miał programista. Większe firmy mogą pozwolić sobie na osobnych specjalistów od testowania, implementacji i innych zadań.
Kodowanie to jedno, a technologie i sposób pracy to drugie. Na początku kariery junior developer zna co najwyżej 2-3 technologie, przy czym żadnej w stopniu samodzielnym. Dlatego tak kluczowy jest na tym etapie wybór takiego miejsca pracy, które umożliwi kompleksowy rozwój zawodowy, a co zatem idzie, pozwoli szybciej i pełniej rozwinąć karierę.
Marek Czyż, który w swojej karierze w Rockwell Automation przeszedł całą ścieżkę kariery aż do stanowiska seniora i lidera podkreśla, że to właśnie to zróżnicowanie jest dla software developera kluczowe. Programiści mają u nas kontakt z różnorodnymi technologiami - od tradycyjnych (C++, .NET, Java) do tych związanych z aplikacjami webowymi czy automatyzacją (Angular, Node.js, Python). Wykorzystywane są różne techniki i frameworki zwinne (Agile), takie jak Scrum czy SAFe. Dzięki temu, programiści mogą liczyć na wszechstronny rozwój zarówno od strony technologii jak i procesu.
Software development – ścieżka kariery
Branża IT wykształciła trzy podstawowe poziomy kariery developera:
• junior software developer – czyli początkujący programista o niewielkim doświadczeniu, który nie może jeszcze pracować samodzielnie,
• (mid) software developer – programista posiadający wystarczające umiejętności, by odpowiadać za tworzony kod i rozwiązania,
• senior software developer – doświadczony, samodzielny programista, mający kompetencje w projektowaniu i proponowaniu rozwiązań, często potrafiący również przekazywać wiedzę.
Nieco odrębną, choć często przenikającą się kompetencyjnie ścieżką kariery jest inżynieria oprogramowania. Tworzenie oprogramowania to przecież nie tylko pisanie kodu, ale również konieczność zaprojektowania tego, jak cały system ma działać, jakie mieć funkcjonalności, co ma robić. Inżynier oprogramowania może samodzielnie pisać kod, ale do tego dba również o środowisko programistyczne i architekturę całego systemu oraz o to, by dane oprogramowanie spełniało założenia biznesowe i było skalowalne.
Inżynierów oprogramowania tak jak i programistów zatrudnia się w różnych obszarach biznesu. I tak web developer będzie specjalizował się w stronach internetowych i sklepach oraz innych aplikacjach dostępnych z poziomu przeglądarki, aplication developer będzie rozwijał różnego rodzaju aplikacje i systemy, embedded software developer będzie odpowiadał za tworzenie oprogramowania do sterowania urządzeniami (m.in. automatyka przemysłowa, IoT). Na rynku pracy pojawiają się coraz węższe specjalizacje – można związać się z bankowością, grami, oprogramowaniem telefonów komórkowych, aplikacjami biznesowymi czy przemysłowymi. Wybór jest praktycznie nieograniczony.
Dobre miejsce pracy dla programisty czy inżyniera oprogramowania to takie, w którym nie tylko jasno określony jest zakres jego obowiązków, ale przede wszystkim programista ma możliwość rozwoju i udziału w projektach, które będą dla niego wyzwaniem. Dlatego przed podjęciem decyzji o podjęciu pracy w danej firmie warto dowiedzieć się, jak firma rozumie rozwój programisty i co może mu zaproponować.
Rockwell Automation bardzo precyzyjnie definiuje, tzw. techniczną ścieżkę kariery oraz wymagania na każdym jej szczeblu. Warto dodać, że firma mocno podkreśla znaczenie jakie mają dla jej rozwoju inżynierowie oprogramowania i buduje atmosferę szacunku dla ich pracy i osiągnięć. Każdy programista definiuje w jaki sposób chce budować swoją karierę pracując w danym projekcie. – wyjaśnia podejście Rockwell Automation Marek Czyż.
Ścieżka kariery programisty może też wyglądać nieco inaczej, jeśli zdecyduje się on iść w kierunku zarządzania zespołem. Wtedy przygotowuje się do objęcia stanowiska lidera, stając się w końcu kierownikiem grupy programistów, menadżerem a w końcu nawet CIO. Tę opcję wybierają osoby o predyspozycjach zarządczych, często jako kolejny krok po osiągnięciu poziomu seniora.
Trzeba jednak pamiętać, że ścieżka związana z zarządzaniem często wymaga zmniejszenia ilości czasu, jaką programista poświęca na rozwój w określonych technologiach, poznawanie nowych frameworków i rozwiązań.
Jeszcze inną możliwością, dostępną jednak jedynie w większych firmach, jest przechodzenie między projektami. Dzięki takiej zmianie developer programista może poznać nowe technologie, rozwinąć się w innym języku czy po prostu zmienić zespół, w którym pracuje. W naprawdę dużych firmach przechodzenie między projektami to niekiedy szansa na całkowitą zmianę produktu, przy którym pracuje programista mimo pozostawania nadal w jednej firmie.
W Rockwell Automation programista może również, w ramach możliwości, aplikować do innego projektu, aby tam rozwijać się w wybranym przez siebie kierunku. – dookreśla Software Lead. A możliwości jest sporo. Większość projektów związana jest z główną działalnością firmy, czyli automatyką przemysłową i to w bardzo rozbudowanym zakresie. Tworzymy oprogramowanie do wizualizacji procesu produkcji poprzez interpretację danych pochodzących z systemów sterowania. Pracujemy też nad narzędziami służącymi do konfiguracji urządzeń automatyki przemysłowej. Jednocześnie, istnieją projekty obejmujące inne domeny, chociażby związane z tworzeniem oprogramowania MES do zarządzania produkcją. Jasno określona ścieżka kariery technicznej oraz możliwość transferu pomiędzy projektami w ramach organizacji pozwala precyzyjnie zaplanować i realizować swoją wizję rozwoju. – dodaje specjalista z Rockwell Automation.
Praca jako software developer ma bardzo wiele wymiarów – różne języki programowania, technologie, obszary tematyczne i biznesowe w których można pracować dają wprost nieograniczone możliwości. Rozwój kariery – w poziomie i pionie również sprawia, że kto zaczął pracę w obszarze tworzenia oprogramowania rzadko kiedy decyduje się na zmianę kariery. Ta praca wciąga.