Czytaj

arrow pointing down

Senior engineer – czy każdy może nim zostać?

Czy każdy może zostać senior engineerem? W artykule wymieniamy 10 cech dojrzałego starszego inżyniera. Sprawdź, kto nadaje się na to stanowisko!

Nie istnieją dziś standardowe drogi do awansu. Choć można podjąć karierę jako inżynier po wyższej uczelni technicznej i szybko awansować, to jest wielu programistów, którzy osiągnęli status „seniora” bez specjalistycznego wykształcenia. Niezależnie od ścieżki kariery, istnieją znaczące różnice  – techniczne i nietechniczne – świadczące o dojrzałości inżynierskiej. Warto zwrócić na nie uwagę, decydując, kogo awansować lub zatrudnić na wyższe stanowiska

Juniorzy powinni czerpać inspirację z kodu innej osoby – to szansa na zdobycie cennego doświadczenia

W obecnych czasach inżynieria oprogramowania wymaga tak wielu umiejętności, że trudno o określoną definicję czy jedyny słuszny wzorzec kompetencji starszych inżynierów. Nie ma też klasycznej ścieżki do awansu na to stanowisko – jedne firmy IT stosują sztywną drogę do kariery, w innych zaś nie ma rygorystycznych procedur. Tym bardziej żaden inżynier nie budzi się pewnego dnia jako „senior” tylko dlatego, że jego tytuł odzwierciedlił awans.

Istnieje jednak umowny poziom profesjonalizmu, którym powinien wykazać się pretendent do tytułu „starszy”. To właśnie ich wiedza i doświadczenie niejednokrotnie decydują o powodzeniu projektów, zespołów, a nawet firm, a posiadanie ich w grupie jest podstawą sukcesu. Co więc oznacza bycie senior engineerem?

Funkcja stażu pracy i doświadczenia

Gdy ktoś zaczyna pracę jako programista, z czasem dostrzega coraz więcej interesujących i przydatnych narzędzi. Trudno jednak od razu wiedzieć, kiedy i w jakich okolicznościach zastosować metody sprawdzone, a kiedy zaryzykować i spróbować czegoś nowego. Rozwijanie w sobie umiejętności programistycznych wymaga czasu i doświadczenia w pracy nad rozmaitymi projektami i z różnymi osobami. Tak zdobywa się wiedzę i dysponowanie narzędziami do diagnozowania i rozwiązywania problemów.

Nowicjusze kontra eksperci

Starsi inżynierowie niekoniecznie piszą wolny od błędów kod, ale są w zawodzie wystarczająco długo, aby zdać sobie sprawę, że nie można o nim wiedzieć wszystkiego. Wiedzą natomiast, kiedy na przykład czegoś nie robić i jak unikać ryzyka. Nowi inżynierowie powinni czasem inspirować się cudzym kodem, choć może im się to wydawać nieciekawe i monotonne. Jednak, by osiągnąć wysoki poziom profesjonalizmu i zdobyć doświadczenie, warto zaakceptować i docenić tę praktykę.

Nowicjusze

  • Sztywno trzymają się harmonogramu lub planu
  • Działają z perspektywy opartej na wiedzy i racjonalności
  • Są świadomi i analityczni, przez to wolniej działają, decydują lub wybierają
  • Mają małą lub ograniczoną percepcję sytuacyjną
  • Działania opierają na atrybutach i aspektach

Eksperci

  • Działają w oparciu o doświadczenie i wypróbowane metody
  • Widzą dany problem w szerokim kontekście
  • Dostrzegają odchylenia od norm i wzorców
  • Nie polegają na zasadach, wytycznych ani maksymach
  • Intuicyjnie postrzegają sytuację
  • Podejście analityczne stosują tylko w nowych sytuacjach

„Pokolenie X (a tym bardziej pokolenie Y) to kultury natychmiastowej gratyfikacji. Pracowałem z oszałamiającą liczbą inżynierów, którzy oczekują, że „ścieżka kariery” zaprowadzi ich na najwyższe stanowiska w grupie inżynierów w ciągu 5 lat tylko dlatego, że są inteligentni. […]

Nie każdy może być starszy. Jeśli po pięciu latach jesteś seniorem, czy jesteś u szczytu swojej gry? Czy po kolejnych pięciu latach nie zdobędziesz cenniejszego doświadczenia? […]” – pisze John Allspaw w książce Web operations – keeping the data on time.

Starszy inżynier to dojrzały inżynier

Autor powyższych słów, powołując się na opinie z życia, obserwacje profesjonalistów i ekspertów, stworzył na swoim blogu kitchensoup.com jedną z najciekawszych analiz „starszego ”. Co ciekawe, poza stażem pracy i nabytymi umiejętnościami technicznymi, bierze na warsztat kompetencje pozatechniczne, dogłębnie się im przyglądając.

Aby nie mylić tytułów z mglistymi oczekiwaniami, mówiąc o starszych inżynierach odnosi się do dojrzałości inżynierskiej: „Istnieją obszary techniczne, w których dojrzały inżynier powinien mieć pewien poziom biegłości lub zrozumienia, których nie ma nowicjusz”. Zgodnie z przeprowadzoną analizą wyróżnił 10 cech i dobrych praktyk dojrzałych inżynierów.

10 cech dojrzałego senior engineera:

1. Rozumieją w pracy wartość obszarów nietechnicznych

Dojrzali inżynierowie wiedzą, że bez względu na to, jak kompletne i eleganckie są ich projekty, nie będzie to miało znaczenia, jeśli nie będą umieli współpracować. Na protekcjonalności, umniejszaniu czy wywyższaniu się nic nie zbudują. Częścią satysfakcji z inżynierii jest cieszenie się towarzystwem ludzi, z którymi pracujesz podczas projektowania i budowania. Dojrzali inżynierowie mają samoświadomość, jeśli chodzi o komunikację. 

Istnieje zasadnicza różnica między krytyką ludzkiego charakteru a krytyką produktu pracy.

2. Szukają konstruktywnej krytyki swoich projektów

Oznacza to, że mają pojęcie o tym, gdzie mogliby być lepszymi i nieustannie proszą kolegów i menedżerów o sprawdzenie, jak sobie radzą. Zaś inżynier odnoszący sukcesy, kończąc projekt lub przygotowując się do projektu, zadaje sobie i innym dużo pytań w rodzaju: „Nawet jeśli jest to technicznie poprawne, czy jest wystarczająco zrozumiałe, aby reszta mogła to obsługiwać, rozwiązywać problemy i rozszerzać ją?”, „Czy coś mogłem przegapić?”. Są otwarci na krytykę. Wiedzą, że nic, co robią, nigdy nie będzie w ich rękach, a wzajemna ocena pozwala podejmować lepsze decyzje projektowe.

Stopień, w jakim inni chcą z tobą pracować, jest bezpośrednim wskaźnikiem tego, czy odniesiesz sukces w karierze – bądź więc inżynierem, z którym każdy chce pracować.

3. Nie boją się dokonywania szacunków

Wszystkie firmy opierają się na planach i szacunkach, a wszyscy inżynierowie pracujący nad projektem są zaangażowani we wspólne działania. Oznacza to, że ​​mają wobec innych obowiązek być przewidywalnymi. Z Niepisanych praw inżynierii: „Obietnice, harmonogramy i szacunki są niezbędnymi i ważnymi instrumentami w dobrze zorganizowanym biznesie.

Wielu inżynierów nie zdaje sobie z tego sprawy lub próbuje uniknąć uciążliwej odpowiedzialności za podejmowanie zobowiązań. Należy składać obietnice w oparciu o własne szacunki dotyczące tej części pracy, za którą jest się odpowiedzialnym, wraz z szacunkami uzyskanymi od działów współpracujących za ich części […]”.

Unikanie odpowiedzialności za szacunki to inny sposób powiedzenia: „Nie jestem gotowy, aby polegać na budowaniu krytycznych elementów infrastruktury”. 

4. Mają wrodzone poczucie przewidywania

Po napisaniu kodu niejeden inżynier mógłby powiedzieć: Ten kod wygląda dobrze, jestem z siebie dumny. Dojrzały inżynier prosi jednak inne osoby, aby go przejrzały i zbiera ich opinie. Zadaje sobie kolejne pytania: jak jego wykonanie wpłynie na zużycie zasobów po uruchomieniu? Jakiego wzrostu lub spadku mocy procesora/pamięci/dysku/sieci mogę się spodziewać? Czy inni będą w stanie zrozumieć ten kod?

5. Rozumieją, że nie wszystkie ich projekty są pracą na scenie

Bez względu na to, jak ekscytujący i ciekawy jest projekt, zawsze są też te bardziej monotonne zadania do wykonania. Takie, które mniej dojrzały inżynier może uznać za poniżej swojej godności lub stanowiska. „Czasami zbawczą łaską żmudnego zadania jest ich prostota i dojrzałość przejawiająca się w szybkim ich zakończeniu i przejściu dalej. Czasami zadania są żmudne, ponieważ wymagają ekstremalnej dyscypliny i elastycznej koncentracji uwagi. Jest takie dziwne zjawisko, że najbardziej monotonne zadania, które mogą wykonać tylko starsi inżynierowie, mogą być również najbardziej przerażające” (Kellan Elliot-McCrea, dyrektor ds. technicznych Etsy). 

Dla dojrzałego inżyniera sukces projektu stoi znacznie wyżej niż potencjalne pochwały, jakie osobiście może otrzymać za pracę nad nim – nie przedkłada własnego wkładu nad sukces zespołu.

6. Podnoszą umiejętności i wiedzę otaczających ich osób

Aby osiągnąć postęp, starszy inżynier powinien mieć zdolność jasnego przekazywania szczegółów innym. Nie musi świetnie występować publicznie, ale być w stanie przekazać swoją opinię młodszym inżynierom, z którymi pracuje. To jest gra zespołowa – nikt nie stanie się dobry bez możliwości wyrażania swoich pomysłów i angażowania innych. „W Etsy nazywamy to „hojnością ducha. To jedna z naszych podstawowych wartości, ale także główny obowiązek naszego stanowiska inżyniera sztabowego, na poziomie kariery”, mówi Elliot-McCrea.

„Starsi” zdają sobie sprawę, że najlepsze osiągnięcia inżynieryjne na świecie są wykonywane przez zespoły, a nie przez pojedynczych genialnych i samotnych inżynierów.

7. Rozumieją różnicę między mentoringiem a sponsoringiem

Wielu odnoszących sukcesy inżynierów niejednokrotnie pamięta mentora, który nauczył ich, co znaczy być dobrym programistą. Niezależnie od tego, czy leży to w zakresie stanowiska, czy nie, seniorzy stają się "mistrzami" dla juniorów. Ćwicząc tę umiejętność, mogą okazać się nie tylko pomocni, ale też wyrównywać poziom całego zespołu. Gdy widoczność i wartość ich pracy rośnie, fundamentem wywierania wpływu na otoczenie jest rodzaj sponsorowania osób w jego obrębie. Rozwijanie go rodzi wielorakie korzyści. 

8. Podejmując osądy i decyzje, jasno określają kompromisy

Zdają sobie sprawę, że wszystkie decyzje inżynieryjne, wdrożenia i projekty istnieją w pewnym spektrum. Mogą szybko wskazać konteksty, w których konkretne podejście lub rozwiązanie może działać, a w których nie. Wiedzą, że trudno być jednocześnie skutecznym i dokładnym, bo praca istnieje na granicy optymalności i kruchości.

Na późniejszym etapie życia projektu, gdy oryginalny projekt nie jest już skalowany lub wymaga wymiany czy przepisania, potrafią spojrzeć wstecz już nie z perspektywy wcześniejszych decyzji. I zamiast tego powiedzieć: „dotarłem tak daleko i wiedziałem, że w pewnym momencie będziemy musieli go rozszerzyć lub zmienić”. 

Zrozumienie, co jest, a co nie jest„ przedwczesne ”, jest tym, co odróżnia starszych inżynierów od młodszych inżynierów.

9. Są empatyczni i wiedzą, jak ważne są uczucia innych

W złożonych projektach jest zwykle wielu interesariuszy. W każdym projekcie projektanci, menedżerowie produktu, inżynierowie operacyjni, programiści i osoby zajmujące się rozwojem biznesu mają różne perspektywy. Dojrzali inżynierowie zdają sobie sprawę, że ich cele i poglądy mogą być różne.

Bycie empatycznym w tym sensie oznacza posiadanie zdolności spojrzenia na projekt z perspektywy innej osoby i wzięcia tego pod uwagę we własnej pracy. Empatia może pomóc zrozumieć, co inna osoba w zespole myśli o tej technologii czy decyzji technicznej. Dojrzali inżynierowie wiedzą o tym i odpowiednio się dostosowują. 

Konflikty celów są nieodłączną częścią każdej pracy inżynierskiej, a narzekanie na nie, zamiast traktować je jako warunek sukcesu, jest oznaką mniej dojrzałego inżyniera.

10. Zdają sobie sprawę z błędów poznawczych

Uprzedzenia poznawcze (emocje, myśli, przekonania), mogą w pewnym momencie ograniczyć rozwój kariery inżyniera. W kontakcie z członkami zespołu zdarza się być ich nieświadomym, gdy interpretuje się dane w sposób, który zaprzecza faktom. W efekcie może mieć zaskakujący wpływ na to, jak wykonuje się pracę i pracuje nad zespołem.

Można sobie nie zdawać sprawy, gdy się pojawiają lub nie wiedzieć, jak się przed nimi ustrzec, ale większość dojrzałych inżynierów ma taki poziom samoświadomości, że przynajmniej rozpoznaje, że są na nie podatni.

Podsumowanie

Jak w przypadku większości dziedzin technicznych, im dłużej coś się praktykuje, tym jest większe prawdopodobieństwo, że narodzi się profesjonalista. Ale to nie wystarczy. W dzisiejszych czasach technologia tak szybko się zmienia, że stale trzeba się uczyć i być na bieżąco.

Starsi inżynierowie odnoszący sukcesy nigdy nie zakładają, że wiedzą wszystko, mają świadomość, że powinni być na bieżąco z najnowszymi aktualizacjami technologicznymi, by zapewnić najlepszą wartość i jakość pracy. Na szczęście inżynierowie są z natury ciekawi zrozumienia, jak coś działa. To daje im naturalną zdolność uczenia się, umożliwia rozwój i budowanie kariery. 

Powiązane artykuły

Metody zarządzania projektami IT – tradycyjne, czyli kaskadowe

Metody zarządzania projektami IT dzielimy na kaskadowe i zwinne. Przeczytaj o tych tradycyjnych (kaskadowych), jak Waterfall czy PRINCE2.

Web Content Accessibility Guidelines – produkty cyfrowe zgodne z WCAG

Co to jest dostępność sieci oraz WCAG? Jak ułatwić korzystanie z internetu osobom niepełnosprawnym? Przeczytasz w tym artykule.