fbpx

Programista junior, senior, a może mid?

Grzegorz Papaj, 16 grudnia 2019

W środowisku programistów aktualnie panuje trend, by poziom zaawansowania developerów określać jako „programista junior”, „programista senior”, a czasem jeszcze stopień pośredni, czyli „mid” bądź „mid level”, czasem opisywany również jako „regular”. Wszyscy zdają się posługiwać się tymi stopniami wtajemniczenia. Ale co one właściwie oznaczają?

Podchodząc do tematu z pewną dozą złośliwości można by powiedzieć, że stopnie te różnią się jedynie oferowaną stawką, a w najlepszym wypadku stażem pracy. I czasem faktycznie, patrząc szczególnie na rynek headhunterów/pośredników pracy, można odnieść wrażenie że dokładnie tak jest.

Na szczęście nie jest to regułą, a tego rodzaju stopniowanie umiejętności może być użyteczne, szczególnie w komunikacji z klientami. Poniżej pokrótce opisujemy definicje stopni wtajemniczenia, które uznajemy za rozsądne, z którymi zgadza się większość naszych kontrahentów i które stosujemy sami.

Co warto zaznaczyć, stopnie te nie bazują na stażu pracy, ale na pewnych konkretnych zestawach kompetencji, nabywanych w drodze rozwoju programisty.

Programista junior/junior developer

  • pracuje pod nadzorem,
  • nie wyznacza sobie samodzielnie zadań,
  • wykonuje prostsze, bardziej rutynowe zadania,
  • zwykle nie komunikuje się samodzielnie z klientem/odbiorcą tworzonego oprogramowania,
  • nie podejmuje decyzji projektowych.

Programista junior/junior developer/mid-level developer/regular developer

  • pracuje samodzielnie przy minimalnym nadzorze,
  • sam definiuje swoje zadania w ramach postawionego celu,
  • potrafi samodzielnie rozwiązywać problemy techniczne,
  • komunikuje się samodzielnie z klientem/odbiorcą oprogramowania w zakresie szczegółów technicznych realizacji,
  • potrafi zarządzać niewielkim zespołem,
  • podejmuje decyzje projektowe,
  • jest w stanie samodzielnie zrealizować średniej wielkości projekt.

Programista senior/senior developer/kierownik projektów

  • potrafi pracować samodzielnie nad złożonymi zadaniami,
  • potrafi nadzorować i prowadzić duży zespół programistów,
  • wspiera zespół swoją ekspertyzą,
  • edukuje członków swojego zespołu,
  • komunikuje się z klientem/odbiorcą oprogramowania na poziomie celów technicznych i biznesowych,
  • podejmuje strategiczne decyzje projektowe,
  • jest w stanie realizować duże projekty,
  • (więcej o programistach seniorach można znaleźć w artykule Jaki jest pożytek z doświadczonego Senior Developera?).

Oczywiście powyższe opisy nie wprowadzają sztywnego podziału. Niemniej jednak stanowią dość dobre przybliżenie tego, czego można oczekiwać od programistów na określonym poziomie.