Blog

29 sierpnia 2014 Wojciech Zawistowski

4 typy programistów (i jak ich prowadzić)

4 typy programistów (i jak ich prowadzić)

Ludzie to nie “zasoby”. Każdy jest inny i niepowtarzalny a Ty jako lider powinieneś wykazywać dużo empatii i być wyczulony na ekscentryzmy poszczególnych osób. Jednak na bardzo wysokim poziomie, możesz zaszeregować programistów do jednej z czterech zgrubnych kategorii, wymagających czterech odmiennych strategii.

Obiboki

Ta kategoria tak na prawdę nie istnieje, ale spotykam się z ludźmi upierającymi się przy niej, zacznijmy więc od obalenia tego mitu.

Obibok ma umiejętności, by wykonywać wysokiej jakości pracę, jednakże tego nie robi z powodu wrodzonego lenistwa. Jasne, tacy ludzie się trafiają. Lecz znacznie rzadziej niż by się mogło wydawać. No a w branży wymagającej tyle nauki, co programowanie?

Programowanie jest trudne. Wymaga ciągłej samo-edukacji. Całej masy. Być może – jedynie być może – dałoby się znaleźć kilku pojedynczych Obiboków na najniższych, “wejściowych” stanowiskach. Ale wśród wysokiej klasy, doświadczonych programistów? Jak dotrwali by aż do tego etapu?

Gdy słyszysz, jak Twoi programiści rozmawiają o fajnej technologii, którą bawili się w wolnym czasie, a potem widzisz jak w biurze odwalają byle jaką robotę, na pewno nie dzieje się tak z lenistwa. Mogą być Niedopasowani albo Przyblokowani, ale nie są Obibokami.

A co jeżeli naprawdę masz w swoim zespole Obiboka? Po prostu go zwolnij. Nic więcej nie możesz zrobić. Choć, jak dotąd, ja jeszcze żadnego nie spotkałem.

Ninja

Całkowite przeciwieństwo Obiboków. Drugi kraniec spektrum. Sprawni, zmotywowani, godni zaufania, działający w zgodzie z misją firmy i oszałamiająco produktywni.

Takich programistów, a tym bardziej całych zespołów, nie spotyka się często, jednak w przeciwieństwie do Obiboków istnieją. Rzadko się jednak po prostu trafiają. Są zazwyczaj oznaką dojrzałej, błyskotliwie prowadzonej organizacji. Jeśli doprowadziłeś swój zespół do takiego poziomu własnoręcznie, moje porady nie są Ci potrzebne. Załóżmy jednak, że miałeś farta, i właśnie zostałeś zatrudniony jako lider takich “gwiazd rocka”. Co robisz?

Prowadzenie Ninjów na co dzień jest bardzo proste. Wtop się po prostu w tło, pozostawiając im jak najwięcej autonomii. Wykonają swoją pracę na medal bez ingerencji z twojej strony.

Trudniejszą sprawą jest podciągnięcie ich na jeszcze wyższy poziom. Jak to zrobić, skoro nie ma żadnych zauważalnych przeszkód, które mógłbyś usunąć?

Podstawową rzeczą, jaką możesz zrobić, jest uzbrojenie ich w odpowiednie metryki. Czołowych programistów nie trzeba doszkalać z ich rzemiosła, często jednak nie są aż tak doświadczeni jeśli chodzi o techniki optymalizacji procesów, zwłaszcza na poziomie zespołu. A jak mówi stare porzekadło, nie da się ulepszyć tego, czego się nie mierzy.

Kolejną rzeczą, jaką możesz zrobić, jest zachęcanie do eksperymentowania. Motorem rozwoju jest podejmowanie prób i popełnianie błędów. Nie traktuj ich jako porażki, ale jako naukę. Spodziewanie się ze strony Ninjów pomyłek może wydawać się niezgodne z intuicją, niezależnie jednak jak są dobrzy, potrzebują takiego samego procesu jak każdy, by się udoskonalać.

Niedopasowani

Firmy cechują się najróżniejszymi kulturami, począwszy od formalnych i sztywnych po niemal zupełnie anarchistyczne. Kultura jest niezmiernie ważna. Jest podstawowym czynnikiem, definiującym firmę. I nie istnieje jedyna słuszna.

Mogę sobie wyobrazić, jak w tej chwili żarliwie się ze mną nie zgadzasz. Ja też podchodzę do tego prawie dogmatycznie. Ale uwierz mi, miałem do czynienia zarówno z programistami, którzy nie mogli zdzierżyć uczestnictwa w “spotkaniach dziennych” o stałej porze każdego dnia, jak i z takimi, którzy byli szczęśliwi, że ich manager prowadzi ich niemal za rękę.

Możnaby debatować, gdzie znajduje się złoty środek, bezdyskusyjny jednak jest fakt, że programista, borykający się z niepasującą kulturą, będzie zdemotywowany a jego produktywność spadnie, niezależnie od poziomu jego umiejętności.

Co możesz zrobić z takimi Niedopasowanymi?

Możesz próbować ich “nawrócić”. To jest jak najbardziej wykonalne, w końcu nawet religijne przekonania da się zmienić. Twoja skuteczność będzie jednak niska a wkład pracy niezmiernie duży, nie jest to więc warte zachodu.

Możesz zmusić ich do uległości poprzez tak zwane systemy “motywacyjne” (czytaj: “kar i nagród”). Jest to jednak krótkowzroczne rozwiązanie i chociaż przez jakiś czas może działać, prędzej czy później obróci się przeciw Tobie.

Ostatnią opcją, przykrą lecz niestety najlepszą, jest zwolnienie takiego Niedopasowanego. Zamiast się z nim borykać, powinieneś skupić swoje wysiłki w innym miejscu – na Twoim procesie rekrutacyjnym.

Po pierwsze, musisz być w pełni transparentny. Nie koloryzuj podczas rekrutacji, w obawie że wykładając “kawę na ławę” możesz stracić wyróżniającego się kandydata. Jeżeli kandydat nie wpasowuje się w kulturę Twojej firmy, prędzej czy później i tak go stracisz, tyle że będzie to o wiele bardziej nieprzyjemne dla obu ze stron.

Po drugie, musisz być bardzo wyczulony na preferencje kulturowe kandydata i wybadać go bardzo dokładnie pod tym względem. Nawet jeżeli jesteś transparentny, kandydat może nie mieć dostatecznego doświadczenia, aby właściwie ocenić kulturę Twojej firmy, albo może nie być świadomy jak ważne jest dopasowanie kulturowe. Wyłapanie tego to Twoje, a nie jego zadanie.

Przyblokowani

Dotarliśmy do ostatniej kategorii. Nasz programista nie jest Obibokiem, wpasowuje się w kulturę firmy jednak nadal nie jest wydajny jak Ninja. Dlaczego?

Jest Przyblokowany. Coś uniemożliwia mu osiągnięcie jego pełnego potencjału. Identyfikacja i usuwanie takich przeszkód to Twoje podstawowe zadanie jako lidera.

Istnieją trzy główne kategorie przeszkód.

Pierwszą jest brak umiejętności. Rozwiązanie, choć nie jest łatwe i szybkie, jest proste: wspieraj naukę. Zapewnij coaching, szkolenia, literaturę, zorganizuj review kodu albo programowanie w parach – stwórz takie warunki pracy, aby rozwój był nieunikniony.

Drugie często występujące źródło przeszkód to problemy na poziomie organizacji. Zbyt wolny serwer Continuous Integration, hałaśliwa przestrzeń biurowa, nieuchwytny Product Owner, słabe zrozumienie procesu Agile przez interesariuszy. Te problemy zwykle wymagają od Ciebie szkolenia lub negocjacji z nie-technicznymi osobami “powyżej” zespołu deweloperskiego lub lobbowania zarządu za dokonaniem niezbędnych zakupów.

Ostatnią, najbardziej podchwytliwą kategorią, jest brak motywacji. Częstym błędem jest traktowanie zdemotywowanego dewelopera jako Obiboka albo Niedopasowanego. Jednakże, istnieje znacznie więcej powodów słabej motywacji.

Czasem mogą być one osobiste, np. problemy rodzinne, najczęściej jednak wynikają z problemów organizacyjnych lub związanych ze sposobem prowadzenia zespołu, jak np. przestarzała technologia, niejasna wizja produktu albo za duża presja. Ponownie, rolą lidera nie jest naciskanie lub zrzucanie winy na deweloperów lecz skupienie się na usunięciu albo złagodzeniu źródłowych przyczyn ich niskiej motywacji.


Jakigo typu programistów masz w swoim zespole? Jakie sposoby Ty wykorzystujesz, by ich wspomagać? Podziel się swoimi uwagami w komentarzach poniżej!

Zobacz na blogu

09.09.2022
Marcin Jahn
It’s Not Just HTTP It’s Not Just HTTP

In today’s world of cloud-based solutions, distributed systems, and microservices-based architectures, network communication is a...

23.08.2022
Adam Mrowiec
Konferencja IPC 2022 Berlin Konferencja IPC 2022 Berlin

Pandemia wreszcie się kończy, dlatego w tym roku postanowiliśmy wrócić do naszych wyjazdów na konferencje....