Dlaczego większość developerów nie będzie dobrymi menedżerami
Poznaj Boba. Bob jest bardzo ambitnym developerem, który osiąga wyniki lepsze od oczekiwanych. Ciężko pracuje, codziennie ćwiczy kodowanie i zawsze kończy projekt na czas lub przed czasem - co więcej, jest zawsze chętny do rozpoczęcia kolejnego projektu. Spojrzysz na jego kod i już wiesz, że to, co tworzy i projektuje, jest piękne. Uwielbia wszystko, co oferuje mu jego praca, dlatego każdego dnia ma energię, dzięki której dowozi wartość. Bob czuje, że świat należy do niego.
Bob jest tym programistą, którym każdy z nas chce być. Czy jest ktoś, kto zasługuje na awans bardziej, niż on? Chyba nie. Bob awansował więc na stanowisko technical leada, czyli na takie, na którym będzie jeszcze bardziej wartościowy - tak właśnie uznał management. I słusznie. Z drugiej strony, oznacza to jednak, że Bob będzie pisał mniej kodu i zamiast tego musi skupić się na wyznaczaniu kierunku dla całego projektu.
Innymi słowy, będzie musiał robić mniej tego, co kochał, a zamiast tego musi robić coś, czego nie umie - zarządzać i kierować innymi.
Brakowało mu takich umiejętności, nie umiał działać zgodnie z harmonogramami innych i brakowało mu odpowiedniej wiedzy. Co więcej, nie potrafił przydzielać zadań i określać strategii tak, aby odnieść sukces. Spodziewał się, że wszyscy w jego zespole będą kodować tak dobrze, jak on, a więc nie poświęcał czasu na ich rozwój - głównie dlatego, że nie potrafił dopasować się do ich potrzeb.
Z biegiem miesięcy okazało się jednak, że Bob nie radzi sobie dobrze na nowym stanowisku - w niekompetencji pobił samego siebie. A sprawcami tego wszystkiego są jego dobry charakter i brak umiejętności menedżerskich. Ta niekompetencja doprowadziła do spadku produktywności jego zespołu i załamania się organizacji.
Zasada Petera
Historia Boba jest wielu z nas dobrze znana. Znam wielu senior developerów i technical leadów, którzy są absolutnie okropni w wykonywaniu tego, czego wymaga ich praca - w kierowaniu zespołem.
Smutne jest to, że byli oni prawdopodobnie świetni na wcześniejszych stanowiskach. Niestety zepchnięto ich na pozycję, do której nie są zbyt dobrze przygotowani - a przynajmniej nie na tyle, żeby się rozwijać.
Zjawisko to jest znane jako Zasada Petera:
Każdy pracownik wznosi się na swój poziom niekompetencji [...] Śmietana też rośnie, dopóki nie skwaśnieje.
Pomimo że Laurence J. Peter napisał swoją książkę jako satyrę, to okazała się ona za bardzo prawdziwa - chodzi tutaj o pomysł, że dana osoba będzie awansowana, dopóki nie osiągnie swojego poziomu niekompetencji. Dla programisty może to być mid, senior, lead, dyrektor lub nawet CTO.
Programiści często myślą, że jeśli dobrze kodujesz i ciągle doskonalisz swoje umiejętności, to prędzej, czy później awansują Cię na bardziej prestiżowe stanowisko - takie, które wiąże się z dużo większą odpowiedzialnością i pozwala wykorzystać swoje osiągnięcia i wyuczone umiejętności. I taka prawda - najprawdopodobniej dostaniesz w końcu awans.
Ludzie są raczej awansowani na podstawie wyników, jakie osiągają na obecnym stanowisku, a nie dlatego, że posiadają umiejętności niezbędne do funkcjonowania na ich następnej pozycji. Zakłada się po prostu, że są bardziej zdolni, niż inni, ze względu na ich wcześniejsze wyniki. No i prawdopodobnie tak jest.
Niestety, ich zdolność do osiągania wielkich rzeczy na poprzednich stanowiskach niekoniecznie przekłada się na zdolność do osiągania wielkich rzeczy na stanowiskach, które zajmą w przyszłości. W związku z tym awansowanie ich może być bardzo kiepską inwestycją, jeśli chodzi o powodzenie przyszłych projektów. W takich sytuacjach zawsze ryzykujemy - nic nie jest tutaj pewne.
Biorąc to wszystko pod uwagę, możliwe jest, że pozycja menedżerska Ci nie podpasuje. Po prostu fakt, że jesteś tak bardzo skoncentrowany na swojej obecnej pracy, sprawia, że nie dasz sobie rady w przyszłości.
Twoja własna ambicja jest, paradoksalnie, kluczem, który otwiera Twoją przeciętność.
Masz umiejętności, które sprawiają, że jesteś świetnym programistą. Możesz nawet posiadać umiejętności, które sprawiają, że świetnie pracujesz w zespole. Brakuje Ci jednak umiejętności, które sprawiłyby, że byłbyś świetnym liderem, architektem lub koordynatorem. Programowanie niestety tego nie rozwija.
Z tego właśnie powodu tak wielu niekompetentnych ludzi zajmuje wyższe stanowiska. To dlatego ludzie, którzy kiedyś robili świetne rzeczy, są teraz okropni. To dlatego niektóre projekty pod określonym kierownictwem kończą się fiaskiem. I nie, to nie zespół ponosi winę - to lider nie zdołał stworzyć środowiska i zorganizowanej struktury, aby zespół odniósł sukces.
Ale wcale tak nie musi być. Nie możesz zmienić sposobu, w jaki Twoja organizacja awansuje ludzi, ale masz kontrolę nad sobą. Możesz okiełznać swoją wyjątkową zdolność myślenia i działania.
Świadoma niekompetencja, czyli jak być dobrym
Syndrom oszusta jest często postrzegany jako coś złego. Oczywiście stan umysłu, w którym czujesz, że jesteś mniej kompetentny, niż wymaga tego Twoja praca, może cię mocno ograniczać. Powoduje to, że się mocno nie doceniasz. Kiedy głęboko wierzysz, że nie jesteś do czegoś zdolny, to często staje się to rzeczywistością.
Jest też inny sposób postrzegania takiego sposobu myślenia - psychologiczna droga, którą możesz pójść, aby uniknąć bycia ofiarą Zasady Piotra - przyjmij świadomą niekompetencję.
Świadoma niekompetencja jest podobna do syndromu oszusta, ponieważ postrzegasz siebie jak kogoś niekompetentnego - tyle że specjalnie obierasz taki sposób myślenia. Kiedy celowo postrzegasz siebie jako niekompetentnego, możesz zadawać sobie pytania o to, jak złagodzić taką niekompetencję.
Przygotuj sobie strategię. Dowiesz się więcej niż to, czego wymaga od Ciebie Twoja praca. Udoskonalisz swoje umiejętności miękkie. Zrobisz wszystko, aby stać się kimś więcej, niż zwykłym programistą. Podejmujesz działania, które pomogą Ci stać się kimś wystarczająco dynamicznym, aby objąć przyszłe stanowiska kierownicze, które nie są ściśle związane z kodowaniem.
Pamiętaj, że development to znacznie więcej, niż programowanie. Aby na dłuższą metę pozostać kimś wartościowym, musisz się przygotować już teraz. Staraj się szkolić nie tylko w kodowaniu, ale także w zarządzaniu, strategii, teorii gier, filozofii biznesu, komunikacji i wszystkim tym, co pozwoli Ci lepiej przewodzić.
Bądź dobry już na początku. Jeśli myślisz, że ponieważ odniosłeś sukces na wcześniejszej pozycji, to odniesiesz sukces na przyszłej, to niestety czeka Cię przykre rozczarowanie.
Jeśli myślisz, że wiesz wszystko, to nie wiesz nic. Jeśli myślisz, że nic nie wiesz; to już coś wiesz.
— Jayce O’Neil
Bądź więc twórczo niekompetentny. Uwierz, że nic nie wiesz. Postrzegaj siebie jako niekompetentnego.
Przyjmij taki sposób myślenia jako coś, co pomoże Ci robić rzeczy wykraczające poza Twój obecny podział obowiązków i przygotować się na przyszłe stanowiska. Bądź programistą w wyidealizowanym sensie - pozwoli Ci to na ciągłe wywieranie wpływu i poprawę bez zderzania się z sufitem.
Oryginał tekstu w języku angielskim możesz przeczytać tutaj.