Cześć,
Piszę ten post ku przestrodze dla innych programistów, takie swego rodzaju wyznanie, może i artykuł. Nie mam bloga ani nie mam możliwości pisać na forach, ale mam nadzieję że przynajmniej tutaj ktoś to przeczyta.
Chciałbym w ten sposób ukazać, jak środowisko i kultura pracy w dwóch różnych firmach może wpłynąć na nasz stan emocjonalny, poziom stresu i nerwów. W pewnym sensie też dać do zrozumienia, że problemy nie zawsze leżą po naszej stronie i to nie jest tak do końca, że "z nami" coś jest "nie tak", czy że jesteśmy "słabi". Często tutaj na forum widziałem wpisy, gdy ktoś narzekał na coś to od razu było że albo jest słaby na przykład, bo sobie nie daje rady. Sam też nie byłem świadom jakie to życie jest zróżnicowane i jak wciąż wiele jeszcze mogę się nauczyć w mojej karierze, życiu zawodowym. Może przejdę teraz do trochę do opisania moich doświadczeń.
Pracowałem dość długi okres czasu jako kontraktor w jednej z firm gdzie zespół stanowiło 4-6 programistów Java Developerów oraz na ich czele stał tzw. Technical Manager/Software Development Manager. Różne są tam nazwy. W każdym razie osoba ta była już poziom wyżej, nie był to lider, ale ktoś z kadry managerskiej. Mógł zwalniać, zatrudniać, dawać uwagi, oceniał wydajność - performance. Ja wtedy byłem oddelegowany do takiej firmy jako kontraktor/podwykonawca z kontraktornii. Tak naprawdę wszyscy programiści byli konktraktorami, a ten Manager był z firmy w której pracowaliśmy. Metodyka pracy jaką stosowaliśmy to był Scrum. Tenże także Manager prowadził tego Scruma, był takim Scrum Masterem. Warto też zaznaczyć, że nieraz brał jakieś taski na siebie czy robił review kodu. Czyli tak naprawdę nasz manager pełnił funkcję managera.
Ja do tej firmy byłem oddelegowany jako konktraktor i od zawsze byłem nauczony pracy zespołowej, gdzie wszyscy traktowaliśmy się "równo". W ogóle konktraktornia w której pracowałem, opiekun w niej często używał słowa "klient" gdy opowiadał mi o tym managerze. Już wtedy zapaliła mi się lampka, że dziwne trochę, że on na niego mówi klient, skoro de facto razem z nim pracuję, jak z kolegą w zespole. Ostrzeżono mnie także, że jeżeli będę mieć jakieś uwagi, zastrzeżenia co do pracy, czy atmosfery w zespole to by wszystko najpierw kontaktować z opiekunem w kontraktornii. To, że miałem managera u "klienta" nie miało znaczenia. Nie mogłem mu nic mówić co uważam, co bym zrobił, ba, nawet zwracać uwagę. Dowiedziałem się także, że mój opiekun z konktraktornii spotyka się raz na miesiąc z tym Managerem i rozmawiają o mnie jak się sprawuję.
Jak możecie się domyślić, ten Manager od klienta dość szybko się rozsierdził i zaczął uprawiać "micro-management". Zaczęło się od niewinnych pytań na Teams "co robię, na kiedy coś skończę". Prosił np. na Teams pomimo tego, że byłem w trakcie developmentu zadania backendowego bym wypchnął brancha pod koniec dnia. Z tego co się potem dowiedziałem od kolegów pisał też tak do innych. Po prostu każdego dnia chciał widzieć co kto robi i jaki jest progress pod koniec dnia.
Kolejną rzeczą która mi się rzuciła w oczy to to, że jeżeli on coś napisał w review (używaliśmy Bitbucket) to nie można było z nim dyskutować z racji tego że był Managerem. Dochodziło do tego, że musieliśmy pisać kod tak jak on chce. Było to bardzo irytujące, ale chyba zrozumiecie mnie, że jest lekki strach stawiać się swojemu "kierownikowi/klientowi/Managerowi". I to nie było tylko, że ja tak miałem, ale widziałem to po innych programistach, że jeżeli on coś napisał to od razu była zmiana bez żadnej dyskusji. Nawet jak ten sposób był ujowy.
Tak samo brał udział w estymatach zadań podczas Scrum Pokera, zbijał estymaty nieraz albo mówił że coś można zrobić szybciej i ciężko było dyskutować.
Kultura pracy w tej firmie u klienta też była dziwna, dlaczego? Otóż ja ze swoim doświadczeniem mam 6 lat doświadczenia jako Java Developer + Angular zostałem zmuszony do robienia zadań DevOpsowych/Analizy Biznesowej. Ode mnie jako programisty wymagano w tym projekcie bym stawiał infrastrukturę na GCP używając Terraform.
Pomimo, że byłem zielony w tych tematach miałem np. task - Postaw cluster Kubernetesa za pomocą Terraform na GCP. Następnie taki task braliśmy na Sprint i estymowaliśmy. Nie można było dać więcej niż 8 Story Pointów więc każdy np. dawał te 8 Story Pointów. Potem ten task był brany na Sprint i Manager egzekwował czy zostanie skończony w Sprincie, wywierał presję i ściśle kontrolował jak idą pracę.
U mnie dochodziło do takich sytuacji, aż wstyd mi o tym mówić, ale jak miałem takiego taska to siedziałem dwa tygodnie po 10h dziennie i także w weekendy jak był czas wolny uczyć się z Terraforma i GCP by jakimś cudem dowieźć taska pod koniec Sprintu. No i teraz wiem, że sporo osób pomyśli, że to zarzutka ale ja robiłem to dobrowolnie. Po prostu bałem się nie dowozić, a miałem sytuację, że nie chciałem być zwolniony.
Tak to nie jest zarzutka, ja naprawdę piszę całkiem serio.
Ogólnie ta sytuacja, brak jasno określonych granic odpowiedzialności, praca jako one-man-army skutkowała tym, że zacząłem palić papierosy, jeść niezdrowo, pić alkohol i ogólnie podupadłem na zdrowiu.
Miałem np. myśli, że jestem "słaby", że coś ze mną "nie tak". Nie potrafiłem się postawić, jakoś przemóc. W końcu się zwolniłem bo po prostu miałem dość tego. Nie dawałem rady już psychicznie. Głównie to.
Teraz część pozytywna tej historii. Nauczony poprzednim doświadczeniem z kontraktornią i micromanagerem, robieniem jako one-man-army zdecydowałem się szukać firmy z polecenia i robić dokładną analizę. Postawiłem sobie także za cel zatrudnić się na Umowie o Pracę jako natywny pracownik. Po około 3 miesiącach poszukiwań pracy udało mi się zatrudnić w firmie produktowej, około 500 osób. Na rozmowie będąc doświadczony i nauczony poprzednią firmą stwierdziłem, że będę pytać o wszystko. Pytałem jak wygląda organizacja pracy, kto będzie moim przełożonym, czym dokładnie będę się zajmować oraz jakie będę mieć obowiązki. Ile osób będę mieć w zespole, oraz jak prowadzony jest Scrum.
Na rozmowie mi powiedziano, że będziemy pracować we dwójkę z innym Seniorem nad rozwijaniem/utrzymywaniem aplikacji napisanej w Javie/Angularze. Powiedziałem, wtedy co w przypadku infrastruktury i wtedy mi powiedziano, że za infrastrukturę jej stawianie, utrzymywanie odpowiadają DevOpsi i z nimi mam się kontaktować gdy coś nie działa. Ja jako Developer fajnie bym umiał się poruszać po Kubernetesie i czytać, analizować Logi. Tak naprawdę mam robić Javę i Angulara. Po długich namysłach stwierdziłem, kurdę wydaje się spoko robota. Biorę. Niestety zarobkowo już nie jest tak dobrze jak na B2B bo jestem na UoP za 20k brutto. Ale mój wpis jest o zdrowiu psychicznym i emocjonalny.
Gdy dołączyłem do nowego projektu okazało się że będę pracować z Bartkiem, devem w moim wieku w sumie co było śmieszne. Tak się zgadaliśmy, że de-facto robimy teraz nieraz pair-programming, wyceny robimy wspólnie. Na nasz zespół przypada jedna analityczka która wie dosłownie wszystko, nic nie robię na domyślanie się. (w poprzedniej firmie nie miałem tego komfortu). W tej firmie mam managera, ale z nim spotykam się tylko raz na miesiąc pogadać co tam u mnie. Zero stresu.
Praca wygląda tak, a trwa to już ponad rok, że mamy raz w tygodniu spotkanie z Product Ownerem i on mówi co trzeba zrobić. Następnie dostajemy taki od Analityczki i na Refinemencie mówimy ile co mniej więcej będzie trwało w Story Pointach i robimy dwa tygodnie. Review w zespole są szybkie, nie ma żadnych zgrzytów. Ja panowie po prostu czuje że odżyłem.....
Taka sytuacja trwa już ponad rok i chyba trafiłem do pracy, takiego mini-nieba. Zadania które mam głównie robić dotykają moich umiejętności, specjalności to jest Java i Angular oraz SQL. Nie tykam w ogóle DevOpsu już. Jestem w stanie w miarę dokładnie estymować zadania.
Kolejnym benefitem jest to, że w firmie aktualnej mam 1 dzień na Sprint jako dzień wolny i jest to dzień który mogę poświęcić na samorozwój. Zazwyczaj wygląda to tak, że robię sobie Udemy i czekam na koniec dnia. W firmie nie ma presji na dowożenie jest spokój i każdy robi swoim tempem. Ważne by projekt posuwał się do przodu, a tak się dzieje.
Dlaczego o tym wszystkim piszę?
Piszę to tylko dlatego, że tak naprawdę wystarczy zmienić środowisko pracy, otoczenie w którym się pracuje i tak naprawdę lawinowo zmienia się całe życie. Ja przestałem pić po pracy, palić, od roku czasu nie zrobiłem ani jednej nadgodziny, a nieraz wręcz mam sporo wolnego czasu. Dodatkowo udało mi się spłodzić piękną córeczkę.
Nieraz nie zdajemy sobie pracy w jak toksycznej firmie potrafimy tkwić, środowisku pracy, katujemy się, wypalamy się. Warto mieć nadzieję, że w końcu trafi się na tą fajną firmę w której będzie szacunek do pracownika i dbanie o jego work-life-balance.
Pozdrawiam wszystkich i miłej niedzieli życzę.