Angajarea specialiștilor IT este o sarcină complicată. În primul rând, pe piață se resimte o lipsă de personal experimentat, iar ei sunt conștienți de aceasta. Candidații nu sunt adesea dispuși să petreacă mult timp cu "activitățile de selecție" ale angajatorului dacă nu sunt atrași din start. Pratica anterioară de a oferi un test de 8+ ore nu mai funcționează. Pentru o evaluare inițială a cunoștințelor și pentru a filtra candidații înainte de un interviu tehnic complet, este necesar să se utilizeze metode mai rapide. În al doilea rând, pentru a evalua corect cunoștințele și abilitățile, trebuie să ai asemenea abilități sau să implici un coleg care le deține. Aceste dificultăți pot fi rezolvate prin metodele despre care voi vorbi în acest articol. Eu aplic aceste metode și am creat un fel de clasament pentru mine.
Așadar, top 7 metode de verificare rapidă a competențelor specialiștilor IT înainte de interviu:
7. Analiza portofoliului, a exemplarelor de cod, a repositoarelor deschise ale candidatului.
6. O sarcină de testare scurtă, cu un timp limitat (finalizată în 30-60 de minute).
5. Un interviu scurt prin telefon/Skype despre abilități (ca un chestionar, doar online și vocal).
4. Live-Doing (Codare) – rezolvăm o problemă simplă în timp real cu ecran partajat.
3. Chestionare cu întrebări deschise referitoare la experiență.
2. Teste scurte cu opțiuni răspuns, cu un timp limitat pentru completare.
1. O sarcină de testare în mai multe etape, prima etapă fiind finalizată înainte de interviu.
În continuare, analizez aceste metode, avantajele și dezavantajele lor, precum și situațiile în care folosesc fiecare metodă de verificare rapidă a competențelor programatorilor.

În articolul anterior despre funnel-ul de angajare am realizat un sondaj printre cititori referitor la metodele de verificare rapidă a abilităților specialiștilor IT. În acest articol vorbesc despre metodele care îmi plac personal, de ce îmi plac și cum le aplic. Încep cu prima poziție și termin cu a șaptea.
1. O sarcină de testare în mai multe etape, prima etapă fiind finalizată înainte de interviu.
Consider că această metodă de evaluare a competențelor dezvoltatorilor este cea mai bună. Spre deosebire de misiunile tradiționale, când spui „ia sarcina și fă-o”, în varianta mea, procesul de realizare a misiunii este împărțit în etape - discutarea și înțelegerea sarcinii, proiectarea soluției și evaluarea resurselor necesare, mai multe etape de implementare a soluției, documentarea și predarea-supravegherea soluției. Această abordare este mai apropiată de tehnologiile moderne de dezvoltare a software-ului decât simpla „ia și fă”. Detalii în continuare.
Când folosesc această metodă
Pentru proiectele mele, de obicei angajez angajați remote care dezvoltă o parte separată, distinctă și relativ independentă a proiectului. Aceasta reduce necesitatea comunicării între angajați, adesea până la zero. Angajații comunică nu între ei, ci cu liderul de proiect. De aceea, este important pentru mine să evaluez imediat capacitatea unei persoane de a înțelege rapid sarcina, de a pune întrebări clarificatoare, de a elabora un plan de acțiune pentru rezolvarea sarcinii și de a evalua resursele și timpul necesar. În acest sens, îmi este de mare ajutor un test de misiune în mai multe etape.
Cum se realizează
Identificăm și formulăm o sarcină independentă și originală legată de proiectul pe care dezvoltatorul urmează să lucreze. De obicei, descriu ca sarcină un prototip simplificat al sarcinii principale sau al produsului viitor, pentru realizarea căruia dezvoltatorul va trebui să se confrunte cu problemele și tehnologiile principale ale proiectului.
Primul pas al misiunii de test este familiarizarea cu sarcina, clarificarea neclarităților, proiectarea soluției, planificarea pașilor pentru rezolvarea sarcinii și evaluarea timpului necesar pentru realizarea pașilor individuali și a întregii misiuni de test. La final, mă aștept la un document de 1-2 pagini, în care să fie prezentat planul de acțiune al dezvoltatorului și evaluarea timpului. De asemenea, cer candidaților să indice care dintre etape ar dori să o realizeze complet pentru a-și dovedi abilitățile în practică. Deocamdată, nu este nevoie să programeze nimic.
Această sarcină (aceleași) este distribuită mai multor candidați. Se așteaptă ca răspunsurile din partea candidaților să sosească în ziua următoare. Apoi, în termen de 2-3 zile, când toate răspunsurile au fost primite, analizăm ce ne-au trimis candidații și ce întrebări suplimentare au pus înainte de a începe să execute sarcina. Pe baza acestor informații, putem invita la următoarea etapă orice număr de candidați de care aveți nevoie.
Următoarea etapă este un scurt interviu. Avem deja despre ce să discutăm. Candidații își fac o idee aproximativă despre domeniul de activitate al proiectului la care urmează să lucreze. Scopul principal al acestui interviu este de a răspunde la întrebările tehnice ale candidatului și de a-l motiva să execute sarcina principală de testare – programarea acelei părți a sarcinii pe care și-a ales-o singur. Sau a acelei părți, a cărei implementare doriți să o vedeți.
Este întotdeauna foarte interesant să observăm ce parte a sarcinii dorește să o implementeze dezvoltatorul. Unii preferă să schițeze structura proiectului, să decompună soluția în module și clase, adică să se miște de sus în jos. Alții – evidențiază o subsarcină separată, considerată cea mai importantă din punctul lor de vedere, fără a contura soluția în ansamblu. Așadar, merg de jos în sus – de la cea mai complexă subsarcină la întreaga soluție.
Avantajele
Putem observa erudiția candidatului, aplicabilitatea cunoștințelor sale la proiectul nostru și gradul de dezvoltare a abilităților de comunicare. De asemenea, ne este ușor să comparăm candidații între ei. De obicei, îi elimin pe acei candidați care au dat evaluări prea optimiste sau prea pesimiste pentru timpul necesar realizării sarcinii. Desigur, am propria mea evaluare a timpului. O evaluare mică din partea candidatului vorbește cel mai probabil despre faptul că persoana nu s-a implicat în sarcină în mod corespunzător și a realizat acest test superficial. O evaluare prea mare a timpului vorbește de obicei despre faptul că candidatul nu are o înțelegere bună a domeniului de activitate, neavând experiență în temele de care am nevoie. Nu elimin candidații imediat pe baza evaluării lor, ci îi rog să-și motiveze evaluarea, dacă aceasta nu a fost deja motivată în mod suficient.
Unii pot considera această metodă complicată și costisitoare. Estimarea mea a efortului necesar pentru utilizarea acestei metode este că descrierea sarcinii de testare durează între 30 și 60 de minute, iar apoi verificarea răspunsului fiecărui candidat durează între 15 și 20 de minute. De obicei, candidații finalizează o astfel de sarcină de testare în maxim 1-2 ore, având astfel ocazia să se familiarizeze cu esența problemelor pe care urmează să le rezolve ulterior. Chiar și în această etapă, candidatul poate pierde interesul și poate renunța la comunicarea cu dvs., după ce a investit puțin timp.
Dezavantaje
În primul rând, trebuie să veniți cu o sarcină de testare originală, izolată și concisă, lucru care nu este întotdeauna posibil. În al doilea rând, nu toți candidații înțeleg imediat că în prima etapă nu este necesar să programeze. Unii încep imediat programarea și dispar timp de câteva zile, iar apoi trimit o sarcină de testare complet finalizată. Formal, ei nu au îndeplinit această sarcină de testare, deoarece nu au făcut ceea ce li s-a cerut. Dar, în același timp, au reușit, dacă au trimis o soluție adecvată pentru întreaga sarcină de testare. Pentru a evita astfel de situații, de obicei sun persoanele care au primit sarcina la două zile după ce le-a fost dată, pentru a verifica cum decurg lucrurile.
2. Teste scurte cu variante de răspuns, limitate în timp
Nu folosesc des această metodă, deși îmi place foarte mult și o consider una dintre cele mai bune metode de verificare rapidă a competențelor. Voi scrie un articol separat despre această metodă în curând. Aceste teste sunt folosite pe scară largă în diverse domenii de cunoaștere. Cel mai reprezentativ și tipic exemplu este examenul teoretic pentru obținerea permisului de conducere. În Rusia, acest examen conține 20 de întrebări, la care trebuie să răspundeți în 20 de minute. Este permisă o singură eroare. La două erori, trebuie să răspundeți fără greșeli la 10 întrebări suplimentare. Această metodă se automatizează foarte bine.
Din păcate, nu am întâlnit realizări bune ale unor teste similare pentru programatori. Dacă cunoașteți implementări bune ale unor teste similare pentru programatori, vă rog să scrieți în comentarii.
Cum se realizează
Am lucrat cu implementări independente ale unor teste similare de angajare la îndeplinirea comenzilor ca recrutor outsourcing. Implementarea unui astfel de test este complet posibilă. De exemplu, cu ajutorul Google Forms. Problema principală constă în formularea întrebărilor și a opțiunilor de răspuns. De obicei, imaginația angajatorilor este suficientă pentru 10 întrebări. Din păcate, în Google Forms nu este posibilă rotația întrebărilor dintr-un pool și limitarea timpului. Dacă cunoașteți un instrument online bun pentru crearea propriilor teste, unde puteți limita timpul de completare a testului și organizați selecția diferitelor întrebări pentru diferiți candidați, vă rog să scrieți despre astfel de servicii în comentarii.
Când folosesc această metodă
Acum folosesc această metodă la cererea angajatorilor, dacă au teste gata pe care le pot oferi candidaților. De asemenea, este posibil să combinăm aceste teste cu a patra metodă din clasamentul meu - cerem candidatului să își împărtășească ecranul și să finalizeze testul. În acest timp, puteți discuta cu el întrebările și opțiunile de răspuns.
Avantajele
O implementare bună a acestei metode este complet autonomă. Candidatul poate alege un moment convenabil pentru a finaliza testul și nu trebuie să îți pui la dispoziție mult timp.
Dezavantaje
Implementarea de calitate a acestei metode este destul de costisitoare și nu este foarte convenabilă pentru o companie mică care angajează noi angajați din când în când.
3. Chestionare cu întrebări deschise despre experiență
Acesta este un set de întrebări deschise, care îi oferă candidatului oportunitatea de a reflecta pe baza experienței sale. În acest caz, nu oferim opțiuni de răspuns. Întrebările deschise sunt acelea la care nu se poate răspunde simplu și concis. De exemplu, amintește-ți cea mai dificilă sarcină pe care ai rezolvat-o utilizând un astfel de framework? Care a fost dificultatea principală pentru tine? La aceste întrebări nu se poate răspunde simplu. Adevărul este că singurul răspuns simplu ar fi - nu am asemenea experiență, nu am lucrat cu acest instrument.
Cum se realizează
Se implementează ușor cu ajutorul Google Forms. Principalul lucru este să concepem întrebările. Eu folosesc câteva structuri standard.
Povestește despre ultimul proiect la care ai lucrat folosind XXX, ce a fost cel mai greu pentru tine în acest proiect?
Care sunt principalele avantaje ale tehnologiei XXX pentru tine, oferă exemple din experiența ta?
După ce ați ales tehnologia XXX, ce alte alternative ați luat în considerare și de ce ați ales anume XXX?În ce situații ați prefera tehnologia AAA în loc de BBB?
Povestiți despre cea mai dificilă problemă pe care ați rezolvat-o cu ajutorul XXX, care a fost dificultatea principală?
Astfel, aceste structuri pot fi aplicate la multe tehnologii din stack-ul vostru de lucru. Este dificil să răspundeți la aceste întrebări cu fraze standard din rețea, deoarece sunt personale și se referă la experiența personală. Răspunzând la aceste întrebări, candidatul își menține în minte gândul că, în timpul interviului, orice răspuns al său poate duce la întrebări suplimentare. Așadar, dacă nu există experiență, candidații se auto-exclud adesea, conștientizând că discuția ulterioară poate fi lipsită de sens.
Când folosesc această metodă
Când lucrez cu comenzi de selecție a specialiștilor, dacă clientul nu a propus propriul mod de verificare inițială a competențelor, folosesc această metodă. Am deja chestionare pregătite pe o serie de subiecte și nu este o problemă să aplic această metodă pentru un nou client.
Avantajele
Implementarea acestor chestionare este simplă folosind Google Forms. În plus, un nou chestionar poate fi creat pe baza celui anterior, înlocuind numele tehnologiilor și instrumentelor cu altele. De exemplu, un chestionar despre experiența cu React nu va fi foarte diferit de un chestionar despre experiența cu Angular.
Crearea unui astfel de chestionar durează 15-20 de minute, iar respondenții de obicei petrec 15-30 de minute pentru a răspunde. Timpul necesar este mic, dar obținem informații despre experiența personală a candidatului, pe care ne putem baza pentru a face fiecare interviu unic și mai interesant. De obicei, durata interviului după un astfel de chestionar este mai mică, deoarece nu este necesar să punem întrebări simple și repetitive.
Dezavantaje
Pentru a distinge răspunsul propriu al candidatul de cel „găsit pe Google”, trebuie să înțelegeți domeniul. Dar aceasta vine rapid cu experiența. După ce ați citit 10-20 de răspunsuri, veți învăța să distingeți răspunsurile originale ale candidaților de cele găsite online.
4. Live-Doing (Codare) – rezolvăm o problemă simplă în timp real, cu ecranul partajat.
Esenta acestei metode este de a cere candidatului să rezolve o sarcină simplă și de a observa procesul. Candidatul poate folosi orice, nu există nicio restricție în a căuta informații online. Candidatul poate simți stres din cauza observației asupra muncii sale. Nu toți candidații acceptă acest tip de evaluare a abilităților lor. Dar, pe de altă parte, această metodă permite să vedem ce cunoștințe are o persoană în cap, ce va putea folosi chiar și într-o situație stresantă și ce informații va căuta pe motorul de căutare. Nivelul candidatului devine vizibil aproape imediat. Începătorii folosesc cele mai simple, chiar primitive capabilități ale limbajului, adesea încep să implementeze funcționalități din biblioteci de bază manual. Candidatii mai experimentați se orientează bine în clasele, metodele și funcțiile de bază și pot rezolva rapid o sarcină simplă, de 2-3 ori mai repede decât începătorii, aplicând funcționalitățile cunoscute ale bibliotecilor de bază ale limbajului. Candidatii și mai experimentați încep de obicei cu discuții despre diferite abordări pentru a rezolva sarcina, descriind mai multe variante de soluție, întrebând care dintre variantele prezentate vreau să le văd implementate. Tot ce face candidatul poate fi discutat. Chiar și pe baza aceleași sarcini, interviurile pot fi foarte diferite, la fel ca și soluțiile candidaților.
Ca o variantă a acestei metode, puteți cere candidatului să completeze un test de evaluare a competențelor profesionale, explicând alegerea uneia sau alteia dintre opțiunile de răspuns. Spre deosebire de testarea obișnuită, veți înțelege cât de bine fundamentată a fost alegerea răspunsurilor. Puteți veni cu variante proprii ale acestei metode, având în vedere specificul ofertei dumneavoastră de muncă.
Cum se realizează
Această metodă poate fi ușor implementată prin Skype sau orice alt sistem similar de video-conferință care permite partajarea ecranului. Sarcinile pot fi create de dumneavoastră sau puteți utiliza platforme precum Code Wars, diverse teste gata pregătite.
Când folosesc această metodă
Când aleg programatori și nu este foarte clar din CV ce nivel de cunoștințe are candidatul, le propun acestora o interviu într-un astfel de format. Din experiența mea, aproximativ 90% dintre dezvoltatori nu au nimic împotrivă. Le face plăcere că de la prima întâlnire începe discuția despre programare, și nu întrebările stupide de genul „unde te vezi peste 5 ani?”.
Avantajele
În ciuda stresului și emoțiilor candidatului, este imediat evident nivelul general al abilităților acestuia. De asemenea, devin evidente abilitățile de comunicare ale candidatului – cum gândește, cum explică și cum își motivează deciziile. Dacă trebuie să discut despre candidat cu colegii, este simplu să fac o înregistrare video a ecranului meu și apoi să arăt interviul altor oameni.
Dezavantaje
Conexiunea poate fi întreruptă. Din cauza emoțiilor, candidatul poate începe să devină nesigur. În această situație, putem face o pauză și să-i dăm timp să reflecteze la problemă în solitudine, să sunăm după 10 minute și să continuăm. Dacă după aceea candidatul se comportă ciudat, merită să încercăm o altă metodă de evaluare a abilităților.
5. Un interviu scurt expres despre abilități prin telefon/Skype
Este pur și simplu o conversație vocală prin telefon, Skype sau alt sistem de comunicare vocală. În acest fel, putem evalua abilitățile de comunicare ale candidatului, erudiția și cunoștințele sale generale. Ca plan al discuției, putem folosi un chestionar. Ca opțiune, putem discuta mai în detaliu cu candidatul răspunsurile acestuia la chestionarul nostru.
Cum se realizează
Ne organizăm cu candidatul pentru o conversație și sunăm. Punem întrebări și notăm răspunsurile.
Când folosesc această metodă
Această metodă o aplic de obicei împreună cu chestionarul, când răspunsurile candidatului mi s-au părut originale sau insuficient convingătoare. Discut cu candidatul în jurul întrebărilor din chestionar și îmi clarific mai în detaliu opinia sa. Consider că o astfel de discuție este obligatorie atunci când abilitățile de comunicare ale candidatului sunt importante, precum și capacitatea de a-și formula gândurile într-un mod clar și accesibil.
Avantajele
Fără o discuție vocală pe teme profesionale, este de obicei imposibil să determinăm cât de bine își poate exprima gândurile candidatul.
Dezavantaje
Principala dezavantaj este timpul suplimentar necesar. De aceea folosesc această metodă în completare la altele, dacă este necesar. În plus, există candidați care discută excelent pe teme profesionale, dar în practică au puține abilități. Dacă aveți nevoie de un programator care să rezolve constant și calitativ sarcinile, atunci este mai bine să alegeți altă metodă de verificare inițială a competențelor. Dacă căutați un manager sau un analist, adică un specialist care traduce din limbajul uman în „limbajul de programare” și invers, atunci această metodă de verificare a competențelor va fi foarte utilă.
6. Sarcină scurtă de testare în timp (realizată în 30-60 minute)
Pentru anumite profesii, abilitatea specialistului de a găsi rapid soluții pentru sarcini este esențială. De regulă, sarcinile rezolvate sunt simple, dar timpul necesar pentru soluționare este important.
Cum se realizează
Ne înțelegem cu candidatul asupra timpului de executare a sarcinii de testare. La momentul stabilit, trimitem candidatului condițiile sarcinii și verificăm dacă a înțeles ce se așteaptă de la el. Măsurăm timpul petrecut de candidat pentru a rezolva sarcina. Analizăm soluția și timpul.
Când folosesc această metodă
În practica mea, această metodă a fost utilizată pentru a verifica competențele specialiștilor în suport tehnic, programatorilor SQL și testerilor (QA). Sarcinile au fost de tipul „găsește problemele și propune o soluție pentru a le rezolva”, „optimizează interogarea SQL astfel încât să funcționeze de 3 ori mai rapid” și așa mai departe. Bineînțeles, puteți crea propriile sarcini. Această metodă poate fi aplicată și dezvoltatorilor începători.
Avantajele
Ne dorim să ne dedicăm timpul doar pentru elaborarea și verificarea sarcinii. Candidatul poate alege un moment convenabil pentru a executa sarcina.
Dezavantaje
Principala problemă este că pe internet pot fi disponibile soluții pentru sarcinile dumneavoastră sau pentru sarcini similare, așa că trebuie să aveți la dispoziție o varietate de opțiuni și să inventați periodic noi sarcini. Dacă este necesar să testez viteza de reacție și cultura generală, personal aleg teste pe timp (metoda nr. 2).
7. Analiza portofoliului, exemple de cod, repositoare deschise ale candidatului
Acesta este, probabil, cel mai clar mod de a verifica competențele, cu condiția ca candidații să aibă un portofoliu și în echipa de selecție să fie specialiști capabili să evalueze portofoliul.
Cum se realizează
Analizăm CV-urile candidaților. Dacă găsim linkuri către portofolii, le studiem. Dacă nu există mențiuni despre portofoliu în CV, cerem portofoliul de la candidat.
Când folosesc această metodă
În practica mea, această metodă a fost utilizată foarte rar. Rareori în portofoliile candidaților putem găsi lucrări pe tema dorită. Candidații experimentați preferă adesea această metodă în locul unei sarcini de test standard și plictisitoare. Ei spun: „Uitați-vă la repo-ul meu, acolo sunt zeci de exemple ale soluțiilor mele la diverse probleme, veți vedea cum scriu cod.”
Avantajele
Se economisește timp pentru candidați. Dacă profesioniștii din echipa dumneavoastră au timp, este posibil să filtrați rapid, fără comunicare cu candidații, persoanele nepotrivite. În timp ce recrutorul caută candidați, colegul său evaluează portofoliul. Astfel, se realizează o muncă destul de rapidă și paralelă.
Dezavantaje
Această metodă nu poate fi aplicată pentru toate profesiile din IT. Pentru a evalua un portofoliu, trebuie să aveți abilități bine dezvoltate. Dacă nu sunteți specialist, nu veți putea evalua corect portofoliul.
Colegi, vă invit să discutăm despre cele citite în comentarii. Spuneți-ne ce alte metode de verificare rapidă a competențelor folosiți?
Sursa: habr.com
