Ścieżki kariery w branży IT

By 11 sierpnia 2014Kulisy branży, Ludzie IT, Praca
sciezki kariery w it

Branża IT to nie tylko programiści – aby projekt mógł zostać zrealizowany z sukcesem potrzeba wielu ludzi o różnych kompetencjach. Ten post ma na celu przedstawić w kilku słowach poszczególne role – być może któraś z nich wyda Ci się bardziej interesująca niż programowanie. A jeśli nie, warto wiedzieć do kogo zwrócić się z jakim problemem.

Wpis ten traktuj jako wstęp do serii wywiadów #KulisyBranżyIT, w których zbieramy historie ludzi z branży.

Analityk biznesowy

Analityk biznesowy zajmuje się ‚tłumaczeniem’ wymagań klienta na język techniczny, tj. na specyfikację. Do jego obowiązków należy dbanie o to, aby dokumentacja odzwierciedlała stan faktyczny i była spójna.

Analityk najczęściej rozwiązuje dwa rodzaje problemów – wyjaśnia i doprecyzowuje pewne sformułowania czy kwestie z dokumentacji oraz reaguje i wprowadza zmiany, gdy zmieniają sie wymagania, harmonogram czy priorytety.

Analitykiem biznesowym najłatwiej zostać poprzez zmianę roli z programisty w kierunku analityka, natomiast można też samodzielnie się tego nauczyć. Kluczowymi kompetencjami analityka biznesowego są kompetencje miękkie (konieczne do współpracy z klientem), obycie z dokumentacją techniczną, bardzo dobra znajomość formalnych języków zapisu dokumentacji (np. UML, BPML). Bardzo pomocne jest, gdy analityk zna co najmniej w stopniu dobrym technologię z którą pracuje firma.

Programista / developer

Programista w dużym uproszczeniu pisze aplikacje na podstawie dokumentacji. Obowiązki na tym stanowisku są jednak szersze, opisaliśmy je bliżej w osobnym artykule.

Przeczytaj więcej o roli programisty, czym się zajmuje i co musi wiedzieć.

W pracy programisty najważniejsza jest znajomość technologii oraz doświadczenie w projektach.

Jak wygląda praca programisty w praktyce? O tym opowiedzieli nam Diogo, Tomek, Kuba, Ania.

Architekt

Architekt to rola ściśle techniczna, jest on odpowiedzialny za tworzenie architektury (nie ma jednej, zwięzłej definicji czym jest architektura – na tą chwilę przyjmijmy bardzo uproszczoną i nie do końca prawdziwą definicję, że architektura to zbiór zasad i reguł, wg których tworzone jest oprogramownie i wg których różne aplikacje (lub różne moduły tej samej aplikacji) komunikują się ze sobą) i wdrażanie jej w realizowanych projektach. Najczęściej nadzoruje projektowanie oprogramowania lub sam uczestniczy w tym procesie.

Osoba na tym stanowisku musi być ekspertem nie tylko w danej technologii, powinna mieć także świadomość aleternatyw oraz znać ich wady i zalety. Formalne języki opisu (UML, BPML) są absolutną podstawą. Istotna jest także znajomość metodyk tworzenia i rozwijania architektury (np. TOGAF czy z prostszych SAF, Siatka Zachmana). Architekt jest też mentorem dla reszty zespołu, dlatego zdolności interpersonalne nie są bez znaczenia. Odpowiada za rozwiazywanie problemów technologicznych, prewidywanie ich i eliminowanie zanim się zmaterializują.

Project manager

Najmniej ‚techniczna’ z wymienionych ról, niemniej bardzo ważna w projekcie. Project Manager dba o to, żeby terminy zostały dotrzymane, budżet nie został przekroczony a plan wykonany. Reaguje na sytuacje wyjątkowe (np. znaczne uszczuplenie zasobów ludzkich, zmiana zakresu projektu, problemy z realizacją planu itp). Bezpośrednio odpowiada za sukces lub porażkę projektu. Stanowisko to jest bardzo odpowiedzialne i stresujące, często wymaga poświęcania dodakowego czasu.

Stanowisko to stricte nie wymaga eksperckiej wiedzy technicznej, jednak jest ona przydatna aby rozmawiać z innymi członkami zespołu czy weryfikować efekty ich pracy. Niezwykle ważne są tutaj umiejętności miękkie, zdolności przywódcze oraz znajomość metodyk zarządzania projektami które porządkują cały proces i narzucają pewne ramy na określone role. Osoba na tym stanowisku musi być dobrym słuchaczem i być w stanie zwięźle przekazywać istotne informacje do przełożonych.

O pracy PM opowiedziała nam Karolina, przeczytaj wywiad z serii #kulisyBranżyIT.

Webmaster / Frontend developer / programista frontend

Programista frontend zajmuje się ‚widoczną’ częścią aplikacji, czyli tym co użytkownik końcowy widzi jako np. stronę internetową. Kompetencje techniczne w danej technologii są mniej kluczowe, ważna jest znajomość bieżących trendów w zakresie UX/UI (usability i projektowanie interfejsów), przydatny jest zmysł estetyczny (choć nie wymagany).

Do obowiązków osoby na tym stanowisku należy łaczenie tego, co zwraca kod tworzony przez programistów (np. obiekty, listy, jakieś dane) z interfejsem użytkownika i sprawienie, że kliknięcie np. w przycisk na stronie internetowej wywoła odpowiednią akcję.

Ponieważ większość aplikacji tworzonych obecnie ma interfejs w postaci strony internetowej (tzw. aplikacje webowe), najczęściej na tym stanowisku pożądana jest znajomość technologii HTML5, JavaScript (oraz bibliotek, np. jQuery, YUI), Angular.JS itp.

Jak taka praca wygląda w praktyce? O tym opowiedziała nam Karolina.

Tester

Tester to druga z ról, która nie wymaga ścisłej wiedzy eksperckiej związanej z technologią w której działa aplikacja. Zadaniem testera jest upewnienie się, że aplikacja działa zgodnie z założeniami i dokumentacją, że realizuje cele nakreślone przez klienta oraz że jest prawidłowo zabezpieczona przed niewłaściwym użyciem (np. wpisaniem liter w polu, w którym powinna być liczba itp). Często testerzy odpowiedzialni są także za tworzenie automatycznych scenariuszy testowych umożliwiających szybkie sprawdzenie wielu przypadków.

Tester powinien sprawnie posługiwac się komputerem, dobrze, jesli zna i potrafi korzystać z narzędzi do wspierających testy (Selenium, SoapUI, Fitnesse itp). Powinien mieć przynajmniej podstawowe obycie z aplikacjami webowymi, aby móc precyzyjnie opisywać znalezione problemy (używając właściwej terminologii i podając wystarczającą ilość szczegółów i detali).

Przeczytaj co o pracy testera opowiedziała nam Alicja.

CTO / CIO

Oba stanowiska są rolami menedżerskimi, stanowisko to jest osiągalne właściwie tylko poprzez awans z roli Architekta / Project Managera / Analityka biznesowego lub poprzez przejście z innej firmy. Stanowiska te łączą aspekty techniczne i biznesowe, przy czym zakres obowiązków i istotność każdego ze stanowisk zależą od profilu konkretnej firmy.

CTO jest rolą bardziej techniczną – osoba na tym stanowisku decyduje o tym, jakie technologie będą używane i rozwijane w organizacji, wybiera dostawców sprzętu i rozwiązań ‚niskopoziomowych’ (infrastrukturalnych, platformy itp). Rola ta zyskuje na znaczeniu, gdy organizacja dostarcza technologie (np. firmy dostarczające oprogramowanie na zamówienie), a ma mniejsze znaczenie w przypadku firm świadczących usługi.

CIO jest rolą ściślej biznesową – osoby na tym stanowisku odpowiadają za to, co się dzieje z informacjami w firmie, tzn. w jaki sposób sa one przetwarzane, przechowywane, zabezpieczane itp. Decydują np. o wyborze konkretnego oprogramowania używanego w organizacji, zarządza rozwojem wewnętrznego oprogramowania itp.

Powyższy podział jest raczej umowny i bardzo zależny od konkrentej organizacji. To, co się nie zmienia to fakt, że rola CTO jest bardziej techniczna od roli CIO, obie są związane z zarządzaniem i łączą wiele różnych obszarów wiedzy i kompetencji.

Powyżej opisane stanowiska pokazują różne ścieżki rozwoju w IT. Wpis ten traktuj proszę jako wstęp do serii wywiadów z ludźmi z branży, nad którymi obecnie pracujemy. Wierzę, że po zapoznaniu się również z nimi będziesz mieć pełen obraz tego, jak różne ścieżki rozwoju można obrać. Na razie pomyśl co może być dla Ciebie i śledź naszego bloga na bieżąco by poznać dokładnie specyfikę poszczególnych pozycji. 

  •  
  •  
  •  
  •  
  •  
  • stefanek

    byle tester w byle firmie – wymaga się co najmniej 1-2 roku doświadczenia jako tester i wiedzy praktycznej co do narzędzi testowania. Czyli – nie pracowałeś/aś jako tester? nie popracujesz jako tester :/ przynajmniej w polszy, bo tutaj tylko się eksploatuje :-(

    • Bardzo zależy od profilu firmy, sama znam testerów, którzy się przebranżowili, zaczynali od testów manualnych, albo i nie, od razu poduczali ich do bardziej zaawansowanych testów. Myślę, że w takim wypadku trzeba po prostu pokazać chęć nauki i zainteresowanie branżą, warto znać podstawy programowania. Być może cześć ogłoszeń faktycznie poszukuje osób z doświadczeniem, ale nie oznacza to, że osoby bez doświadczenia nie są zatrudniane.

  • Barbara Szwarc

    Zdecydowanie brakuje Technical Writera :D Analitycy „tłumaczą” wymagania na język techniczny, ale ktoś jeszcze musi przetłumaczyć to co nasi kochani developerzy zaimplementują na język zrozumiały dla użytkownika/partnera/wdrożeniowca. Tak to my, ludzie dokumentacji, udręka developerów, autorzy niezliczonej liczby pytań ;)