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ą?

programiści

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.

1