Ile zarabiają programiści i od czego faktycznie zależą ich zarobki?
30 Lis


W wielu z nas (mówię tu głównie o osobach z branży), sama rozmowa na temat programistów lub ich zarobków budzi powszechne wzburzenie. Dlaczego tak się dzieje i dlaczego ten zawód jest tak wysoko wynagradzany? Powodów jest co najmniej kilka. W niniejszym artykule postaram się przybliżyć najistotniejsze czynniki wpływające na wysokość zarobków programistów.

1. Mało kto potrafi to robić – analityczny i matematyczny umysł

Generalnie wszystkiego można się nauczyć, ale nie każdy jest w stanie być dobrym matematykiem czy informatykiem. Wielu odpada. Gdy rozpoczynałem studia na Wojskowej Akademii Technicznej, rektor uczelni na inauguracji zapytał jak wiele osób zamierza skończyć kryptologię. Rękę podniosło około 50 osób. Dodał wówczas zdanie: „Gratuluję odwagi.”. Myślę, że te słowa idealnie oddają rzeczywistość. Wiele się jednak zmieniło – nauka języka C kiedyś, a nauka języka np. Swift teraz to dwa odmienne byty. Mimo wszystko nie każdy jest w stanie poradzić sobie z natłokiem informacji na forach internetowych, językiem angielskim czy tutorialami na YouTube. Do tego potrzebna jest zdolność analitycznego, programistycznego myślenia. Kiedy posiądziemy już taką umiejętność – możemy spróbować swoich sił w programowaniu.

2. Umiejętność pracy z ludźmi i komunikatywność

Dobry programista Java’y, posługujący się biegle językiem angielskim oraz świetny w komunikacji (mało takich ideałów chodzi po świecie), jest w stanie zarabiać nawet powyżej 20.000 zł netto/msc i to bez najmniejszych problemów. Musi jednak wykazywać się rozumieniem potrzeb biznesowych klienta, musi wiedzieć jak prowadzić skype call’e z zespołem, w jaki sposób rozmawiać z klientem docelowym i jak chronić interesy przedsiębiorstwa, dla którego pracuje. Tylko dzięki temu ma szansę zostać docenionym i podnosić swoje oczekiwania finansowe. Niestety wielu programistów, bardzo dobrze przygotowanych merytorycznie, odpada już na samej rozmowie rekrutacyjnej gdyż pracodawca oczekuje czegoś więcej – mimo, że są świetnymi inżynierami to niewiele więcej wnoszą do ich interesu. Jeżeli dochodzi do wymiany zdań między programistą, a klientem przychodzi moment rozczarowania. Oczywiście typowy programista nie zawsze jest w kontakcie z klientem – często jego zadanie przejmuje lider zespołu i to ten powinien wykazywać się wysokimi umiejętnościami interpersonalnymi, niemniej jednak sama rozmowa w zespole jest równie istotna. Nie występują wówczas niepotrzebne spięcia między współpracownikami, marnowanie czasu na dodatkowe SCRUM’y lub co najgorsze – pomyłki skutkujące przepisywaniem danego fragmentu kodu na nowo.

3. Doświadczenie

Sama wiedza oraz komunikatywność to jednak za mało. Do zarabiania wysokich kwot tj. 15.000 zł – 25.000 zł netto miesięcznie, niezbędne jest doświadczenie. Nie mówię tu o doświadczeniu uzyskanym w pracy dla samego siebie lecz doświadczeniu komercyjnym. Przyda się także sprawna umiejętność pokazania swoich zalet na podstawie ciekawego CV oraz portfolio projektów. Osoby z mniejszym doświadczeniem zarabiają w tej branży mniejsze pieniądze – ich zarobki (zależnie od technologii) sięgają od 30 do 70 zł za godzinę pracy przy czym ich doświadczeni koledzy mogą liczyć na kwoty powyżej i dużo powyżej 100 zł netto za godzinę. Od czegoś jednak trzeba zacząć, więc jeśli jesteś Juniorem lub Middle’em – wybieraj ambitne firmy oraz ambitne projekty. Tylko po wejściu na głębokie wody masz szansę na rozwój.

4. Dokładność i szybkość

Drodzy programiści (mówię tu o osobach zarabiających blisko 20.000 zł netto miesięcznie lub więcej) to osoby przykładające dużą wagę do szczegółów. Nie są to programiści wyznający zasadę – „jak będzie coś nie tak to kolega z działu QA to wychwyci i najwyżej utworzy ticket w Jira’rze i bug będzie załatany”. Takie osoby często prześlizgują się w korporacjach, ale nie jest to strategia na dłuższą metę, a branża jest na tyle mała, że każdy szanujący się programista będzie bał się o swoją reputację (jeśli faktycznie jest dobry). Dobry (i co za tym idzie, często drogi) programista to osoba, po której testowanie produktu jest czystą przyjemnością ponieważ błędy są sporadyczne, oprogramowanie ma czysty i dobrze zakomentowany kod, wszystko stworzone jest zgodnie z obowiązującymi paradygmatami programowania w danej technologii. Takie osoby mają szansę na polecenie do innych, lepiej płatnych firm, a jeśli są do tego szybkie w swojej pracy mogą liczyć na wysokie premie.

Podsumowanie:

Dobry programista to programista szybki, dokładny, komunikatywny oraz doświadczony przez co skuteczny w działaniu. Tak uzdolniona osoba może liczyć na słone wynagrodzenie (powyżej 100 zł netto za godzinę pracy). Natomiast programista leniwy, wolny, niedokładny i sprawiający problemy przy najprostszych sprawach (robienie na złość pracodawcy, oszukiwanie, celowa niedokładność i brak empatii) to programista słaby, który owszem będzie zarabiał dla większości z nas duże pieniądze, ale są to pieniądze krótkoterminowe, a sam dodatkowo naraża się na utratę reputacji co skutkuje brakiem poleceń lub zleceń w przyszłości.

Co faktycznie motywuje naszych pracowników, a co sprawia, że czują się wypaleni?
26 Lis


Wielu z nas, managerów, pracowników wyższego szczebla, zastanawiało się przynajmniej raz w życiu nad tym co tak naprawdę motywuje naszych pracowników, a co sprawia, że z każdym dniem są coraz bardziej wypaleni i niezadowoleni z pracy jaką im oferujemy. Niewątpliwie faktem jest, iż biznesem jest człowiek – dobry pracownik jest wart dziesięciokrotnie więcej niż niejedno narządzie czy urządzenie. To on jest bowiem fundamentem pracy tych narzędzi i nadaje im odpowiedni tor działania. Jak więc dbać o swoich podwładnych aby z każdym dniem przychodzili do pracy z uśmiechem na ustach, a wychodzili jeszcze bardziej dumni zaliczając przy okazji słone nadgodziny? Odpowiedź nie jest jednoznaczna, przytoczę jednak 5 najważniejszych według mnie aspektów.

1. Nakreśl jasno sens pracy

Każdy, nawet najbardziej zmotywowany pracownik przestaje się starać i zacznie czuć się zdemotywowany w sytuacji, w której nie czuje sensu wykonywanej pracy. Sens ten jednak musi nadać dobry leader, manager zespołu – to on w rozmowie ze swoimi pracownikami określa tor, po którym nieprzerwanie i z pasją kroczy zespół. Każdy pracownik musi czuć, że wykonywana przez niego praca, z dnia na dzień, przyczynia się do wzrostu całości organizacji i osiągania coraz to lepszych wyników.

2. Zapewnienie rozwoju

Ważnym elementem całej układanki jest sam rozwój. Ambitni i dobrzy pracownicy wymagają od swojego zawodu nieustannego rozwoju. Chcą czuć się doceniani przez pracodawcę chociażby tym, że praca zapewnia im ciągły proces wzrastania i nauki, że zbliża ich do osiągnięcia samospełnienia zawodowego. Doskonałym dodatkiem będą tu wszelkiego rodzaju hackatony, darmowe lub opłacone przez firmę konferencje i szkolenia, a także treningi wewnętrzne organizowane przez firmę.

3. Odpowiedzialność za wykonywane zadania oraz bycie potrzebnym

Umiejętność pracodawcy do wywołania w pracowniku poczucia bycia ważnym i potrzebnym, a także umożliwienie mu podejmowania trudnych i strategicznych dla firmy decyzji jest nielada wyzwaniem. Tylko najlepszych leaderów stać na taki krok. Niesie to jednak za sobą niesamowite i pozytywne efekty – pracownik, który sam może podjąć niebagatelną decyzję oraz ma prawo zająć się sprawami strategicznymi i nietrywialnymi, utożsamia się z firmą i zaczyna traktować ją jako drugi dom. Spędza w niej więcej czasu, jest bardziej oddany i niechętnie zmienia taką pracę na inną. Odpowiedzialne zadania nakładane na pracownika przyczyniają się także do zwiększenia jego samooceny oraz większej pewności siebie, a to z kolei jest bardzo istotne w przypadku podejmowania trudnych decyzji. Bycie potrzebnym i docenianym przez pracodawcę to także skutek wykonywania ważnych dla firmy i odpowiedzialnych zadań.

4. Jasne reguły awansu i systemu premiowania

Jak pisał jeden z moich ulubionych autorów, Ben Horowitz w książce zatytułowanej „The Hard Thing About Hard Things” istotną rzeczą w pracy każdego dobrego managera jest jasny i zrozumiały dla wszystkich pracowników system awansowania oraz premiowania za osiągnięte wyniki. Każdy pracownik musi wiedzieć jaki kamień milowy w swojej karierze musi osiągnąć aby awansować na stanowisko wyżej oraz otrzymać tym samym wyższe wynagrodzenie. A więc jeśli Twój pracownik przyjdzie pewnego dnia do Twojego pokoju i zażąda podwyżki, upewnij się na pewno na to zasłużył i czy jest to odpowiedni moment. Jeśli tak nie jest, wskaż mu dokładnie jakie elementy w swojej pracy musi poprawić i co jeszcze osiągnąć zanim kolejny raz poprosi Cię o wyższe wynagrodzenie. Taki schemat działania pozwala na bycie bardziej szanowanym leaderem, ale też działa motywująco na pracownika.

5. Dobra atmosfera w zespole

Dobra atmosfera to nieodzowny element dobrej współpracy. Nadaj swojej organizacji, oprócz nawału pracy i obowiązków, także chwile na zacieśnienie relacji pomiędzy pracownikami oraz zadbaj o ich lepsze samopoczucie. Dzięki temu zyskasz bardziej lojalnych pracowników, którzy jeszcze ciężej wykonywać będą swoje obowiązki. Dokonać tego można na wiele sposobów. Jednym z najbardziej popularnych jest pizza i piwo w każdy piątek po pracy – ja w swojej poprzedniej firmie taką pizzę fundowałem sam z własnych środków i uwierz mi proszę – opłacało się. Przy okazji tworzyliśmy panel dyskusyjny, na którym poruszaliśmy tematy poboczne, ale też ciekawe rzeczy związane z firmą takie jak: usprawnienie pewnych procesów, słuchałem swoich pracowników z czym mają problem, co przynosi im radość, a co nie oraz dyskutowaliśmy co można zrobić, aby wszystkim pracowało się lepiej. Takie spotkania są niezwykle owocne, powodują, że zespół czuje się bardziej zjednany oraz morale teamu rosną. Fajnie jest też wyjechać gdzieś wspólnie ze współpracownikami – można zorganizować np. mecz w paintballa lub siatkówkę. Ja zabrałem swoich pracowników w góry na turniej piłki nożnej – była to niezwykła przygoda i sporo poprawiła w zespole.

6. Nie każ za głupoty, nie inwigiluj po głupiemu – oczekuj wyników

Bardzo często spotyka się managerów, każących swoich podwładnych za częste wychodzenie na kawę lub na papierosa. Ja sam osobiście zetknąłem się z ganieniem za często korzystanie z toalety co było już nielada przesadą. Jest to sposób zarządzania zespołem niezwykle nieefektywny. Zamiast karać – oczekuj wyników. Jeśli w Twojej organizacji musisz wyciągać konsekwencje za fakt iż pracownik wypił 5 kaw, a nie 3 – jesteś słabym analitykiem i niestety niezbyt wprawnym managerem. Dobrze prosperująca organizacja nie potrzebuje martwić się takimi rzeczami – każdy z pracowników rozliczany jest przed swoim przełożonym i samym z sobą, z twardych, ściśle określonych parametrów takich jak np. wysokość osiągniętej w danym miesiącu sprzedaży, ilość nowych kontraktów czy też wygenerowany dochód.

Podsumowanie:

Na temat poprawy warunków pracy jak i uzyskiwania lepszych wyników generowanych przez naszych pracowników można by pisać godzinami. Jest jednak coś co warto wiedzieć zawsze – słuchanie swoich pracowników pozwala na zwiększenie horyzontu myślowego. Pozwala jeszcze lepiej przyjrzeć się ich potrzebom i kierować organizację w ten sposób, aby każdemu pracowało się lepiej. Nie wolno jednak zapominać w tym wszystkim o tym, że organizacja ma się rozwijać i przynosić dochody, a więc dobro pracownika musi iść w pewnej synergii z dobrem samej organizacji.

Dobry i skuteczny IT Project Manager – jaki powinien być i jakie cechy posiadać?
13 Lis


Wiele projektów upada ze względu na złe zarządzanie. Nie ważne w jakiej branży działamy – czy budujemy autostradę biegnącą przez całą szerokość Polski, czy uczestniczymy w ważnym projekcie mobilnym. Początkowo każdy projekt składa się z szeregu niewiadomych, a naszym celem (dobrego PM’a) jest takie ułożenie procesów, aby ich analiza, planowanie oraz końcowe wdrożenie przebiegły bez problemów. Ryzykujemy przecież utratą klienta czy reputacją firmy. Project Manager to stanowisko bardzo odpowiedzialne w pracy każdego development house’u. Nie każda osoba jest gotowa by objąć to stanowisko i warto mieć tego świadomość. Bazując na doświadczeniu, przedstawiam poniżej 5 cech, moim zdaniem najcenniejszych, które powinien posiadać dobry Project Manager.

1. Posiada cechy przywódczcze

Dobry PM jest szanowany w zespole. Optymistycznie patrzy na zespół oraz jego wyniki, zachowując jednak dystans do wszystkich interesariuszy. Potrafi krytycznie spojrzeć na cały projekt i nie waha się wyrazić swojej (czasem w sposób dosadny) opinii na dany temat. Dobry PM rozumie zespół i jego trudności, potrafi szybko pomóc w rozwiązywanu problemów oraz reagować na zaistniałe sytuacje. Zespół wie, że czuwa nad nim “opatrzność” i dzięki temu jego motywacja rośnie wraz z efektywnością.

2. Słucha i pyta

Nie bez powodu uważa się powiedzenie “mowa jest srebrem, a milczenie złotem” za jedno z najważniejszych, gdyż właśnie w myśl tej zasady kieruje się większość dobrych project managerów. Wysłuchanie interesariuszy, a następnie dogłębna analiza danych uzyskanych z wywiadu pozwalają krytycznie oceniać sytuacje, patrzeć na projekt bardziej “horyzontalnie” oraz dostrzegać niewykorzystany potencjał zesobów ludzkich.

3. Dba o relacje

Zarówno końcowy klient jak i zespół wymagają dobrej atmosfery pracy, w przeciwnym razie dochodzi do niepotrzebnych spięć co nie wpływa pozytywnie na projekt. Każda strata czasu w projekcie, a także problemy w komunikacji z klientem powodują opóźnienia oraz niezadowolenie obu stron – klient zaczyna się denerwować i być mniej zadowolony z naszych usług, a zespół traci motywację przez co spada jego efektywność.

4. Lubi szczegóły

Bez wątpienia jedną z kluczowych cech dobrego project managera jest zdolność patrzenia na projekt przez pryzmat szczegółowości. Każda nowa CR’ka (change request), każdy task, każdy bug wymaga skupienia i uwagi project managera. Developer ma za zadanie programować, a złą interpretację tego co ma zaprogramować możemy zarzucić nie jemu, ale PM’owi który nie odrobił pracy domowej i nie zapytał klienta jak faktycznie ma działać dana funkcjonalność. Oczywiście nie jest tak, że projekt manager zna na pamięć wszystkie zadania interesariuszy, ale ma świadomość jak ważne jest skupienie swojej uwagi na szczegółach – to z nich często rodzą się największe inspiracje, ale i problemy.

5. Utrzymuje jakość, dba o budżet, trzyma się deadline’ów

W przypadku problemów – dobry PM powinien reagować natychmiast. Każda strata czasu to koszty dla firmy developerskiej, a dla klienta opóźnienie w oddaniu projektu. Zapewnienie jakości to klucz do dobrego produktu. Dokonać tego można dzięki odpowiedniej komunikacji w zespole, proponowaniu dobrych rozwiązań klientowi, szybkiej reakcji na błędy. Sprawne zarządzanie czasem i budżetem klienta jest możliwe jeśli zapewnimy codzienną komunikację, daily standupy (informacje dla klienta o tym co zostało zrobione i co dziś będzie zrobione) oraz weekly demo (pokazanie klientowi wersji demonstracyjnej projektu zawierającej wykonaną pracę z całego tygodnia).