Pułapki psychologiczne u programistów
Pułapki psychologiczne u programistów
Programista to obecnie jeden z najbardziej pożądanych zawodów świata współczesnego. Wysokie pensje, praca zdalna, liczne benefity i dofinansowania... Brzmi pięknie, prawda? Niestety drugą stroną medalu jest fakt związany z tym, iż programiści muszą się nieustannie rozwijać, poszerzać swoje horyzonty i kompetencje oraz być niemal cały czas skoncentrowani w pracy, realizując co rusz nowe założenia i wymagania projektowe.
Oczywiście, jak przy wielu innych zawodach, narażeni są oni na wiele dolegliwości fizycznych, jak m.in łokieć tenisisty, schorzenia kręgosłupa, problemy ze wzrokiem. Jednak według mnie równie dużym problemem są zaburzenia psychiczne u wspomnianej części społeczeństwa. Ciągły stres, dążenie do perfekcjonizmu, robienie nadgodzin to zaledwie kilka czynników wpływających na pojawienie się u osoby, tzw. syndromów programisty.
Jako jednostka szkoleniowa staramy się dbać o dobre samopoczucie i zdrowie psychiczne naszych kursantów, dlatego poniżej skupię się nad omówieniem bardziej jak i mniej znanych dolegliwości - syndromów - u programistów.
Pełne zrozumienie, z czego one wynikają i jak im przeciwdziałać, pomoże Ci jeszcze szybciej wznieść się na wyżyny programistyczne, pozwoli Ci skuteczniej pozyskiwać nowe umiejętności programistyczne, przy równoczesnym niezaniedbywaniu innych aspektów życia niezawodowego.
Syndrom "prawdziwego programisty"
Syndrom ten pojawia się najczęściej wtedy, gdy wydaje nam się, że nasze umiejętności koderskie są o wiele mniejsze od tych, które posiadają inni programiści, czy członkowie naszego zespołu. Myślimy wówczas, że musimy poświęcić stanowczo więcej czasu na rozwój i drastycznie zwiększyć ilość czasu poświęcaną na pisanie kodu. W rezultacie - robimy nadgodziny, spędzamy dużo czasu po pracy na doszukiwaniu różnych informacji. Oczywiście nie w tym nic złego i tylko w ten sposób możemy szlifować swój fach, jednak takie postępowanie może łatwo przeoblec się w obsesję.
Wówczas spędzamy o wiele więcej czasu nad dopięciem najprostszych zadań i tasków, przez co nasza efektywność pracy spada (przez nieustanne doszukiwanie informacji, z którymi możemy być potencjalnie niezaznajomieni). Dodatkowo, programista borykający się z opisywanym syndromem, może nagle zacząć uważać, że niedopuszczalne jest, aby popełniał jakiekolwiek błędy w kodzie. Wówczas zaczyna on stosować najbardziej prymitywne edytory kodu (tłumacząc, że wtedy "ma pełną kontrolę nad kodem" i musi się uczyć na własnych błędach), przestaje używać narzędzi do debugowania, czy statycznej analizy kodu. Jest również ugruntowany w przekonaniu, że dokumentacja projektu jest zbędna, a "prawdziwy programista" powinien poznawać funkcjonalność programu przez czytanie kodu innych developerów. Chyba nie muszę Ci tłumaczyć, jak bardzo mylne są to założenia i jak takie podejście programisty może niszczyć jego rozwój.
Syndrom nadgodzinowego programisty
Powiedzmy sobie wprost - nadgodziny mają negatywny wpływ na jakość naszej pracy. Praca w nadgodzinach i towarzyszącym im stresie prowadzi do szeregu dolegliwości obniżających komfort pracy i życia. Efektywność pracy spada, pojawiają się trudności z koncentracją oraz podenerwowanie czy nieuwaga. Mimo tak wielu negatywnych skutków, u programistów wciąż pojawia się syndrom pracoholizmu, czyli po prostu nieustannego pracowania. Wszelkie crunch projekty, terminy "na wczoraj", konieczność jak najszybszego naprawienia bugu na produkcji tylko zmuszają nas, developerów, do podejmowania tak mało higienicznej pracy.
Omawiany syndrom pojawia się wtedy, gdy tak uciążliwy system pracy nam odpowiada i nie widzimy w nim żadnych problemów. Wychodzimy wówczas z założenia, że szybciej skończymy pracę, czy "dowieziemy rozwiązanie i będziemy mieli spokój". Pytanie jednak, jakie powinniśmy sobie wówczas postawić wraz z teamem developerów, to czy stawiamy na jakość, czy na ilość. Oczywiste jest, że chcąc tworzyć skuteczne i efektywnie działające oprogramowanie, powinniśmy skupić się przede wszystkim na quality of work. To, jak podejdziemy do napisania kodu może mieć znaczące konsekwencje w przyszłości. Co z tego, że dostarczymy mało zoptymalizowane i niedopracowane rozwiązanie, jeżeli za jakiś czas wszystko to obróci się przeciw nam, a bugi będą pojawiały się jak kule wystrzeliwane przez karabin maszynowy.
Aby nie być gołosłownym, Stanford University przeprowadziło swojego czasu badania, jak bardzo różni się kod napisany przez programistów pracujących 40 h tygodniowo do tego, który powstał podczas 60-godzinnego tygodnia pracy pojedynczej osoby. Zapewne domyślasz się, jak wyglądają wnioski, a link do wspomnianego badania przesyłam tutaj.
Syndrom oszusta
Jest to jeden z najbardziej popularnych syndromów wśród programistów, bo wg badań, około 70% społeczeństwa przynajmniej raz w życiu doświadczyła tego uczucia. Syndrom ten wiąże się z brakiem umiejętności obiektywnego postrzegania swoich umiejętności. Wiele osób, którym zostaje powierzone nowe stanowisko, kompetencje, czy awans (na które bardzo ciężko pracowali), negatywnie ocenia swoje zdolności do przyjęcia nowej roli, widząc siebie jako osobę, która zupełnym przypadkiem zyskała uznanie w oczach współpracowników.
Taka postawa powoduje blokadę przed dalszym rozwojem i często nie pozwala wykorzystać w pełni swojego potencjału. Dlatego niezwykle ważne jest walczenie z syndromem oszusta i podejmowanie działań, które pozwolą nam zwiększyć swoją samoocenę i docenić swoje umiejętności. Bardzo pomocne może się tutaj okazać współdzielenie swojej wiedzy z innymi - czyli pomoc współpracownikom w ich codziennych zadaniach, która może nas ugruntowywać w nas poczucie własnej wartości. Dodatkowo powinniśmy porozmawiać z bliską nam osobą, która zna nasze możliwości i predyspozycje i poprosić ją o wskazanie, jakie umiejętności ceni w nas najbardziej. Pomoże to nam utwierdzić nas w przekonaniu, że w pełni zasłużyliśmy na wszelkie sukcesy i awanse, a nasza opinia to jedynie wynikowa nietrafnej samooceny.
Efekt Krugera-Dunninga
Syndrom prokrastynacji
Prokrastynacja to sytuacja, w której chronicznie opóźniasz rozpoczęcie pracy nad danym zadaniem. Może to wynikać z kilku aspektów - brak pewności swoich umiejętności, strach przed podjęciem ryzyka, niedyspozycja w ciągu dnia. Oczywiście, jestem świadomy tego, że każdy może mieć gorszy dzień i nie pałać w danym momencie do pracy (sam często przeciągam rozpoczęcie danych tasków). Problem się jednak pojawia, gdy taka osoba zaczyna regularnie "odkładać" wykonanie danej pracy na później i w ten sposób może powodować nawarstwianie się obowiązków i w rezultacie pracowania w nadgodzinach (co znowu powoduje pojawienie się wcześniej opisanego syndromu nadgodzinowego programisty).
Chroń się!
Na koniec tego artykułu, przedstawiam kilka uniwersalnych porad, jak pracować oraz się rozwijać, aby uchronić się przed wyżej opisanymi syndromami. Oczywiście jest to lekkie spłycenie i wskazówki te nie są pełnym remedium dla każdego, jednak na pewno pozwolą Ci podnieść swoją świadomość i chociaż minimalnie zredukować ryzyko pojawienia się wcześniej opisanych problemów:
- Dziel się wiedzą ze współpracownikami/mniej kompetentnymi osobami.
- Zapisuj swoje cele, osiągnięcia i wracaj do nich po czasie. Porównuj progress osiągnięty na przestrzeni czasu.
- Stawiaj na jakość pracy, unikaj crunch projektów, ustal z przełożonym core hours w firmie.
- Nie dąż do perfekcjonizmu. Działaj zgodnie z zasadą Pareto, która mówi, że 20% całego wysiłku przynosi 80% zysku.
A może doświadczyłeś któregoś z wymienionych syndromów na własnej skórze? Podziel się z nami, jak udało Ci się go rozwiązać!