29.12.20216 min

Doug FooSr Expert / Associate Partner

Jak przeprowadzać rozmowy kwalifikacyjne z programistami

Testy kodowania, testy designu itd., czyli metodologia prowadzenia rozmów kwalifikacyjnych i oceny kandydatów na inżynierów oprogramowania.

Jak przeprowadzać rozmowy kwalifikacyjne z programistami

“Nie wiem dlaczego, ale podoba mi się ten kandydat, mam przeczucie, że się nada” — to jest zły sposób zatrudniania ludzi. W swojej ostatniej książce „Talking to Strangers” Malcolm Gladwell zwraca uwagę na to, co mówi nauka na temat “przeczucia” i że zazwyczaj jest ono błędne. Sędziowie w systemie prawnym, których zadaniem jest „osądzanie” charakteru osoby, uważają, że mają doświadczenie i wyczucie w odczytywaniu danej osoby na podstawie jej wyglądu lub tonu głosu, ale często się mylą. Potrzebny jest bardziej systematyczny proces. Przejdźmy przez niektóre z popularnych metod wykorzystywanych na rozmowie kwalifikacyjnej i przeanalizujmy je.


Test z kodowania

Prawdopodobnie jest to metoda, gdzie zdania są najbardziej podzielone — czy dać programistom test i w jaki sposób go przeprowadzić? W pewnym sensie jest to obraźliwe i oczerniające, ale większość doświadczonych menedżerów może powiedzieć, jak szokująco łatwo jest zostać oszukanym, jeśli nie przeprowadzisz podstawowego testu.


Istnieją 3 popularne sposoby, aby to zrobić.

Test wykonany na tablicy na żywo

Przedstaw problem i pozwól kandydatowi znaleźć drogę wyjścia. Dodaj trochę złożoności, aby zobaczyć, jak się dostosowują, zapytaj ich o sytuację szczególną i wydajność. Wszystkie trudne problemy wydają się oczywiste po rozwiązaniu, więc nie bądź podstępny — wybierz coś łatwego do zrozumienia.

  • Zalety: Dobry programista powinien być podekscytowany, że może stworzyć jakiś kod
  • Wady: Najlepszy programista, jakiego znałem, jąkałby się i panikował 



Test online na czas (Hackerrank, itp.)

Niektórzy ludzie pracują lepiej bez rekrutującego ciężko oddychającego za plecami (zresztą kto nie pracowałby lepiej?). Testy, takie jak Hackerrank, nie są złym podejściem. Zastrzeżeniem/minusem jest to, że ludzie mogą oszukiwać (szukając odpowiedzi w Google lub dzwoniąc po pomoc — kurcze, kto by nie dzwonił jeśli jest dobrze płatna? $$$)

  • Zalety: Nie zajmuje czasu zespołów przeprowadzających rozmowy kwalifikacyjne
  • Wady: Łatwość oszukiwania — co, jak podejrzewam, zdarza się dość często



Offline HW (projekt)

Miałem z tym do czynienia kilka razy — problem z kodowaniem, gdzie dają Ci projekt do wykonania w ciągu tygodnia lub dwóch. Wykonanie takiego projektu może trwać od kilku godzin do kilku dni. I jednak może być trochę zbyteczne, jeśli nie płacisz dobrej stawki, nie oferujesz pracy marzeń, lub jesteś zdesperowany.

  • Zalety: Daje to kandydatowi szansę na udowodnienie swojej wartości (np. dobre dla kandydatów z borderline)
  • Wady: Wystraszy lub odstraszy większość kandydatów



Porady dotyczące testów z kodowania

Jeśli kodowanie jest ważne, to zrób test na żywo, ale zrób z tego pozytywne doświadczenie i zacznij prosto, wiedząc, że nie jest to typowy sposób, w jaki ludzie naprawdę kodują. Pamiętaj również, że wiele osób wykonuje dziesiątki do setek ćwiczeń w LeetCode czy HackerRank i właśnie tak się wcześniej przygotowują — mówiąc krótko, unikalny/trudny problem, który przedstawiasz — może być czymś, co znają już bardzo dobrze.


Design case study

Dość powszechnym krokiem w procesie rekrutacji jest rozmowa na temat designu systemu. Wielu kandydatów przygotowuje się do tego poprzez słynny przewodnik “Grokking the System Interview” lub inne materiały online (i tak, powinieneś je przestudiować, jeśli rekrutujesz).

Idea jest taka, aby przedstawić podstawowy system, który trzeba zbudować i przejść przez to, jak go zaprojektować. W typowych przypadkach trzeba zaprojektować klon Twittera, Dropboxa, Ubera i innych popularnych serwisów.

Czego szukasz:

  • Umiejętności wyjaśnienia projektu i jego kompromisów,
  • Zrozumienia nowoczesnych technologii i ich zastosowania,
  • Poczucia wiedzy i niewiedzy, oraz wyczucia, co się sprawdza, a co nie,
  • Niezarozumiałej, dobrej postawy podczas wyjaśniania i obrony swoich wyborów.


Myślę, że jest to świetny sposób, aby dowiedzieć się, czy kandydat jest w stanie samodzielnie myśleć o rozwiązaniach. Należy oczekiwać naprawdę silnej intuicji, od starszych kandydatów umiejętności rozwiązywania problemów, natomiast od wszystkich bystrego oka na rzeczy, które działają/nie działają. Jest to na tyle ważne, że wiele firm często przeprowadza dwie rundy designu.


Przespaceruj się po CV

Nie widziałem, żeby robiono to tak często, ale polecam poświęcić 15-20 minut na przejście przez karierę kandydata krok po kroku, od studiów do chwili obecnej. Poznaj ich motywacje i dowiedz się, czego nauczyli się w każdej pracy. Jest to świetny sposób na poznanie danej osoby i tego, co ją napędza. Daje im to również szansę na wyjaśnienie ewentualnych braków. Przechodząc przez CV powoli i szczegółowo, dowiesz się naprawdę wiele ciekawych rzeczy.

  • Tak! — pozwól kandydatowi opowiedzieć swoją historię
  • Nie! — nie bądź zbyt techniczny, ale raczej subiektywny w ocenie ich historii


Działa to również jako ocena osobowości, komunikacji i dopasowania do konkretnej roli. Czy dana osoba może coś powiedzieć o swoim doświadczeniu i czy odpowiada ono naszym potrzebom?


Rozmowy kwalifikacyjne sytuacyjne

Sytuacyjne lub doświadczeniowe rozmowy kwalifikacyjne są stosowane wszędzie, ale prawdopodobnie to mój najmniej ulubiony typ. Typowe rzeczy, o które pytamy, mogą być przez kandydatów dobrze przygotowane, a nawet w pełni upiększone dzięki praktyce. Do takich pytań należą np.:

  • Twoje najtrudniejsze zadanie/projekt,
  • Najgorszy projekt lub najgorsza katastrofa produkcyjna,
  • Twoje najbardziej innowacyjne osiągnięcie techniczne,
  • Czas, kiedy musiałeś ... [tu wstaw cokolwiek].


Uczciwie jest chcieć kogoś, kto ma doświadczenie w bardzo konkretnej sytuacji, ale jest to również nierealistyczne, aby ktoś pamiętał dokładne sytuacje i powiedział o nich z miejsca. Większość zadawanych pytań jest dobrze znana, więc staje się to (podobnie jak test z kodowania), grą polegającą na przygotowaniu/przypomnieniu sobie odpowiedzi.

Z drugiej strony, doświadczenie ma znaczenie i należy upewnić się, że kandydat ma doświadczenie, którego potrzebujesz w określonych obszarach. Świetny programista, który nie potrafi szczegółowo opisać ciekawego problemu, jest prawdopodobnie oszustem.


Sprawdzanie referencji

Prawdziwą wartość ma rozmowa z osobami z zespołu kandydata, aby poznać najprawdziwszą z prawd. Myślę, że większość kandydatów przesadza lub wręcz kłamie na temat tego, co robili — głównie dlatego, że referencje są obarczone prawnymi problemami związanymi ze zniesławieniem i pomówieniem, dlatego rzadko zdarza się, by kandydaci otrzymywali negatywne lub krytyczne informacje zwrotne.


Niemniej jednak kilka rzeczy do sprawdzenia:

  • Spójrz na profil kandydata na LinkedIn i potwierdź to co mówili o swoich rolach (mniej prawdopodobne jest, że będą kłamać, kiedy współpracownicy mogą sprawdzić, co napisali),
  • Spójrz na ich projekty badawcze lub na GitHub i sprawdź, co robili,
  • Zobacz, czy masz jakichś wspólnych znajomych lub, czy znasz kogoś z ich przeszłych firm. Nie krępuj się i zapytaj o nich (to może być uznane za podstępne, ale dla ważnej roli jest to odpowiedzialna rzecz do zrobienia). Możesz skonsultować się z działem kadr w sprawie tych działań. Jestem pewny, że HR powie, żeby tego nie robić, ale możesz zapytać :)


Ocena wyników

Polecam stworzenie tabeli i przygotowywanie rozmów kwalifikacyjnych w oparciu o spójny system punktacji. Powinny być co najmniej 3 poziomy:

  • Wyjątkowy — kandydat znacznie przekracza wyznaczoną poprzeczkę i jest wybitny w danej dziedzinie,
  • Akceptowalny — kandydat stawia sobie poprzeczkę wyżej, ale nie wyróżnia się niczym szczególnym w tej dziedzinie,
  • Niedopuszczalne — kandydat znajduje się poniżej poprzeczki i jest wyraźnie słaby w tym obszarze.


Stwórz podstawową tabelę punktacji każdej rundy testowej i wstępnie ustal wymagania dotyczące zatrudnienia. Nie wahaj się w poszczególnych przypadkach — trzymaj się ustalonych zasad.

Większość z nas prawdopodobnie ma ten sam problem i posiada do wyboru niewystarczającą ilość kandydatów nad poprzeczką — walcz z pokusą jej obniżenia, zamiast tego ustal priorytety i upewnij się, że wiesz, czego potrzebujesz od samego początku.


Powodzenia w zatrudnianiu!


Oryginał tekstu w języku angielskim przeczytasz tutaj.

<p>Loading...</p>