Senior seniorowi nierówny – o różnicach na tym samym stanowisku.

Nawet na tym samym poziomie stanowiska w branży IT, można zaobserwować znaczne różnice w umiejętnościach, doświadczeniu i roli zawodowej. Powodów jest wiele, a jednym z nich jest indywidualna definicja poziomu w poszczególnych firmach, zakres obowiązków, czy nawet kultura organizacyjna. Zdarza się, że senior w danej firmie, będzie sklasyfikowany dużo niżej w miejscu, gdzie stack technologiczny jest bardziej zróżnicowany i zaawansowany.
Innym powodem jest zjawisko awansu poziomego, czyli dajemy Ci awans na papierze, który nic nie zmienia, ale tymczasowo zaspokaja ambicje i potrzebę rozwoju (zwłaszcza finansowego) programisty. Zazwyczaj jest on ściśle powiązany ze stażem w danej firmie.
Największy i jednocześnie zły wpływ na określanie poziomu zaawansowania w programowaniu ma outsourcing, gdzie z założenia poleca się osoby mniej wykwalifikowane na lepsze stanowiska tak, aby osiągnąć maksymalnie największą różnicę pomiędzy kosztem klienta za pracownika, a jego faktycznym wynagrodzeniem, co stanowi zysk dla firm zajmujących się pośrednictwem.
Poruszone wyżej wątki sprawiają, że określanie poziomu dewelopera jest tematem trudnym i mało obiektywnym, a przecież każdy z nas chce jak najlepiej wycenić swoje umiejętności na rynku pracy.
Staż pracy – czy jest wiarygodnym wskaźnikiem kwalifikacji?

Często można spotkać następujący podział pod względem lat doświadczenia:
- Junior (do 2 lat doświadczenia).
- Mid (2-5 lat doświadczenia).
- Senior (5-10 lat doświadczenia).
- Ekspert (powyżej 10 lat doświadczenia).
Jak to wygląda w praktyce? Osoba, która ma niecałe 2 lata doświadczenia komercyjnego, może uchodzić za seniora w swoim środowisku. Składają się na to takie rzeczy jak w miarę nowa technologia (np. framework na froncie – ReactJS), spory bagaż doświadczenia niekomercyjnego (zwłaszcza hobbystyczne programowanie), chęć do samodoskonalenia i oczywiście nadgodziny w pracy 🙂
Z drugiej strony senior, który pracuje w jednym miejscu od 10 lat, na rynku może być sklasyfikowany jako mid. Zdarza się tak, jeżeli nie rozwija się w pracy, ani poza nią.
To jak szybko awansujemy i podnosimy swoje kwalifikacje, w głównej mierze zależy od naszego zaangażowania, wiary w siebie, czy wyzwań, które stają na naszej drodze zawodowej. Osoba pewna siebie, z odpowiednim zapleczem technicznym (np. studia inżynierskie) i przede wszystkim z chęcią do samodzielnego rozwoju, będzie miała zdecydowanie łatwiej osiągać kolejne szczeble na zawodowej drabinie awansu.
Junior developer
Junior developer to osoba na początkowym etapie swojej kariery w branży IT. Zazwyczaj ma podstawową wiedzę techniczną i może być jeszcze w trakcie nauki lub niedawno ukończyła studia. Najczęściej powierzane mu są elementarne zadania, których poprawność łatwo zweryfikować lub te o wysokim priorytecie ze świadomością ryzyka długu technicznego.
Główne cechy juniora to:
- Brak lub niewielkie doświadczenie: Stawia pierwsze kroki w programowaniu komercyjnym, poznaje wymagania biznesowe i specyfikę zawodu.
- Podstawowa wiedza techniczna: Posiada podstawową znajomość języków programowania, narzędzi i technologii stosowanych w danym obszarze.
- Zależność od nadzoru: Potrzebuje wsparcia i nadzoru bardziej doświadczonych kolegów, aby wykonywać zadania efektywnie.
Mid developer
Mid developer to osoba, która ma już pewne doświadczenie zawodowe i jest w stanie pracować przede wszystkim samodzielnie.
Jego charakterystyka:
- Samodzielnie organizuje i planuje swoją pracę.
- Potrafi samodzielnie znaleźć rozwiazanie problemu i aktywnie dzieli się swoją wiedzą oraz wspiera komunikację i integrację (techniczną) pomiędzy zespołami.
- Dobrze zna systemy i technologie w kompetencjach zespołu i aktywnie poszerza wiedzę na temat systemów i technologii wykorzystywanych w projekcie.
- Potrafi wdrożyć w zespole nowe rozwiązanie techniczne.
- Przestrzega reguł i standardów wytwarzania oprogramowania obowiązujących w projekcie.
- Dba o efektywne wykorzystanie czasu.
- Aktywnie rozwija swoje umiejętności i poszerza wiedzę.
- Współpracuje z zespołem w realizacji zadań.
- Terminowo realizuje cele długo i krótkoterminowe.
- Implementuje nowe funkcjonalności w aplikacji oraz rozwija obecnie istniejące.
- Wspiera proces testowania aplikacji.
Senior developer
Senior developer posiada głęboką wiedzę i szeroko rozumiane doświadczenie w swojej dziedzinie. Zakres jego działań:
- Wspiera innych w organizacji, planowaniu pracy i rozwiązywaniu problemów.
- Jest otwarty na koncepcje współpracowników oraz dyskusję na temat swoich rozwiązań.
- W efektywny sposób komunikuje się ze współpracownikami, nie ma problemu ze zrozumieniem.
- Sprawnie i otwarcie komunikuje się w ramach projektu, umie udzielić konstruktywnego feedbacku i jasno oraz klarownie przekazuje informacje osobom nietechnicznym.
- Zna technologie, infrastrukturę i systemy w projekcie/dziale.
- Umie samodzielnie zaprojektować architekturę i dobrać rozwiązania techniczne dla nowego systemu oraz zaprojektować i wdrożyć integrację pomiędzy zespołami/systemami.
- Potrafi w sposób optymalny dobierać narzędzia oraz tworzyć optymalne rozwiązania.
- Jest zorientowany na realizację celów i doprowadzanie prac do końca.
- Aktywnie identyfikuje i usuwa zagrożenia w systemach zespołu.
- Zauważa i wpływa na zmiany procesu w zespole.
- Przeprowadza proces wdrażania nowych pracowników.
Wyróżnia go:
- Aktywna współpraca z członkami zespołu w realizacji zadań oraz osiąganiu postawionych celów.
- Wspieranie twórczego myślenia i wymiany wiedzy pomiędzy członkami zespołu na rzecz podniesienia efektywności zespołu.
- Zapewnianie bezpieczeństwa, przejrzystości, wydajności i wysokiej jakości kodu oraz tworzonych aplikacji.
- Wsparcie procesu testowania aplikacji poprzez automatyzację testów (testy jednostkowe, integracyjne, końcowe).
Ekspert
Ekspert to senior developer, który w znaczący sposób wpływa na rozwój branży i społeczności wokół danej technologii. Wprowadza innowacyjne rozwiązania, jest autorem publicznych narzędzi i bibliotek, pisze artykuły oraz prowadzi wykłady związane z jego dziedziną. Jego wiedza jest interdyscyplinarna i świadoma.
- Aktywnie uczestniczy w organizowaniu prac działu i podnoszeniu jego efektywności.
- Tworzy narzędzia wykorzystywane przez wiele zespołów.
- Potrafi przeprowadzić audyt systemu i przygotować rekomendacje poprawy.
- Zauważa i wpływa na zmiany procesu w dziale.
- Aktywnie promuje rozwój techniczny w dziale, identyfikuje potrzebę.
Wyróżnia go:
- Aktywne dzielenie się wiedzą wewnątrz i na zewnątrz działu.
- Wsparcie biznesu wiedzą specjalistyczną.
- Budowanie marki zespołu, działu i firmy.
- Przygotowywanie koncepcji architektonicznej projektów.
- Koordynowanie współpracy pomiędzy zespołami.
- Zapewnianie spójności architektonicznej i technologicznej przygotowywanych rozwiązań.
Jak się określić?

Przygotowałem dla Ciebie plik .xlsx do pobrania i uzupełnienia ocen z każdego zakresu, który wymieniłem wcześniej. Mam nadzieję, że to narzędzie ułatwi Ci samodzielną ocenę własnych umiejętności i przede wszystkim wskaże kolejne aspekty do rozwoju. Dla większego obiektywizmu, możesz poprosić współpracownika o jego uzupełnienie w Twoim imieniu.
Jeżeli chcesz podnieść swoje kwalifikacje akurat w React-Native, skorzystaj z mojego zestawu pytań weryfikujących na platformie szkoleniowej Udemy. Pozwoli Ci on zidentyfikować techniczne obszary, w których masz jeszcze możliwość rozwoju, aby stać się lepszym mobile developerem.






