Problem z "zadaniami na 2-3 dni" jest taki, że nie każdy ma tyle samo wolnego czasu. Nie mamy wiecznie po 25 lat. Jeden kandydat jest wolny jak ptak, drugi ma małe dzieci. Obaj świetnie radzą sobie w codziennej pracy, ale jeśli mają wygospodarować dodatkowy czas na spore zadanie domowe - to są już w bardzo różnej sytuacji.
Oczywiście bywają ustalenia elastyczne: "niech pan poświęci na to z 2 dni, ale ja wiem, że mały Krzysiu panu kaszle... więc przysłać można jak będzie gotowe... umówmy się na spokojnie, że do końca przyszłego tygodnia". Niby super. Tylko powstaje wtedy inny problem.
Programista to ktoś, od kogo oczekuje się umiejętności rozwiązywania problemów. Jeśli nie umie zamknąć Krzysia w szafie na kilka godzin, to raczej się do tej pracy nie nadaje.
Tak i samochody naprawiać, i ludzi leczyć powinien... w końcu oczekuje się rozwiązywania problemów ;) Z własną rodziną przede wszystkim.
A mowa była nie o "kilku godzinach" (zgoda), tylko o kilku dniach.
Przy zatrudnianiu kucharza nie powie mu się: "to niech pan przyjdzie u nas gotować przez tydzień, a my się zastanowimy". To się zdarza, owszem - ale nazywa się (w każdej branży) STAŻEM, i opiera się na innych założeniach.
W zaproszeniu kucharza na jedną zmianę nie byłoby nic dziwnego. Jeśli restauracja nie jest w stanie ocenić po takiej próbce pracy, czy ktoś się do niej nadaje - może coś jest nie tak z kompetencjami rekrutacyjnymi?
Podobnie jak dziennikarz zgłasza się do pracy w redakcji, to będzie miał rozmowę, przyniesie swoje portfolio itd. Ale jest naprawdę mało prawdopodobne, że usłyszy: "to niech pan teraz jedzie do Inowrocławia zrobić reportaż o wyścigach kotów, porozmawia z ludźmi, przepyta ekspertów, za tydzień czekam na materiał, a wtedy może się zastanowię, czy w ogóle dalej rozmawiamy, bo takich samych reportaży będę miał dziesięć".
To dlaczego akurat w naszej branży mielibyśmy się godzić na takie traktowanie?
Nikt nie sprawdzi, czy praca rzeczywiście zajęła 2 dni. A zatem konkurujemy z kandydatami, którzy nie musieli latać po syropek dla Krzysia, tylko siedzieli nad zadaniem 7 dni. (Czy nawet cały tydzień).
Dlatego po takim zadaniu domowym robi się godzinną sesję pair-programming, i każe wprowadzić jakieś drobne zmiany. No i wtedy wychodzi jakie tempo ma kandydat.
Przy założeniu, że każdy, kto złożył zadanie, zostaje zaproszony do jakiegoś następnego etapu. Założeniu mało realistycznym. Może i "robi się" - ale w praktyce mało kto zrobi :) Bo firma nie będzie rozpisywać sobie w kalendarzu np. dwunastu takich sesji pair programming, jeśli może wybrać z nadesłanych rozwiązań najlepszą czwórkę.
Ostatnio słyszałem ciekawy pomysł, żeby nie dawać kodu do napisania od zera, tylko dać jakiś istniejący kod i kazać coś do tego kodu dopisać/coś zmienić, ewentualnie powiedzieć co by się zrobiło inaczej. Bardziej to oddaje codzienną prace niż szybkie naklepanie CRUDa
To ja dziękuję. Już raz dostałem takie zadanie. Kompletnie z d... Miałem sobie wziąć wyimaginować sobie bazę nie znając jej struktury, nie mogąc do niej zajrzeć, nie wiedząc jakie dane ma w sobie, a następnie obsłużyć jakieś wyimaginowane wyjątki, errory, i tym podobny stuff.
To jest źle pomyślane zadanie. Pomysł z dokończeniem powinien zakładać, że kandydat dokańcza istniejący projekt, a nie jakiś hipotetyczny.
Czyli tak, jak (przeważnie) w prawdziwej pracy.