Znalezienie dobrego programisty nie jest łatwe i wie to każdy, kto wdraża e-biznes. Mówiąc „dobry” mam na myśli człowieka, który potrafi rozmawiać, odnajduje się na każdym poziomie tworzonego oprogramowania i potrafi oddawać na czas swoje „dzieła”. Tylko tyle i aż tyle.
Zdjęcie royalty free z Fotolia
Po doświadczeniach czternastu lat pracy w IT, zobaczyłem chyba już wszystkie blaski i cienie działań z zespołem programistycznym. Sam byłem programistą, teraz zarządzam takimi zespołami. Dzięki temu wypracowałem metody poszukiwania i wyboru developerów. Jakie kwestie wziąć pod uwagę, aby nie trafić na mitomana lub niekomunikatywnego gnoma? Poniższe sposoby odnoszą się do programistów tworzących dla internetu w technologiach takich jak: PHP, RoR, Python, Angular i podobne.
Zdalnie, czy na miejscu?
Nie polecam pracy z freelancerami (solistami). Podejście większości z nich do harmonogramu projektu jest dosyć „plastyczne”. Brak pojawiania się na Skype na umówione rozmowy i zdawkowe wysyłanie informacji: „leżę w szpitalu po wypadku” (co drugi tak mówi), to chleb powszedni takich zleceń. Więcej męczarni niż pożytku. Z czego to wynika?
Z braku samodyscypliny oraz z poczucia programisty, że skoro już jesteśmy w trakcie projektu, to zleceniodawca pomimo wtop pewnie nie zrezygnuje. Ja rozumiem, że developer ma wymagającą, umysłową pracę i często musi się zresetować. Jednak mam wrażenie, że niektórzy freelancerzy cały czas są na resecie, w piżamie i daleko myślami od Twoich oczekiwań.
Istnieją dobrzy freelancerzy, ale są mniejszością. Jeśli chcesz grać w lotto i zastanawiać się czy trafisz na dojrzałego gościa, czy na wiecznego studenta, Twoja sprawa. Ja bym nie ryzykował. Czasami rozwiązaniem może być serwis typu elance.com, gdzie jest system ocen i można pooglądać, jak zdalni wykonawcy zleceń robili wcześniejsze projekty i jak zostały ocenione, ale to też nie zawsze się sprawdza.
Więc freelancer, czy etat? Jak chcesz, byle człowiek pracował osiem godzin dziennie w Twoim biurze. Programiści na etacie i tak często kodują 3-5h dziennie (potem eksplorują wykopy i inne bajery). Tak jak innych pracowników, trzeba ich stale motywować, aby nie przesadzili z relaksem. Zdalnie Ci się to nie uda. Potrzebny jest kontakt na żywo. Skype co dwa dni to za mało.
Nawet Yahoo! dodał w swoim HR nowe przykazanie: „żadnej pracy zdalnej!”. Popieram! Jeśli tylko masz taką możliwość wybieraj ludzi skłonnych pracować u Ciebie w biurze. Jeśli są z Twojego miasta, to raczej nie podadzą Ci sensownych powodów, aby koniecznie pracować w domu.
Gdzie ich szukać?
Kilka moich miejsc do poszukiwania developerów:
- Goldenline, LinkedIn – wpisuję np. „programista php wrocław” i do wybranych wysyłam prywatną wiadomość z ofertą (kilka zdań i parametrów oferty).
- Imprezy startupowe, hackathony – to świetne miejsce do wyłapywania talentów. Np. wchodzisz na listę uczestników danego Startup Weekend, oglądasz projekty jakie robili i uderzasz na czacie, mailu czy Facebooku. Oczywiście młody startupowiec może często nie mieć ochoty na etat, ale zawsze się znajdzie kilku chętnych.
- Fora programistyczne – np. php.pl, zazwyczaj takie fora mają dział ogłoszeń, ale ja często uderzam bezpośrednio do aktywnych użytkowników takiego forum. Ich aktywność oznacza zaangażowanie, które lubię.
- Portale ogłoszeniowe – programiści, tak jak inni pracownicy lubią ciągle szukać szans na wyższe zarobki, więc przeglądają oferty. Może trafią także na Twoje ogłoszenie.
Jeśli skontaktujesz się z kandydatem już od początku sprawdzaj jego umiejętności komunikacyjne. Jeśli po dostaniu CV od developera, prosisz go jeszcze o jakiś dokument i dostajesz go po dwóch tygodniach, to albo facetowi nie zależy na tej pracy, albo nie rozumie istotności komunikacji w swoim zawodzie.
Czas na rekrutację! Jak dobrze wybrać?
Kilka elementów i kompetencji programisty istotnych z punktu widzenia np. project managera:
- Komunikacja – ten element najczęściej leży u developerów. Jeśli na rozmowie widzisz, że kandydat ma zadatki autystyka (nie deprecjonując tej choroby) to gwarantuje Ci, że gość nie odnajdzie się w pracy zespołowej. Ja nie krytykuję osoby o takim temperamencie, ale tak jak na handlowca nie zatrudnia się introwertyka, tak programista musi przejawiać minimum zdolności komunikowania się. W wielu projektach trafiałem na osoby, które zawsze po swojemu interpretowały zadania, a o tym, że poinformują Cię, że mają jakiś problem, to możesz zapomnieć. Problem gotowy.
- Dokonania – kiedy napisałem na swoim blogu o tym, że oczekuję od programisty portfolio, mało nie zostałem zlinczowany przez developerów. Po pierwsze, jeśli Twój kandydat również jest oburzony takim wymaganiem to znaczy, że chyba pomylił rekrutację z megalomanią. Po drugie, jeśli nie ma nic do pokazania to znaczy, że nic nie zrobił i cała jego opowieść jest mało wiarygodna. Można oczywiście zatrudnić takiego człowieka, ale za niską stawkę. Nie daj się nabić w butelkę.
- Ego– niektórzy programiści traktują nie-programistów jak lamerów, włącznie z końcowymi użytkownikami. Jeśli widzisz symptomy takiego podejścia, to nie licz na dobrą współpracę z taką osobą i na jej wyrozumiałość, bo ktoś czegoś nie rozumie. Szanuj się.
- Myślenie systemowe – czy kandydat pomimo specjalizacji robienia np. w backendzie, interesuje się tym, co się dzieje we frontendzie? Czy widzi, jak jego sposób komunikacji wpływa na jakość pracy całego zespołu? Czy interesuje się po co robimy dany projekt i jaka będzie wartość dla klienta? Bo jeśli jest jednoosobowym silosem, który ma gdzieś to, co się dzieje w innych obszarach projektu, to na pewno nie stanie się graczem zespołowym.
- Motywacja – czy on/ona lubi to robić, czy czuje radość, kiedy ktoś używa jego softu? Czy jeśli ma obsuwę to zostanie godzinę dłużej (w kolejny dzień wyjdzie godzinę wcześniej), żeby dokończyć to co zaplanował? Jeśli odpowiedź brzmi tak, to fajnie trafiłeś.
- Wiedza – krótko i na temat. Niech zrobi kawałek oprogramowania (praca 1-2 dni), odpłatnie. To najlepszy test umiejętności miękkich i twardych. Coś jak Assesment Center. Wielu kandydatów rezygnuje już na tym etapie.
Nie wgłębiam się w metody sprawdzania wiedzy technologicznej, bo to zależy od tego jakie technologie stosujesz. Powyższe są uniwersalne. Nie chcę też powiedzieć, że programiści to samo zło, jest wielu wspaniałych, którzy kochają to, co robią. W innych zawodach też jest wielu partaczy. Chodzi o to, aby nie zatrudnić kogoś z kim masz się męczyć, a projekty stale będą zaliczać duże opóźnienia. Chodzi o znalezienie człowieka, któremu się chce i gdzie możliwy jest wzajemny szacunek.
Reasumując, wolę komunikatywnego programistę niż gościa, który wygrał X konkursów programistycznych, ale generalnie chce, aby dać mu święty spokój. Tych drugich unikaj!
PS Przepraszam panie programistki za męską formę w powyższym wpisie 🙂
Maciej Oleksy
Od 20 lat w web/IT, jako programista i project manager. Kilka lat temu założył Kodilla.com i wspiera rozwój edukacji poprzez naukę programowania dla początkujących w celu przebranżowienia się.