Rozwój przywództwa technicznego: Wyjaśnienie 7 poziomów świadomości inżynierskiej

Inżynier lub programista rozumiejący biznes

Świat inżynierski to miejsce, w którym nowe narzędzia i technologie rozwijane są bardzo szybko

Świat inżynierski to miejsce, w którym nowe narzędzia i technologie rozwijane są bardzo szybko i w ciągu jednej kariery można przeżyć kilka przełomów technologicznych (chociażby rozwój blockchaina, czy AI, a w niedługim czasie zapewne upowszechnienie komputerów kwantowych). Pomijając aspekt jak wymagające jest obecnie dla inżynierów aby być „na topie” pod kątem nauki oraz psychologicznym (co byłoby tematem na cały osobny artykuł), jest jeszcze oczywiście aspekt samej kariery jako inżyniera. I choć jest to tylko wycinek tematu, to na tym ostatnim aspekcie chciałbym się dziś skupić.

Programiści, jako inżynierowie, stoją przed tymi samymi wyzwaniami i muszą mieć sposoby, żeby się odnaleźć w takiej rzeczywistości, która dodatkowo zmienia się praktycznie każdego dnia. To trudne, ponieważ programista musi mieć na uwadze wiele aspektów swojego rozwoju i swojej pracy. Niemniej w swojej karierze pracowałem z wieloma inżynierami i chciałbym nakreślić proces rozwoju takiego inżyniera – zwłaszcza dla nowych oraz młodych programistów dopiero opuszczających ściany uczelni. A ponieważ piszę o branży programistycznej, to choć cały ten schemat jest do przełożenia na inne branże, będę go używał w kontekście programistycznym często też stosując zamiennie określenia „inżynier” oraz „programista”.

Opisuję więc z jakimi poziomami świadomości inżynierskiej spotkałem się w swojej profesjonalnej pracy. Dla programisty uważam, że powinno być kluczowe, by w ogóle mieć świadomość takich aspektów, a w szczególności otaczającego go świata biznesowego. Każdy kolejny poziom, który opisuję w tym artykule, mówi o kolejnym stopniu „wtajemniczenia” inżyniera w procesy otaczające go i rozumieniu swojej pracy w szerszym kontekście.

Więc przez „świadomość inżynierską” opisywaną w tym artykule będę rozumiał głębię zrozumienia przez inżyniera jego roli, wpływu zadań, obowiązków i wyborów w coraz szerszym kontekście na każdym poziomie organizacyjnym i biznesowym. Mam nadzieję, że pomoże to nakreślić ścieżkę rozwoju oraz zdefiniować czytelnikowi, gdzie „jest” jako inżynier. W konsekwencji też poznasz co należy w dalszej kolejności zrobić, by „wejść na wyższy poziom”.

1. Stażysta lub Absolwent – Wykonywanie Pracy Zorientowane na Zadania

Młodzi inżynierowie oraz magistrowie, który, którzy dopiero opuszczają ściany uczelni, są właśnie na tym poziomie. W pierwszej pracy koncentrują się oni przede wszystkim na wykonywaniu zadań pod nadzorem, które są skrupulatnie opisane. Rzadko kiedy wychodzą poza te ramy. Ci inżynierowie potrafią wykorzystać swoją wiedzę zdobytą dzięki wykształceniu, ale rzadko kiedy wychodzą poza ten zakres. Ich odpowiedzialność również jest ograniczona, obejmuje stosowanie znanych technik do wykonywania przypisanych zadań pod ścisłym nadzorem oraz testingiem.

Programista na tym poziomie charakteryzuje się podstawową wiedzą teoretyczną z zakresu programowania i narzędzi developerskich, ale nie posiada jeszcze doświadczenia komercyjnego. Najczęściej pracuje nad drobnymi poprawkami błędów i prostymi funkcjonalnościami (na przykład „zmiany wielkości guzików”). De facto osoba na tym poziomie generuje dla firmy koszt a nie zysk, ponieważ musi poświęcić dużo czasu również na poznanie procesów wewnętrznych firmy czy lepszego użycia narzędzi.

Kluczowe cechy:

  • Przestrzega szczegółowych instrukcji i ustalonych procedur
  • Gromadzi dane i gromadzi informacje zgodnie z poleceniem
  • Wykonuje rutynową pracę techniczną, która nie wymaga osądu szczegółów projektu
  • Otrzymuje ścisły nadzór i wskazówki dotyczące konwencjonalnych problemów
  • Skupia się na rozwijaniu podstawowych umiejętności inżynierskich i wiedzy
  • Zakres świadomości: Zrozumienie na poziomie zadań z widocznością niewykraczającą poza bezpośrednie wykonanie zadania.

    2. Inżynier-Technik, Wykorzystywacz Narzędzi – Junior

    Inżynier na drugim poziomie świadomości to taki, który zrozumiał już, że wiedza zdobyta na uczelni nie wystarcza do wykonywania dobrej pracy. Narzędzia, z których do tej pory korzystał, potrafi wykorzystać efektywniej (żeby szybciej lub lepiej dostarczać powierzone zadania) ale nauczył się też wykorzystać nowe narzędzia narzucone przez zespół. Nie jest to osoba, która wyjdzie ze swoją inicjatywą, natomiast zwiększa się jej niezależność i trudność podejmowanych zadań.

    Programista na tym poziomie pracuje samodzielnie nad naprawą błędów oraz wprowadza proste zmiany. Bez problemu posługuje się znanymi sobie technologiami i narzędziami oraz swobodnie programuje w „swoim” języku. Potrafi zaimplementować gotowe rozwiązania i wzorce, ale w trudniejszych tematach jest zależny od starszych programistów. Potrafi aplikować proste standardy kodowania w swojej pracy (na przykład wykorzystać Interfacey).

    Kluczowe cechy:

  • Wykonuje podstawowe zadania projektowe i przygotowuje część dokumentów projektowych
  • Stosuje standardowe procedury i kryteria do wykonywania sekwencji zadań
  • Wykazuje zrozumienie typowych koncepcji inżynierii oprogramowania i narzędzi programistycznych
  • Pracuje ze wsparciem bardziej doświadczonych inżynierów, ale wymaga mniejszego bezpośredniego nadzoru
  • Skupia się na budowaniu kompetencji technicznych i rozwijaniu zestawów umiejętności
  • Zakres świadomości: Rozszerzone zrozumienie techniczne wraz ze wzrostem świadomości kontekstu projektu i dynamiki zespołu. Rozumienie kontekstu zadań w ramach większych funkcjonalności, świadomość wpływu swojej pracy na moduł lub komponent.

    3: Ulepszacz Procesów i Innowator – Mid Level

    Inżynier na trzecim poziomie zaczyna rozumieć ograniczenia swojego narzędzia, ale również umie je obchodzić. Albo dostosowuje narzędzia pod siebie, albo szuka nowych, które spełniają jego wymagania i jednocześnie wymagania projektowe. Inżynier na tym poziomie rozumie już jego swój wpływ na projekt oraz zespół projektowy. Taki inżynier może również śmielej artykułować swoją opinię, na przykład na temat procesów które mogą być niepotrzebne lub zoptymalizowane.

    Programistycznym odpowiednikiem jest mid-developer. Potrafi samodzielnie wykonywać powierzone mu zadania i bez problemu posługuje się technologiami, na których pracuje. W zespole Scrumowym aktywnie uczestniczy w eventach (sprint planningu czy retrospektywie). Potrafi zaproponować usprawnienia technologiczne dla projektu lub organizacyjne dla zespołu. Uczestniczy w code review i dzieli się wiedzą z juniorami, a także sam wybiera odpowiednie narzędzia i biblioteki do realizacji powierzonych zadań.

    Kluczowe cechy:

  • Samodzielnie ocenia, wybiera i dostosowuje standardowe techniki i procedury
  • Proponuje ulepszenia istniejących narzędzi i przepływów pracy
  • Skutecznie współpracuje z zespołami międzyfunkcyjnymi
  • Wykonuje umiarkowane projektowe i przygotowuje kompletne dokumenty projektowe
  • Wykazuje zdolność do samodzielnego rozwiązywania złożonych problemów technicznych
  • Zakres świadomości: Zrozumienie na poziomie projektu z rozpoznaniem, w jaki sposób indywidualny wkład wpływa na wyniki zespołu i sukces projektu. Perspektywa całego projektu, rozumienie jak poszczególne komponenty współpracują ze sobą i wpływają na jakość produktu.

    4. Przywódca Techniczny i Mentor Zespołu – Senior Level

    Inżyniera na „czwartym poziomie świadomości” można już nazwać starszym inżynierem. Taki inżynier powinien mieć już w zespole moc decyzyjną, która nie tylko optymalizuje sposób działania całego zespołu, ale też może być propozycją zmiany działania dla innych zespołów. Takiego inżyniera wyróżnia, że rozumie wpływ różnych wykorzystywanych procedur oraz narzędzi na efektywność pracy całego zespołu – czasem rozumie to na poziomie podświadomym, a czasem potrafi nazwać te elementy. Przeważnie taka osoba jest też. Już specjalistą w swojej wąskiej dziedzinie, natomiast nie ogranicza go to w rozumieniu architektur systemów interdyscyplinarnych.

    Oprócz dobrego rozumienia wpływu środowisk i narzędzi na sam zespół taki inżynier rozumie jeszcze zależności na jednej dodatkowej płaszczyźnie – to jest w czasie. Można to nazwać perspektywą wieloprojektową. Oznacza to, że ta osoba rozumie oraz poprawnie przewiduje jak decyzja czy zmiana, którą właśnie podejmuje, wpłynie nie tylko na projekt obecnie robiony, ale może również wpłynąć na przyszłe projekty, którymi będzie zajmował się zespół. Może to być na przykład przyjęcie nowego frameworka jako standardu dla obecnego i przyszłych projektów.

    Jako programista, senior powinien z jednej strony ściśle współpracować z architektem w projektowaniu systemów (lub sam pełni tę rolę), a z drugiej strony być wsparciem dla wszystkich innych niżej postawionych programistów. Jego kod powinien być absolutnie wzorowy, spełniający wszystkie standardy przyjęte w firmie. Przy rozwiązywaniu skomplikowanych problemów – tam gdzie mid napisze tysiąc linii kodu – on po godzinach myślenia potrafi wprowadzić nową warstwę abstrakcji upraszczają i redukując poziom skomplikowania oraz ilość kodu na przykład o połowę.

    Kluczowe cechy:

  • Projektuje kompletne projekty, systemy lub komponenty niezależnie
  • Przegląda dokumenty projektu pod kątem zgodności i zapewnienia jakości, prowadzi code review
  • Nadzoruje i doradza młodszym inżynierom i technikom
  • Podejmuje strategiczne decyzje techniczne, które mają wpływ na kierunek projektu
  • Kieruje złożonymi projektami technicznymi i inicjatywami
  • Zakres świadomości: Perspektywa wieloprojektowa ze zrozumieniem wpływu decyzji technicznych na możliwości organizacyjne i alokację zasobów.

    5. Integrator Międzysystemowy i Międzyfunkcjoyjny – Inżynier Sztabowy

    Inżyniera na piątym poziomie świadomości można nazywać już inżynierem sztabowym lub głównym. Taki inżynier będzie miał moc decyzyjną nie tylko w swoim zespole, ale też będzie miał duży wpływ na działanie innych zespołów. Inżynier taki jest wyspecjalizowany w swojej dziedzinie, ale posiada rozległą (i nie podstawową) wiedzę na temat zasad i praktyk z różnych pokrewnych dziedzin. Trochę trudniej jest przeskoczyć na ten poziom, ponieważ wymaga on już systemowego i całościowego myślenia.

    Kolejną wyróżniającą cechą między poziomem czwartym a poziomem piątym jest to, jak jego decyzje wpływają na całą firmę, na biznes – nawet jeśli jest to rozumienie ograniczone. To znaczy nie potrafi na przykład określić wszystkich skutków decyzji, ale mimo wszystko potrafi wskazać jej kierunek jaki dana decyzja nada całej firmie. Taka osoba będzie już rozumiała, że nie każda decyzja optymalna inżynieryjnie nie będzie również optymalna biznesowo oraz że biznes ma większe znaczenie niż lokalna optymalizacja (chociażby technologiczna).

    Jako programista inżynier z takim poziomem świadomości będzie idealnym kandydatem jako organizator, gdy kilka zespołów dostarcza wspólną funkcjonalność. Przykładowo gdy w firmie istnieje kilka zespołów Scrumowych, ale skutkiem ich działań ma być jeden produkt. Taka osoba odnajdzie się bez problemu w firmie, gdzie wprowadzone jest na przykład SAFe.

    Kluczowe cechy:

  • Stosuje rozległą wiedzę w wielu dyscyplinach inżynieryjnych
  • Tworzy i utrzymuje standardy techniczne w organizacji
  • Pełni funkcję specjalisty technicznego dla szerokich segmentów organizacyjnych
  • Skutecznie współpracuje z zespołami produktowymi i interesariuszami nietechnicznymi
  • Potrafi zaprojektować architekturę całych systemów i aplikacji wykorzystujących odmienne technologie
  • Przyczynia się do strategicznych dyskusji technicznych i podejmowania decyzji
  • Zakres świadomości: Systemowe zrozumienie na poziomie systemów z rozpoznaniem współzależności między rozwiązaniami technicznymi a wynikami biznesowymi. Rozumienie roli użytkownika końcowego w procesach biznesowych przy wytwarzaniu oprogramowania.

    6. Integrator Biznesowo-Technologiczny – Engineering Manager/Lider Technologiczny

    Stanie się inżynierem na szóstym poziomie jest naturalną konsekwencją lepszego zrozumienia procesów biznesowych inżyniera z poziomu piątego. Najczęściej będzie to osoba, która w nazwie pozycji ma dokładnie to samo stanowisko, co osoba z poziomu piątego. Natomiast ponieważ lepiej rozumie procesy biznesowe czy zależności w samej korporacji będzie to osoba, która będzie potrafiła dobrać decyzję inżynierską tak, by była optymalna pod kątem biznesowym. Taka osoba będzie miała świadomość komercyjną organizacji. Będzie rozumiała, że biznes zależy od użytkownika końcowego, otoczenia gospodarczego oraz że rozwiązania technologiczne muszą spełniać oczekiwania nie tylko technologiczne czy biznesowe, ale przede wszystkim klienta docelowego.

    Inżynier na tym poziomie proponując jakąś zmianę będzie ją rozważał pod kątem optymalizacji pod użytkownika, a niekoniecznie optymalizacji technicznej, nawet jeśli może to spowodować problemy w zespołach inżynierskich. Przykładowo, jeśli zespoły inżynierskie chcą wykorzystywać narzędzie A, natomiast w wyniki działania narzędzia A nie są optymalne dla klienta końcowego, inżynier na tym poziomie zaproponuje wykorzystanie narzędzia B – które da większą wartość użytkownikowi. Może to oczywiście powodować pewne konflikty w pionie inżynieryjnym, lecz jest niezbędne do dostarczania jeszcze lepszej wartości.

    Programista na tym poziomie będzie łączył głęboką wiedzę techniczną ze zrozumieniem procesów biznesowych. Będzie potrafił skutecznie komunikować się z nietechnicznymi stakeholderami i przekładać wymagania biznesowe na rozwiązania techniczne. Powinien umieć analizować zachowania użytkowników oraz przewidywać jak konkretne zmiany wpłyną na konkretne przyzwyczajenia oraz napływ lub odpływ użytkowników.

    Kluczowe cechy:

  • Rozumie wymagania rynku, potrzeby użytkowników i priorytety biznesowe
  • Podejmuje decyzje techniczne w kontekście celów firmy i wymagań rynkowych
  • Skutecznie komunikuje się z interesariuszami nietechnicznymi, używając terminologii biznesowej
  • Bierze udział w planowaniu strategicznym i decyzjach o alokacji zasobów
  • Komunikuje się z kierownictwem używając języka biznesowego
  • Zarządza budżetami, harmonogramami i zespołami międzyfunkcyjnymi
  • Zakres świadomości: Zintegrowana z biznesem perspektywa ze zrozumieniem, w jaki sposób decyzje techniczne wpływają na wyniki finansowe, pozycję rynkową i przewagę konkurencyjną.

    7: Strategiczne Przywództwo Organizacyjne – Prezes ds. Inżynierii/Dyrektor ds. Technicznych

    W naszej kategoryzacji jest to najwyższy poziom świadomości inżynierskiej i nie jest to istotne czy wywodzi się ze środowiska programistycznego czy innej inżynierii (będzie to miało znaczenie tylko w kwestii specjalizacji samej firmy). Taka osoba oczywiście nie będzie już podejmować prac stricte inżynierskich, raczej będzie pełnić rolę konsultanta i będzie wskazywać kierunek w którym inni inżynierowie mają dążyć. Raczej będzie przedstawicielem pionu inżynierskiego przed – albo w – zarządzie spółki. Stanowisko to może się nazywać stanowiskiem głównego inżyniera lub np. CTO. Inżynier szóstym i inżynier na siódmym poziomie mogą się niewiele różnić między sobą w zakresie wiedzy. Bardziej będą to różnice w zakresie mocy decyzyjnej i autorytatywności w podejmowaniu decyzji.

    Kluczowe cechy:

  • Podejmuje decyzje strategiczne o dalekosiężnym wpływie na organizację
  • Wykazuje wysoki stopień kreatywności, przewidywania i dojrzałego osądu w planowaniu i organizowaniu rozległych programów
  • Przewodzi programom o krytycznym znaczeniu dla organizacji
  • Reprezentuje organizację jako ekspert i rzecznik branżowy
  • Określa cele programu i wymagania dla głównych inicjatyw organizacyjnych
  • Zakres świadomości: Holistyczna perspektywa organizacyjna obejmująca strategiczne, finansowe, operacyjne i konkurencyjne rozważania ze zrozumieniem długoterminowych trendów branżowych i dynamiki rynku.

    Ścieżki Postępu i Rozwoju Inżyniera Programisty

    Podróż przez te poziomy świadomości nie jest ściśle liniowa, a inżynierowie mogą rozwijać różne aspekty świadomości w różnym tempie. Kluczowe czynniki wpływające na postęp obejmują:

    Działania w zakresie rozwoju zawodowego:

  • Udział w projektach międzyfunkcyjnych
  • Szkolenia i edukacja biznesowa
  • Relacje mentoringowe i coachingowe
  • Zaangażowanie w branżę i tworzenie sieci kontaktów
  • Na tym zestawieniu również dobrze widać, że powyżej poziomu czwartego główna specjalizacja przestaje mieć aż takie znaczenie, a „wejście” na wyższy poziom świadomości związane jest coraz mocniej z wiedzą biznesową i strategiczną. Dlatego też należy pamiętać, że nie każda osoba będzie chciała przechodzić przez te wszystkie poziomy. Inżynierowie, którzy mają bardzo ścisłe umysły, ale nie mają serca ani zrozumienia dla biznesu, mogą zatrzymać się na poziomie trzecim lub czwartym i nigdy nie awansować wyżej. I to jest w porządku, jeśli sami czują się z tym dobrze oraz to rozumieją.

    Co prawda dla każdego „poziomu” wyróżniłem nazwę stanowiska, jednak kilkukrotnie zaznaczyłem że nie jest to sztywny podział, a im mniejsza organizacja, tym bardziej te poziomy przenikają się między różnymi stanowiskami. Niemniej można wyróżnić kilka kluczowych „przejść” które wymagają zmiany myślenia:

  • Pierwszy występuje między poziomem 3 i 4, gdzie wymagany już jest indywidualny wkład w przywództwo zespołowe
  • Drugie kluczowe przejście jest między poziomem 4 a 5, gdzie potrzeba już nabyć większą świadomość odnośnie otaczającego biznesu
  • Trzeci przeskok jest między poziomem 5 i 6, gdzie ekspertyza techniczna musi ustąpić myśleniu strategicznemu oraz umiejętnościom przywódczym
  • Jak pewnie zauważyłeś, celowo unikałem w tym artykule przypisywania lat doświadczenia do danego poziomu rozwoju. Oczywistym jest że potrzeba czasu na każdy poziom, ale tempo każdej osoby będzie inne i zależne od wielu czynników. Dlatego uznałem, że nie ma to sensu, choć można by szacować że na każdy poziom potrzeba 1-3 lat doświadczenia.

    Zestawienie Tabelaryczne Poziomów Świadomości Inżynierskiej

    Poniżej prezentuję prosty skrót wszystkiego co opisałem powyżej.

    PoziomTytułGłówne ZainteresowanieZakres ŚwiadomościGłówne ObowiązkiWładza Decyzyjna
    1Praktykant/Absolwent – Praca zorientowana na zadaniaRealizacja szczegółowych instrukcjiPoziom zadaniaPoprawki błędów, proste funkcjonalności pod nadzoremBrak – wymaga stałego nadzoru
    2Inżynier-Technik/JuniorEfektywność narzędzi i podstawowa niezależnośćPoziom modułu/komponentuSamodzielne poprawki błędów, implementacja wzorców, podstawowe zadania projektoweOgraniczona – w ramach przydzielonych zadań
    3Ulepszacz procesów/Poziom średniAdaptacja narzędzi i optymalizacja procesówPoziom projektuAktywne uczestnictwo w Scrum, przeglądy kodu, mentoring juniorówUlepszenia procesów zespołowych
    4Lider techniczny/Mentor zespołu – Poziom starszyOptymalizacja zespołu i perspektywa wieloprojektowaPoziom wieloprojektowyProjektowanie systemów, mentoring zespołu, strategiczne decyzje techniczneDecyzje techniczne na poziomie zespołu
    5Integrator międzysystemowy/Starszy inżynierKoordynacja międzyzespołowa i świadomość biznesowaPoziom firmy/systemuStandardy techniczne, współpraca międzyzespołowa, projektowanie architekturyWpływ techniczny na poziomie międzyzespołowym
    6Integrator biznesowo-technologiczny/Kierownik inżynierii/Lider technologicznyOptymalizacja zorientowana na użytkownika i integracja biznesowaPoziom zintegrowany z biznesemPlanowanie strategiczne, komunikacja ze stakeholderami, zarządzanie budżetemDecyzje techniczne zgodne z celami biznesowymi
    7Strategiczny lider organizacyjny/CTOStrategia organizacyjna i reprezentacja branżyHolistyczny poziom organizacyjnyProgramy strategiczne, reprezentacja zarządu, przywództwo branżoweDecyzje strategiczne na poziomie organizacji

    Świadomość inżynierska reprezentuje wielowymiarową progresję od realizacji skoncentrowanej na zadaniach do strategicznego przywództwa organizacyjnego. Każdy poziom opiera się na poprzednich kompetencjach, jednocześnie rozszerzając zakres zrozumienia i odpowiedzialności. Organizacje odnoszą korzyści z rozpoznawania i wspierania rozwoju inżynierów na tych poziomach świadomości, ponieważ wyższe poziomy świadomości przyczyniają się do skuteczniejszego podejmowania decyzji, lepszej współpracy międzyfunkcyjnej i silniejszego dopasowania między pracą techniczną a celami biznesowymi. Warto jednak, by w tym wszystkim nie zapominać o najważniejszym: o samym człowieku, naszym Inżynierze.

    Autor

    Łukasz Pawłowski

    CEO of Sailing Byte

    Sailing Byte CEO and former PHP developer. Founder of a software house specializing in a partnership-driven approach, with expertise in Laravel, React.js, and Flutter. My objective is to deliver scalable SaaS solutions through Agile methodologies—offering clients a blend of experience, knowledge, and the right set of collaborative tools. To achieve this, I am committed to sharing my expertise on this blog with clients and readers across Europe, the UK, and the USA, empowering their businesses to flourish.