Świadome pozostanie programistą vs. "promocja" na managera

Fajna dyskusja wynikła na Reddicie pod linkiem do jednego blogposta:

Od dłuższego czasu mówię, że nie zamienię kodowania i konieczności użerania się z maszyną na “marketing i zarządzanie” i konieczność użerania się z półmózgami. Zdania na Reddit są podzielone.

A Wy, jak myślicie? Wystrzelić “w menadżery” tak szybko jak to możliwe, czy pozostać w świecie programowania? :slight_smile:

Jestem grafikiem i programistą, do tego kilkoma innymi rzeczami się zajmuję…

Chcesz być menadżerem w Polsce?
Za rok będziesz programistą i menadżerem, a zgadnij ile zarobisz? Jako programista masz wolność, możesz się odwrócić na pięcie i zająć się swoim, jako menadżer to nie będzie takie łatwe i w pewnym momencie wpadniesz w wiry maszyny biurokratycznej już dużej lub rozwijającej się firmy. Dopóki nie jesteś współwłaścicielem, to nagle zaczniesz podlegać prawom “kadr”, nie będziesz się mógł skupić na jednym i drugim, będziesz musiał pozostać przy jednym, skończy się to tak, że jak się obudzisz - będziesz następnym pracownikiem biurowym na wyższym stopniu, a ludzie z którymi żyłeś na dobrej stopie uciekną albo będą Cię traktować jak trendowatego. I czego zupełnie nie życzę, to spotykać dobrego starego kumpla prezesa, którego nagle owładnie mania wyższości i powiesz mu “dzień dobry panie prezesie”.
Znam z doświadczenia.

:smiley: melodramat

edit: po przemyśleniu, a może to ostatnia iskierka nadziei na jakość zarządzania :slight_smile:

Miałem okazję obserwować jak wygląda rozwój z programisty na managera w sporej firmie i nie wyglądało to ciekawie. Na początku zachłyśnięcie władzą i (niewielką) podwyżką. Później przyszła rzeczywistość: praca po godzinach, dłubanie w MS Project, świecenie oczami przed ‘górą’ i fale lekceważenia z ‘dołu’.

Managerem trzeba umieć być - mało który programista ma potrzebną wiedzę i charakter, żeby zarządzać ludźmi i jednocześnie radzić sobie z szefostwem. Niestety łatwo wpaść w pułapkę o której wspomniał Wojtek: ‘będę lepszym managerem niż poprzedni’. Tymczasem poprzedni najprawdopodobniej też wcześniej był programistą.

Dobry manager zna się na programowaniu tyle, ile nauczą go o nim podwładni. Musi wtedy ich słuchać - bo sam w tym temacie nie ma wiedzy - i tworzy dobry zespół, gdzie programiści są doradcami a on sam jedynie koordynatorem.

Programista na stanowisku managera sam ‘wie lepiej’ co trzeba robić - ale brak mu umiejętności do zarządzania ludźmi. Efekt jest taki, że zamiast zarządzać próbuje myśleć za podwładnych, co przynosi dużo złego dla obu stron.

Jak jesteś dobrym programistą to programuj. Jak chcą Ci dać stanowisko managera to grzecznie podziękuj i poproś w zamian o podwyżkę. Jeśli podwyżka łączy się jedynie z ‘promocją’ na managera to albo zrezygnuj z kodowania i idź na studia wieczorowe marketingu i zarządzania. Albo zmień firmę na taką, w której szanują specjalistów.

Wow, jaka zgodność.

Ciężko mi cokolwiek napisać o własnych obserwacjach menedżerów, którzy byli programistami – bo jedyne obserwacje jakie mam pod tym względem to management firmy, w której aktualnie pracuję. Widzę, że chłopaki bardzo się starają być dobrymi managerami (nie mają też “góry”, przed którymi mieliby świecić oczami, tylko klientów :wink: ), nadrabiają z książek braki wykształcenia menedżerskiego. Jako eks-programiści* wiedzą, jak skomplikowany jest development i co robić, żeby programiści mieli dobre środowisko do twórczej pracy. Natomiast szkoda mi, że już nie kodują, bo byli jednymi z najlepszych programistów, jakich dane mi było poznać.

  • – chociaż ostatnio słyszałem że hobbystycznie jeszcze sobie coś kodują, więc może trochę przesadziłem z tym określeniem :wink:

Mam kilka rodzajów doświadczeń z programistami którzy zaczęli kierować, więc nie można tutaj mówić o jakimś standardowym upupieniu.

  1. Człowiek który nie ma zielonego pojęcia tak naprawdę o jednym i o drugim: efekt strata 4 mln złotych na projekt z góry skazany na niepowodzenie (brak rozeznania na rynku, nie kierowanie się logiką tylko wymyślanie tego co mu się wydaje dobre i potrzebne)

  2. Człowiek który świetnie sprawdził się w jednym i drugim: uderzyło do głowy przekonanie o własnej wartości, w efekcie ciągłe spory i niechęć do pracy pod nim jego podwładnych, duża rotacja w firmie i słabe efekty.

  3. Menedżer który programuje i kieruje: efekt nie wyspany no-life harujący po 20 godzin dziennie, w niczym tak naprawdę nie wystarczająco dobry, chociaż koncentrując się na jednym może mieć doskonałe rezultaty (wojna między pozycją a naturą - menedżer:programista)

  4. Człowiek który świetnie sprawdza się tu i tu, doskonały szef, pozwala na pracę w domu, wyrozumiały gdy w grę wchodzą czynniki życia prywatnego jego pracowników, motywujący i wymagający, niezwykle cierpliwy i poświęcający się, ludzie go naprawdę szanują i chcą z nim pracować, dodatkowo wie co jest możliwe co nie, pozostawia duże pole do popisu podwładnym i ufa im dając duże możliwości w podejmowaniu decyzji, konsultuje się z podwładnymi i mimo że zna doskonale technologię, jest świadom tego że zarządza a nie programuje, więc się nie wtrąca.

Ostatni przypadek jest idealny i mieć takiego lub być takim życzę każdemu :slight_smile:

To ja coś napiszę z punktu widzenia managera-ex-developera.

Po pierwsze management to zupełnie inny rodzaj pracy i wymaga zupełnie innych skill setów. Ktoś kto chce zostać managerem musi sobie z tego zdawać sprawę i przede wszystkim musi to lubić. Kilka kluczowych spraw:

Dystans - manager jest narażony na ataki z każdej strony, więc musi mieć dużo większy dystans niż specjaliści pracujący bezpośrednio przy projekcie. Inaczej po paru tygodniach stanie się wiecznie sfrustrowanym wrakiem człowieka.

Komunikacja - tutaj potrzebne są skille na BARDZO wysokim poziomie, zwłaszcza kiedy pracuje się z totalnie nietechnicznym klientem i trzeba bardzo jasno i wyraźnie opisywać rzeczy. Wymaga duuużo cierpliwości i wyrozumiałości.

Radzenie sobie ze stresem - manager jest atakowany przez wszystkich. Jest łącznikiem między designerami, developerami, klientami i wszystkimi, którzy biorą udział w projekcie. Nie ważne jak wredny jest klient, manager musi go wysłuchać i wyłapać konstruktywne rzeczy i odfiltrować te niepotrzebne, zachowując przy tym spokój. Później jeszcze trzeba to przekazać teamowi.

Różne punkty widzenia - tutaj bardzo ważny jest balans pomiędzy interesami klienta, interesami teamu, interesami firmy i interesami własnymi. Trzeba wyczuć w którym momencie czego bronić tak, żeby klient był zadowolony, team miał realne cele, firma zarobiła i żeby samemu nie zwariować :wink:

Rezygnacja z developerki - jak ktoś słusznie zauważył, jednoczesne zarządzanie projektem i programowanie jest bardzo trudne i ryzykowne. W 99% przypadków po prostu się nie opłaca. Jeżeli manager jednocześnie programuje, zazwyczaj ani nie ma dystansu, ani zbalansowanych poglądów, ani nie ma czasu popracować nad innymi aspektami.

Świetne skille organizacyjne - o ile developerzy zazwyczaj dobrze radzą sobie z organizacją swojej pracy, manager musi umieć organizować nie tylko swoją pracę ale też ludzi dookoła. Musi pamiętać o setkach szczegółów (a przynajmniej umieć je zanotować w taki sposób, żeby się nie zgubiły) i dynamicznie dostosowywać plany do zmieniających się warunków.

To oczywiście tylko kilka z długiej listy problemów jakie mogą się pojawić. Część z nich opanowałem przed przejściem na management, część niestety długo po, a części nadal nie opanowałem tak do końca :slight_smile:

No i najważniejsze - nikt nie powinien być zmuszany do “awansu” na managera. Jeżeli chce to robić, jest na to gotowy i ma wmagane skille - ok, ale totalną głupotą jest zmuszanie kogoś do czegoś, czego nie chce robić. Jak już mówiłem to jest zupełnie inny rodzaj pracy, wymaga innego spojrzenia i innego podejścia i nie każdy chce się za to brać i nie każdy będzie się w tym czuł dobrze.

Wciąż nie rozumiem co Ty w tym widzisz, Robzon :wink: Ale skoro Tobie się podoba, a firma działa i rozwija się jak trzeba :smiley:

Bardzo fajna dyskusja na Reddicie na temat: