Na te trzy rzeczy zwróć uwagę szukając programisty

Dodane:

Łukasz Pełszyński Łukasz Pełszyński

Udostępnij:

Podobno zatrudnienie pracownika jest największym zagrożeniem dla organizacji. Logika podpowiada, że w startupach, gdzie cały biznes często opiera się na kilku osobach, to zagrożenie jest bardzo realne. Zły pracownik może źle wpłynąć na resztę zespołu.

Załóżmy, że nowa firma szuka programisty, którego misją będzie zakodowanie produktu. Czy jest jakiś schemat postępowania, który pozwoli na sprawdzenie, czy kandydat na takie stanowisko rzeczywiście pasuje? W swojej, może jeszcze nie bardzo długiej karierze w IT, widziałem sporo sytuacji, gdzie to właśnie programista stanowił słaby punkt zespołu.

Obserwowałem jak nowo zatrudnieni pracownicy psuli dobrą atmosferę w firmie, a także jak nieznośna stawała się praca po zwolnieniu kilku osób pod rząd. Bo źle przeprowadzona rekrutacja prędzej czy później musi zakończyć się zwolnieniem. No dobrze, ale co możemy zrobić, aby ustrzec się przed przykrymi rozmowami, ponownymi rekrutacjami? Naukowcy zajmowali się tymi problemami i warto rzucić okiem, do jakich wniosków doszli.

1. Osobowość

Psychologowie tworzyli przez lata różne modele cech osobowości i jednym z takich modeli, który przetrwał próbę czasu jest model tzw. „wielkiej piątki”. Mierzy on osobowość człowieka za pomocą pięciu cech: stałości emocjonalnej, ekstrawersji, otwartości na doświadczenie, ugodowości oraz sumienności. Model ten został wykorzystany w setkach badań, a niektóre z nich dotyczyły właśnie programistów. Gerald Weinberg w swojej słynnej książce “The Psychology of Computer Programming” wskazuje, że to grupa o wiele bardziej homogeniczna niż cała populacja (co oznacza, że są do siebie dość podobni).

Programiści na tle całej populacji mieli niższą wartość wskaźnika ekstrawersji (co znaczy, że wolą raczej pracować samotnie), niższą stabilność emocjonalną, ale za to wyższą otwartość na nowe doświadczenia! Oczywiście, nie każdy programista jest taki – model, jak nazwa wskazuje, upraszcza rzeczywistość i nie obejmuje wszystkich przypadków. Dobrze, skoro wiemy jakimi cechami charakteru dysponuje przeciętny programista, to czy ta wiedza umożliwi nam podjęcie racjonalnej decyzji o zatrudnieniu? Czy testując osobowość programistów znajdziemy tego najlepszego?

Naukowa rzeczywistość jest brutalna, żadne badanie nie potwierdziło znaczącego wpływu osobowości na wyniki w pracy indywidualnej! I nie dotyczy to tylko programistów. Podobnie, brak wyników jednoznacznie wskazujących, że osobowość ma duży wpływ na efektywność pracy w grupie (lub w parach). Trzeba jednak pamiętać, że tego typu badania są bardzo trudne. Jest dużo zmiennych, których uczeni nie są w stanie kontrolować.

2. Inteligencja

Skoro testy osobowości okazują się bezużyteczne, to może testy inteligencji będą bardziej pomocne? Jak wskazuje Schmidt w “The validity and utility of selection methods in personnel psychology: Practical and theoretical implications of 85 years of research findings”, inteligencja (rozumiana ogólnie jako GMA, czyli po angielsku general mental ability) odgrywa znaczącą rolę, jeśli chcemy zatrudniać osoby niedoświadczone, które nie miały styczności z dużymi i złożonymi systemami, z jakimi mają do czynienia programiści. Jak wskazuje zdrowy rozsądek, takie osoby zwyczajnie szybciej zdobędą umiejętności niezbędne w pracy. Będą też lepiej sobie radzić, gdy pojawią się problemy, których do tej pory nie napotkali.

Jeśli chodzi o doświadczonych programistów, inteligencja rozumiana jako GMA wcale nie jest jedynym czynnikiem, na którego podstawie moglibyśmy zdecydować czy dana osoba sprawdzi się w pracy. Problem wynika z tego, że inteligencja rozumiana jako GMA jest określana na podstawie dwóch czynników, podczas gdy w ogólnie akceptowanym modelu inteligencji Carrola jest ich 8. Tak więc na GMA składają się jedynie inteligencja płynna i skrystalizowana (pierwsza odpowiada za umiejętności wykorzystywane podczas układania puzzli lub układanki, druga zaś jest ściśle powiązana z kulturą i obejmuje zdolność wykorzystania przyswojonej wiedzy). Dwa z przykładowych czynników, których nie obejmuje termin GMA to umiejętność zapamiętania informacji i wykorzystania jej dużo później oraz zdolność czytania i pisania!

3. Umiejętności

Umiejętności są takim czynnikiem, na który kandydat może wpływać – może je rozwinąć lub zaniedbać. I jest to czynnik najważniejszy podczas rekrutacji. Tym, co łączy się z umiejętnościami jest biegłość (po angielsku expertise, w naszym języku oznacza to “bycie ekspertem”). Na biegłość składają się wiedza ekspercka i doświadczenie. I dobra wiadomość dla nas – są to rzeczy, które o wiele łatwiej sprawdzić, niż osobowość i inteligencję. Arisholm i Sjoberg w “Evaluating the effect of a delegated versus centralized control style on the maintainability of object-oriented software” wskazują, że osoby z wieloletnim doświadczeniem odnajdowały się lepiej w dużych projektach informatycznych i pisały kod, który był łatwy w utrzymaniu. Z kolei osoby tuż po studiach i zaczynające karierę programisty miały duży problem ze zrozumieniem tego, że należy pisać programy w sposób obiektowy, tak aby potem łatwo było je rozwijać.

Niestety, aby móc potwierdzić, że kandydat posiada wiedzę ekspercką i doświadczenie, trzeba być samemu ekspertem lub wykorzystać narzędzie przygotowane przez eksperta. Realia wyglądają tak, że podczas rekrutacji pierwszym kontaktem dla programisty jest osoba z HR, która tej wiedzy nie potrafi ocenić. Może jedynie porównać CV z listą wymaganych umiejętności, lub na podstawie rozmowy wyrobić sobie opinię o kandydacie i stwierdzić (bez stosowania żadnej metodyki) czy nadaje sie do pracy czy nie. W związku z tym problemem powstają narzędzia typu Software as a Service do rekrutacji. Pamiętajmy jednak, że duża część z tych narzędzi w rzeczywistości testuje umiejętności algorytmiczne – sztuczne problemy, które przypominają testy IQ. O ile to możliwe, należy korzystać z bardziej kompleksowych narzędzi lub angażować zespół programistów do rekrutacji.

Wnioski

Ktokolwiek zajmował się rekrutacją, wie, że nie jest to proste. Przekonał się o tym m.in. hegemon na rynku wyszukiwania, firma Google. Aby dostać się do pracy dla tej korporacji trzeba było mieć skończone studia na jednej z najlepszych uczelni, przejść wiele etapów, podczas których należało odpowiadać w kreatywny sposób na bezsensowne pytania i znać na wylot algorytmy. Okazuje się, że firma zatrudniająca najtęższe umysły świata IT nie odrobiła pracy domowej i stosowała metody, o których od dawna było wiadomo, że nie działają. Przyznał to w 2013 roku Laszlo Beck, SVP w Google: „Przejrzeliśmy dziesiątki tysięcy rozmów rekrutacyjnych, każdego, kto został zatrudniony, ile zdobył punktów i to jak sprawdzał się w pracy. Nie znaleźliśmy żadnego związku, totalne zero. To jeden wielki losowy chaos”.

Warto więc podejść do tematu na poważnie i w naszym procesie rekrutacji uwzględnić to, do czego doszli uczeni. Inaczej, podczas procesu rekrutacji, jesteśmy skazani na naukę na błędach, która nigdy dla firmy nie jest opłacalna. Lepiej dłużej rekrutować i znaleźć kogoś odpowiedniego, niż tracić czas na ciągłe zatrudnianie i zwalnianie programistów.

Łukasz Pełszyński

założyciel platformy CodeQuack

Zaczął pisać pierwsze programy gdy miał 8 lat, od tego czasu rozwijał stopniowo swoje umiejętności, skończył studia, poszedł do pracy i został programistą. W 2014 roku rozpoczął prace nad CodeQuack, pierwszą w Polsce platformą do nauki programowania online. W wolnym czasie gra na pianinie.