Grzegorz Gazda

Nazywam się Grzegorz Gazda
Od ponad dziesięciu lat pracuję nad rozwojem różnego rodzaju oprogramowania.
Od ponad siedmiu zarządzam zespołami programistów.

Blog ten jest zbiorem moich spostrzeżeń, doświadczeń oraz lekcji jakich nauczyłem się pracując z zespołami programistów i testerów.

 Pora na lekturę. Raz, dwa, trzy leci cytat.

Kompetencja – połączenie trzech atrybutów: wiedzy, umiejętności i postawy. Wyróżniają one daną osobę łatwością sprawnej, skutecznej, odpowiadającej oczekiwaniom jakościowym, realizacji danych zadań. Działania osoby kompetentnej, w danej dziedzinie, winny spełniać obowiązujące w danej społeczności/organizacji kryteria.

https://pl.wikipedia.org/wiki/Kompetencja

Tyle mówi Wikipedia. Definicja bardzo skromna. Widocznie nikomu nie chciało się rozwijać tego tematu.

Wiedza

Trzy atrybuty opisujące kompetencje. Każdy z nich umówiłem przy okazji prześwietlania kandydatów. Test wiedzy poruszał pierwszy element tego trójkąta. To weryfikacja suchych faktów. Idziesz na egzamin. Masz zestaw pytań. Odpowiadasz na nie. Jak prawidłowo to znaczy, że masz wiedzę. Wiedza, jednakże jest dziedziną czysto teoretyczną.

Przywołam tutaj ponownie przykład jazdy na rowerze. Wiesz, że aby rower jechał, to musisz naciskać na pedały oraz utrzymać równowagę.

Umiejętności

Umiejętności w odróżnieniu od wiedzy definiują czy to co umiesz w teorii potrafisz wykorzystać w praktyce. Szerzej o tym pisałem przy okazji weryfikacji umiejętności.

Nie zostaniesz kolarzem jak będziesz studiował jazdę na rowerze z książek. Ah, kto teraz czyta książki. One są passe. Naoglądałeś się instruktarzy na YouTube. Wyobrażasz sobie jak pokonujesz kolejne zakręty Tour de France. Wizualizujesz sobie jak zostawiasz peleton za plecami. Mijasz linie metry. Zakładasz koszulkę lidera wyścigu.

Marzenia na razie na bok. Wsiadasz na rower. Jedziesz. Pokonujesz pierwszy zakręt. Dynamiczny podjazd. Pierwsze wzniesienie za tobą. W dół jeszcze szybciej. Mkniesz, mijasz innych rowerzystów. To już nie wyobraźnia. To rzeczywistość. Jedziesz. Pewnie czujesz się na rowerze. Masz umiejętności. Masz dwa z trzech atrybutów kompetencji.

Postawy

Czy to już wystarczy, aby wygrać wyścig kolarski? Niekoniecznie. Potrzebujesz jeszcze odpowiednio gospodarować swoją energią. Zmieniać biegi w rowerze. Wykorzystywać jazdę w grupie, tak by mniej się męczyć. To jest właśnie postawa.

A tak mniej abstrakcyjnie i ambitnie? Jak jedziesz rowerem to w jaki sposób pokonujesz przejście dla pieszych? Jadąc czy prowadząc swój jednoślad? Jeździsz chodnikiem czy ulicą? Jak chodnikiem to, kiedy? Przestrzegasz przepisów? To właśnie definiuje twoją postawę.

Trójkąt kompetencyjny

Trzy elementy. Wiedza, umiejętności, postawy. Trzy punkty. Połącz je ze sobą i otrzymasz trójkąt. Trójkąt kompetencyjny.

Taki trójkąt odpowiednio zbudowany może być bardzo potężnym narzędziem w Twojej codziennej pracy. Zastanów się nad kompetencjami jakie powinien posiadać każdy z członków zespołu. Jakie ty powinieneś mieć kompetencje? Czego powinieneś się nauczyć? Co powinieneś robić inaczej? Zadaj te pytania sobie. Rzuć wyzwanie członkom zespołu. Powiedz im czego oczekujesz. Zaangażuj osoby, które będą poruszać się po drabinie kompetencyjnej. Zdemokratyzuj proces. Niech inni także mają wkład w proces, w którym się będą poruszać. Jak będzie to dziełem wspólnym to masz większe szanse, że inni będą chcieli podążać za tym co ustalili. W końcu to ustalili, prawda?

Zastosowanie praktyczne

Wykorzystanie trójkąta kompetencyjnego w praktyce jest ograniczone tylko Twoją wyobraźnią. Dla jej pobudzenia kilka przykładów z mojej strony.

Rozwój osobisty

Mając spisane kompetencje wymagane na każdym poziomie zaawansowania, wiesz w jakim kierunku powinieneś się rozwijać, lub też rozwijać osoby w zespole.

Ścieżka awansu

Po zdobyciu wymaganych kompetencji wymaganych na kolejny poziom możesz oczekiwać awansu. Naturalnie nie znaczy, że go dostaniesz, bo o tym mogą decydować także inne czynniki. Jednakże jest to taki certyfikat posiadania wymaganych kompetencji na kolejnym etapie w drabince hierarchii.

Informacja zwrotna

W jaki sposób przekazać, czy powinieneś się jeszcze nauczyć lub też jakie braki posiadasz. A no właśnie przez spisane kompetencje.

Ocena roczna

Jak masz w firmie procedurę oceny rocznej to trójkąt kompetencyjny może być jej częścią. W szczególności odnosi się to do postaw.

Rekrutacja

Rekrutujesz nowe osoby w zespole? To taki trójkąt kompetencyjny pozbawiony wrażliwych danych na temat procesów w organizacji może być pomocny. W szczególności jak korzystasz z usług zewnętrznych partnerów do poszukiwania kandydatów. Dokładnie określając swoje wymagania pomagasz filtrować potencjalnych kandydatów.

Podziękowania dla Stephena

Osobiście z trójkątem kompetencyjnym zetknąłem się po raz pierwszy czytając bloga Stephena Hauntsa. Stworzył on ciekawy dokument, który definiował co powinien wiedzieć specjalista na każdym etapie rozwoju zawodowego. Link to artykuły tutaj. Znajdziesz tam też cały trójkąt kompetencyjny używany przez Stephena. Nie kopiuj, jednakże tego. Wzoruj się na tym i stwórz coś co będzie odzwierciedlać specyfikę Twojej organizacji.

Podsumowanie

To teraz nie pozostało nic innego jak szlifować kompetencje potrzebne do wygrania wyścigu kolarskiego. Dalej marzysz o koszulce lidera w Tour de France? Wiesz już jakie kompetencje do tego są potrzebne? Nie siedź na miejscu. Wspinaj się. To ty decydujesz o tym, gdzie będziesz jutro.

Trójkąt kompetencyjny jest tylko jednym z narzędzi, które mogą Tobie pomóc. Nie jest to wytrych, którym otworzysz wszystkie drzwi. Jak ze wszystkim musisz dostosować to do swoich wymagań. Na pewno jego implementacja nie jest łatwa. Wymaga dużo czasu i cierpliwości. Przede wszystkim wymaga umiejętności przekazywania informacji zwrotnej.

Warto spróbować. Jak ci nie wyjdzie to będziesz chociaż wiedział, że próbowałeś. Nie poddawaj się.

 

Rekrutujesz i budujesz dalej swój zespół. Wiesz już, że Twój kandydat wie jak się jeździ na rowerze. Pedałuje i utrzymuje równowagę. Nie wywraca się na pierwszym zakręcie. Bingo. Wiedza i umiejętności zweryfikowane.

Ale to jeszcze nie wszystko. Masz już dużo informacji. Ale nie wszystko co możesz pozyskać na tym etapie. Wyciągnij więcej z rekrutacji. Wyciskaj cytrynę mocniej. Nie musisz patrzeć w magiczne lustro i prosić o poradę. Słuchaj uważnie co kandydat mówi. Słowa. Słowa, które słyszysz wyznaczą Ci drogę. Drogę do idealnego zespołu.

Mając zweryfikowaną wiedzę i umiejętności pora sprawdzić postawę. Ooo, a co to jest postawa? Brzmi abstrakcyjnie? Może, ale nie musi. Wracając do naszego rowerzysty. Ty wiesz, że on wie, jak jeździć i potrafi to robić. Ale czy jeździ zgodnie z przepisami? Czy jeździ chodnikiem, ścieżką rowerową czy ulicą? Czy wie, kiedy może jechać chodnikiem? Jak pokonuje przejście dla pieszych? To są rzeczy, na które musisz zwrócić uwagę. Słuchaj co mówi osoba naprzeciwko Ciebie. Słuchaj słowa płynące z głośnika Twojego telefonu lub słuchawek w przypadku, gdy rozmowę prowadzisz z kandydatem zdalnym.

Zadawaj pytania i słuchaj. Obserwuj i słuchaj. Analizuj jakie wartości i przekonania ma Twój potencjalny członek zespołu. Jakie ma nastawienie? Czy jazda po przejściu dla pieszych rowerem to dla niego coś normalnego? Jakie ma doświadczenia z tym związane? Może kiedyś jeździł w ten sposób, ale już tak nie robi. Może dostał mandat i finansowa nauka okazała się skuteczna. Doświadczenie, nastawienie, przekonania i wartości. Weryfikuj to.

Ok, o ile nie rekrutujesz kogoś do dowożenia pizzy, to pewnie jazda na rowerze nie ma wielkiego znaczenia.

Co w przypadku np. programistów? Oczekujesz, że kandydat będzie pisał testy do swojego kodu? To sprawdź, czy to robi obecnie. A jak nie to, dlaczego. Nie, bo nikt inny w zespole tego nie robi? Nie, bo tak powiedział jego przełożony? Nie, bo uważa, że to bez sensu? A może tak. A jak tak to, dlaczego. Dlatego, że jest zmuszony do ich pisania? Tak bo wie, że płyną z tego określone korzyści?

Pytaj i słuchaj. Dowiedz się jak najwięcej. Im więcej wiesz tym lepszą podejmiesz decyzję.

Postawa i nastawienie są nie mniej ważne niż umiejętności. Zwracaj na to uwagę. Nie wystarczy wiedza czy umiejętności. To w jaki sposób postępuje na co dzień kandydat może uzupełnić zespół o kolejną osobę, która będzie od początku dopasowana do pozostałych członków. Ale może to być osoba, która ma wzmocnić zespół, być jego liderem. Formalnym lub też nie. Być mentorem dla młodszych członków zespołu.

Ja pracowałem z różnymi zespołami. Niektóre były budowane od samego początku. Niektóre już istniały. Lubię pracować z programistami, którzy dopiero wkraczają do świata profesjonalnego programowania. Dołączenie do takiego zespołu osoby, dla której dobre praktyki są chlebem powszednim bardzo wzmacnia cały zespół.

Przy odpowiednim nastawieniu osoby młodsze stażem będą podpatrywać te bardziej doświadczone. Będą podchwytywać dobre praktyki. Włączając do zespołu osoby, dla których standardy panujące w branży nie są obce wzmacniasz także swój autorytet.

Wspomniałem, że lubię pracować z osobami, którzy są na początku drogi programistycznej. W jaki sposób zweryfikować ich nastawienie? Nie oczekuję od nich, że będą pracować w ten sposób co bardziej doświadczone osoby. Po prostu często to może być ich pierwsza praca. Nie mają więc takiego doświadczenia.

Projekty indywidualne lub te wykonywane w czasie studiów to nie to samo. Indywidualny projekt ma mniejszą presję czasu od aplikacji komercyjnej. Jakość i ilość testowania też może być mniejsza. Nie są to też projekty zastana, które wymagają szczególnej uwagi. Nie są to projekty, nad którymi pracują lub pracowali inni programiści.

W przypadku osób będących na początku swojej drogi szczególnie ważna dla mnie jest chęć nauki i efektywna komunikacja. Komunikację zweryfikujesz po prostu prowadząc konwersację w czasie rozmowy.

Prowadź otwartą konwersację. Spytaj się o blogi, podcasty, kursy na jakie ostatnio natrafił Twój kandydat. Jak będzie miał o czym opowiadać i będzie to robił z pasją, to jest duża szansa na to, że będzie podnosił na bieżąco kwalifikacje.

Budując Twój idealny zespół zwracaj nie tylko uwagę na wiedzę i umiejętności. Zwracaj uwagę na nastawienie i postawę. To musi być dla Ciebie równie ważne jak to czy ktoś potrafi dodać dwie dwójki do siebie. To postawa, którą będziesz obserwował na co dzień będzie decydować o sukcesie. Wiedza i umiejętności sprawią, że zadania będą zrealizowane. Jednakże atmosferę w zespole będzie determinowało nastawienie.

 

Wiedza kandydata zweryfikowana. Wie co ma wiedzieć. Rozmowa przebiegła sprawnie wg Twojego planu. Nie pozostaje nic innego jak dołączyć taką osobę do zespołu. Nie tak szybko. To, że ktoś ma wiedzę, nie znaczy jeszcze, że ma umiejętności. Umiejętności, które są wymagane, aby na co dzień dostarczać wartość.

 

Jak zabierasz się za weryfikację umiejętności, bierz zawsze pod uwagę to na jakie stanowisko rekrutujesz. Jak szukasz juniora, to nawet jak będzie testowany w taki sam sposób jak bardziej doświadczeni kandydaci, to weź pod uwagę, że jego wynik testu może być gorszy.

 

Dobra dobra, ale czym tak naprawdę jest weryfikacja umiejętności. Przecież już ustaliłeś, że kandydat ma potrzebną wiedzę.

 

Pomiędzy wiedzą a umiejętnościami jest różnica. To, że wiesz, że aby jechać rowerem musisz utrzymać równowagę i naciskać na pedały nie znaczy, że potrafisz jeździć. To jest wiedza teoretyczna. Dopiero jak będziesz jechać i nie wywrócisz się na pierwszym zakręcie posiadasz umiejętności.

 

Jak szukasz programisty, od którego oczekujesz pisania testów jednostkowych to zweryfikuj, czy potrafi je pisać. Jak chcesz by ktoś pisał kod w konwencji SOLID to sprawdź w czasie rekrutacji czy Twój kandydat tworzy kod w ten sposób.

 

Niestety, ale wiedza i umiejętności nie zawsze idą w parze. Może to wynikać z tego, że ktoś jest na stanowisku, na którym na co dzień nie wykorzystuje w praktyce wiedzy. Może ktoś jest programista, jednakże na co dzień zajmuje się odpowiadaniem głownie na maile. A wiedza nie używana niestety zanika lub pozostaje tylko teoretyczna. Nietrudno sobie wyobrazić sytuację, gdy ktoś zapomina, jak napisać pętlę.

 

Tak więc jak zależy Ci na kimś, kto będzie wnosił wartość dodaną do Twojego zespołu musisz zweryfikować umiejętności.

 

Jest wiele sposobów na weryfikację umiejętności. Stara akademicka metoda czy kompilowanie kodu na papierze. Kandydat może się Ciebie zapytać czy na co dzień też będzie programował na papierze. Wtedy pozostaje Ci wytłumaczyć, dlaczego w taki a nie inny sposób musisz sprawdzić umiejętności.

 

Jak masz taką możliwość to wykorzystaj prawdziwe środowisko programistyczne.

 

Możesz poprosić kandydata, aby wykonał zadanie i przesłał je mailem przed rozmową. Możesz wykorzystać oprogramowanie, które umożliwia w czasie rzeczywistym obserwowanie co ktoś robi na komputerze.

 

Opcji jest wiele. Niektóre mogą wymagać zainwestowania odpowiedniej ilości gotówki. Inne są darmowe. To co wybierzesz zależy od Ciebie. Ale wybierz coś. Miej pewność, że kandydat, którego rekrutujesz posiada umiejętności, których szukasz.