Discutând cu diverși programatori, am ajuns la concluzia că majoritatea acestora au câteva probleme comune legate de interviul tehnic:

  • Vor să aibă un interviu tehnic înainte să discute cu HR-ul. Deoarece văd HR-ul ca un fel de gatekeeper către job-ul dorit care îi oprește să-și demonstreze capacitățile tehnice pe baza cărora vor fi sigur angajați. Personal, consider că nu e o idee bună și că un interviu de HR ar trebui să fie întotdeauna primul pas al procesului de recrutare.
  • Consideră că task-urile practice pe care le au de făcut la interviul tehnic nu sunt reprezentative pentru munca reală pe care o vor efectua dacă vor fi angajați.
  • Dacă la interviu primesc un task practic, legat de activitatea reala de zi cu zi a companiei, consideră că se profită de interviu în beneficiul companiei, iar codul pe care l-au scris va fi folosit comercial.

 

Având în vedere aceste probleme, am încercat să imaginez un sistem ce poate face experiența interviului mai relevantă, atât pentru candidat, cât și pentru companie. I-am zis “interviul tehnic plătit de tip drop-in“.

 

Cum funcționează?

Candidatul aplică la job prin una din metodele clasice (evident, recomand Echoz pentru asta). Este contactat de companie care-l informează că poate veni oricând să dea interviul tehnic practic, la orice oră și fără a anunța în prealabil acest lucru.

În companie există o cameră/zonă, de preferat situată în zona de lucru a programatorilor, unde candidatul are la dispoziție un calculator pentru interviul practic. Candidatului îi va fi asignat un task, corespunzător cu job-ul la care aplică. Fiecare task are atașat un anumit număr de teste (folosind principiile Test-driven development – TDD) ce trebuie să treacă(funcționeze) pentru ca task-ul să fie considerat rezolvat. În momentul în care un anumit procentaj din teste sunt funcționale, candidatul este eligibil de a fi plătit pentru munca efectuată în cadrul interviului.

După încheierea testului practic, procesul de recrutare își urmează cursul firesc.

 

Ce task-uri vor fi asignate?

În viata unei companii apar frecvent task-uri ce au doar legătură indirectă cu core business-ul și pot fi dezvoltate independent. Un plugin de wordpress, un utilitar de citit un fișier, un tool de diagnostic, etc.

Un team-lead este asignat pentru a urmări zi de zi activitatea, iar când observă un astfel de task îl poate transforma într-un “task de interviu”. Îi dă mai multe estimări,  de maxim 2-3 ore, în funcție de experiența programatorului ce va lucra la el. De asemenea, TL-ul va crea testele ce vor trebui să fie trecute de codul scris la interviu. TL-ul va asocia task-ul la o serie de cunoștințe/criterii pe care le va urmări la acel task.

În momentul în care task-ul este încheiat în cadrul unui interviu, codul va fi trimis TL-ului, ce îl va analiza și va continua cu pașii următori din interviu.

 

Uneltele tehnice

Uneltele de lucru ar trebui să fie cât mai apropiate de cele folosite zi de zi de programatorii angajați în companie. Dar în același timp ar trebui să existe și alte opțiuni asemănătoare pentru a se plia pe un procentaj cât mai mare de programatori.

Așa că aș sugera să existe câte două opțiuni din fiecare tip de unealtă folosită în dezvoltare, dintre cele mai populare. Pentru Java ar putea fi așa:

  • Două IDE-uri: Eclipse și IntelliJ
  • Două sisteme de operare: Windows și Linux
  • Două editoare de text: Notepad++ și Sublime
  • Două servere web: Tomcat și Glassfish
  • Două RDBMS: MySQL și OracleXE

 

Plata

Spre deosebire de SUA, unde există conceptul de “working interview”, în România nu știu să existe o soluție simplă și 100% legală de plată pentru munca efectuată în cadrul companiei de către o persoană fizică din exterior. Însă o companie deșteaptă poate găsi cu ușurință soluții de compromis: vouchere la magazine online, vouchere la diverse activități sportive, produse fizice, etc.

 

De ce să utilizez un astfel de tip de interviu?

Știu că trendul actual este de a permite candidatului să dea testele tehnice de la distanță. Există o mulțime de soluții de testare tehnică remote și le înțeleg valoarea din punctul de vedere al companiei angajatoare. Companiile au automatizat și eficientizat cât de mult posibil procesul de recrutare, scoțând parțial factorul uman din ecuație. Candidații aplică la job, dau interviul tehnic și le sunt comunicate rezultatele fără să interacționeze direct cu compania.

Să nu uităm însă că IT-ul este în momentul de față o piață a candidaților și că modalitatea de testare trebuie adaptată la dorințele acestora, nu ale companiilor. Consider că o astfel de soluție de testare offline, de tip drop-in, eventual și plătită, ar fi adaptată mult mai bine la nevoile reale ale candidaților. Pe lângă interviul în sine, mult mai similar cu munca reală, prin acestă metodă candidatul are ocazia să vadă compania, birourile, locația sediului, transportul până acolo, etc. Înțeleg că nu e eficient să petreci 1-2 ore în trafic pentru a da un interviul, dar dacă miza este petrecerea a o treime din viață pentru următorii 4-5 ani în acel loc, poate merită efortul.

Dar și pentru compania angajatoare există motive pentru care să aleagă acest tip de interviu. Compania are avantajul că primește real work hours, chiar dacă interviul nu s-a încheiat cu o angajare. În plus, o companie poate profita de avantajul de a avea candidatul la sediul propriu pentru a-l atrage cu acele extra features: birouri arătoase, echipamente moderne, sală de relaxare, etc.

 

Am imaginat acest interviu tehnic plătit de tip drop-in dintr-o nevoie reală de adaptare la dorințele candidaților din IT. Dacă aveți sugestii despre cum poate fi îmbunătățit acest sistem, mi-ar plăcea să primesc un feedback.

PS: În cazul în care una din companiile cliente Echoz decide să implementeze o astfel de soluție de testare tehnică și dorește să înțeleagă mai bine perspectiva candidatului IT-ist, ne oferim să îi ajutăm cu consultanță gratuită.

 

Interviul tehnic plătit de tip drop-in

Vrei să te anunţăm când scriem ceva nou?

Politica de confidențialitate