Assumere specialisti IT non è un compito semplice. In primo luogo, attualmente c'è una carenza di personale esperto sul mercato, e loro lo sanno. I candidati spesso non sono disposti a dedicare molto tempo alle "attività di selezione" del datore di lavoro, a meno che non siano precedentemente interessati. La pratica un tempo popolare di "dare un test di oltre 8 ore" non funziona più. Per una valutazione iniziale delle conoscenze e per scremare i candidati prima di un colloquio tecnico a tutto tondo, è necessario utilizzare metodi alternativi e più rapidi. In secondo luogo, per una valutazione qualitativa delle conoscenze e delle competenze, è fondamentale avere tali competenze o coinvolgere un collega che le possieda. Queste difficoltà possono essere risolte usando i metodi di cui parlerò in questo articolo. Personalmente utilizzo questi metodi e ho creato una sorta di classifica.
Quindi, il mio top 7 di modi per una rapida verifica delle competenze degli specialisti IT prima del colloquio:
7. Esaminare il portfolio, esempi di codice, repository aperti del candidato.
6. Breve compito di prova a tempo (da completare in 30-60 minuti).
5. Breve colloquio telefonico/Skype sulle competenze (simile a un questionario, solo online e a voce).
4. Live-Doing (Coding) – risolvere un semplice problema in tempo reale con lo schermo condiviso.
3. Questionari con domande aperte sull'esperienza.
2. Brevi test con risposte a scelta, limitati nel tempo.
1. Compito di prova a più fasi, la prima fase viene completata prima del colloquio.
Di seguito, esaminerò dettagliatamente questi metodi, i loro vantaggi e svantaggi e le situazioni in cui utilizzo i vari metodi per una rapida verifica delle competenze dei programmatori.

Nell'articolo precedente sulla funnel di assunzione ho condotto un sondaggio tra i lettori sui metodi di rapida verifica delle competenze degli specialisti IT. In questo articolo, parlo dei metodi che personalmente mi piacciono, perché mi piacciono e come li applico. Inizio con il primo posto e finisco con il settimo.
1. Compito di prova a più fasi, la prima fase viene completata prima del colloquio.
Ritengo che questo metodo di verifica delle competenze degli sviluppatori sia il migliore. A differenza di un tradizionale incarico di prova in cui si dice "ecco il compito, vai e fallo", nel mio approccio il processo di esecuzione dell'incarico viene suddiviso in fasi: discussione e comprensione del compito, progettazione della soluzione e valutazione delle risorse richieste, diverse fasi di implementazione della soluzione, documentazione e consegna-accettazione della soluzione. Questo approccio è più vicino alla normale tecnologia di sviluppo software moderna rispetto al semplice "prendi e fai". Maggiori dettagli di seguito.
In quali casi utilizzo questo metodo
Per i miei progetti di solito assumo collaboratori remoti che sviluppano una parte separata, isolata e relativamente indipendente del progetto. Questo riduce la necessità di comunicazione tra i membri del team, spesso a zero. I collaboratori comunicano non tra di loro, ma con il project manager. Pertanto, è importante per me valutare immediatamente la capacità della persona di comprendere rapidamente il compito, fare domande di chiarimento, elaborare autonomamente un piano d'azione per risolvere il compito, valutare le risorse e il tempo necessari. In questo mi aiuta molto il compito di prova multi-step.
Come implementare
Identifichiamo e formuliamo un compito autonomo e originale legato al progetto su cui lo sviluppatore dovrà lavorare. Di solito descrivo come incarico un prototipo semplificato del compito principale o del futuro prodotto, per la realizzazione del quale lo sviluppatore dovrà affrontare le principali problematiche e tecnologie del progetto.
Il primo passo dell'incarico di prova consiste nella familiarizzazione con il compito, chiarimenti su elementi poco chiari, progettazione della soluzione, pianificazione delle fasi per risolvere il compito e valutazione del tempo necessario per completare le singole fasi e l'intero incarico di prova. All'uscita, mi aspetto un documento di 1-2 pagine in cui sia descritto il piano d'azione dello sviluppatore e la stima dei tempi. Chiedo anche ai candidati di indicare quale delle fasi desiderano realizzare completamente per dimostrare le proprie competenze nella pratica. Non è necessario programmare niente per il momento.
Questo compito (identico) viene assegnato a diversi candidati. Ci si aspetta che le risposte dei candidati arrivino il giorno successivo. Successivamente, dopo 2-3 giorni, quando tutte le risposte sono state ricevute, analizziamo cosa ci hanno inviato i candidati e quali domande di chiarimento hanno posto prima di iniziare a eseguire il compito. Sulla base di queste informazioni, possiamo invitare quanti più candidati desideriamo alla fase successiva.
La fase successiva consiste in un colloquio breve. Abbiamo già argomenti di cui parlare. Il candidato ha già una certa idea dell’area tematica del progetto su cui dovrà lavorare. L'obiettivo principale di questo colloquio è rispondere alle domande tecniche del candidato e motivarlo a eseguire il compito di prova principale: programmazione della parte del compito che ha scelto di affrontare. Oppure della parte la cui realizzazione desiderate vedere voi.
È sempre molto interessante osservare quale parte del compito il sviluppatore desidera realizzare. Alcuni preferiscono sviluppare la struttura del progetto, decomponendo la soluzione in moduli e classi, quindi si muovono dall'alto verso il basso. Altri invece evidenziano un sotto-task specifico, il più importante a loro avviso, senza delineare la soluzione nel suo insieme. Quindi si muovono dal basso verso l'alto, dalla sotto-attività più complessa fino alla soluzione complessiva.
Vantaggi
Possiamo vedere la cultura del candidato, l'applicabilità delle sue conoscenze al nostro progetto, il livello delle sue capacità comunicative. Inoltre, ci è facile confrontare i candidati tra loro. Di solito scarto i candidati che hanno fornito valutazioni di tempo di esecuzione troppo ottimistiche o troppo pessimistiche. Ovviamente, ho la mia personale stima dei tempi. Una stima bassa da parte del candidato suggerisce probabilmente che la persona non ha compreso adeguatamente il compito e ha svolto questo test in modo superficiale. Una stima del tempo troppo alta di solito indica che il candidato ha poca familiarità con l'area tematica, non ha esperienza nei temi che mi interessano. Non scarto i candidati immediatamente sulla base della loro valutazione, ma chiedo di motivare la loro valutazione, se non è già stata motivata adeguatamente.
Per alcuni, questo metodo potrebbe sembrare complesso e dispendioso. La mia valutazione sull'impegno necessario per applicare questo metodo è la seguente: servono 30-60 minuti per descrivere il compito di prova e poi 15-20 minuti per controllare le risposte di ciascun candidato. Di solito, ai candidati viene richiesto di completare un compito di prova del genere in non più di 1-2 ore, immergendosi così nella sostanza delle attività che dovranno affrontare in seguito. Già in questa fase, il candidato potrebbe perdere interesse e rinunciare a comunicare con te, dopo aver speso un po' di tempo.
Svantaggi
In primo luogo, è necessario inventare un compito di prova originale, isolato e conciso, il che non è sempre possibile. In secondo luogo, non tutti i candidati comprendono subito che nella prima fase non è necessario programmare. Alcuni si mettono subito a programmare e scompaiono per alcuni giorni, poi inviano un compito di prova completamente completato. Formalmente, non hanno affrontato il compito di prova in questione, perché non hanno fatto ciò che era richiesto. Ma contemporaneamente, lo hanno fatto se hanno inviato una soluzione adeguata a tutto il compito di prova. Per escludere tali inconvenienti, di solito contatto tutti i candidati che hanno ricevuto il compito, dopo 2 giorni dalla sua assegnazione, per sapere come stanno procedendo.
2. Test brevi con opzioni di risposta, limitati nel tempo
Non utilizzo frequentemente questo metodo, sebbene mi piaccia molto e lo consideri uno dei migliori metodi per una rapida verifica delle competenze. Scriverò un articolo apposito su questo metodo a breve. Questi test sono ampiamente utilizzati in diversi ambiti di conoscenza. L'esempio più brillante e tipico è l'esame teorico per ottenere la patente di guida. In Russia, questo esame contiene 20 domande, a cui bisogna rispondere in 20 minuti. È ammesso un errore. Con due errori, è necessario rispondere senza errori a 10 domande aggiuntive. Questo metodo è perfettamente automatizzabile.
Sfortunatamente, non ho mai incontrato buone implementazioni di test simili per programmatori. Se conosci buone implementazioni pronte di test simili per programmatori, per favore scrivile nei commenti.
Come implementare
Ho lavorato con implementazioni indipendenti di test simili dai datori di lavoro nell'esecuzione di incarichi come reclutatore esternalizzato. È certamente possibile realizzare un test di questo tipo. Ad esempio, utilizzando Google Forms. Il problema principale è nella formulazione delle domande e delle possibili risposte. Di solito, la fantasia dei datori di lavoro è sufficiente per circa 10 domande. Purtroppo, in Google Forms non è possibile implementare la rotazione delle domande da un pool e le limitazioni di tempo. Se conosci uno strumento online valido per creare i propri test, dove è possibile limitare il tempo di completamento e organizzare la selezione di domande diverse per candidati diversi, ti prego di scrivere nei commenti riguardo a tali servizi.
In quali casi utilizzo questo metodo
Attualmente utilizzo questo metodo su richiesta dei datori di lavoro, se hanno test pronti da somministrare ai candidati. È anche possibile combinare test di questo tipo con il quarto metodo della mia classifica: chiediamo al candidato di condividere lo schermo e di completare il test. Durante questo processo, è possibile discutere con lui le domande e le possibili risposte.
Vantaggi
Con una buona implementazione, questo metodo è autonomo. Il candidato può scegliere il momento più comodo per completare il test e non devi spendere molto tempo.
Svantaggi
Una realizzazione di qualità di questo metodo è piuttosto costosa e non molto comoda per una piccola azienda che assume nuovi dipendenti solo occasionalmente.
3. Questionari con domande aperte sull'esperienza.
Si tratta di un insieme di domande aperte che invitano il candidato a riflettere sulla propria esperienza. In questo caso, non proponiamo opzioni di risposta. Le domande aperte sono quelle a cui non è possibile rispondere in modo semplice e univoco. Ad esempio, ricorda il progetto più difficile che hai affrontato utilizzando il framework tale e quale? Qual è stata la principale difficoltà per te? A tali domande non si può rispondere in modo semplice. L'unica risposta semplice possibile è: non ho tale esperienza, non ho mai lavorato con questo strumento.
Come implementare
Facilmente realizzabile tramite Google Forms. La cosa principale è inventare le domande. Io utilizzo alcune strutture standard.
Racconta dell'ultimo progetto che hai realizzato utilizzando XXX, cosa è stato per te più difficile in questo progetto?
Quali sono i principali vantaggi della tecnologia XXX per te? Porta esempi dalla tua esperienza.
Scegliendo la tecnologia XXX, quali altre alternative avete considerato e perché avete scelto proprio XXX?In quali situazioni preferireste la tecnologia AAA invece di BBB?
Parlateci del compito più difficile che avete risolto usando XXX, qual è stata la principale difficoltà?
Di conseguenza, queste strutture possono essere applicate a molte tecnologie del vostro stack lavorativo. Rispondere a queste domande non è facile con frasi standard trovate in rete, poiché si tratta di questioni personali e di esperienza individuale. Rispondendo a queste domande, il candidato solitamente tiene presente che durante un colloquio qualsiasi sua risposta può ricevere uno sviluppo sotto forma di domande aggiuntive. Pertanto, se non c'è esperienza, i candidati spesso si autoescludono, rendendosi conto che ulteriori discussioni potrebbero essere prive di senso.
In quali casi utilizzo questo metodo
Quando lavoro con ordini per la selezione di specialisti, se il cliente non ha proposto un proprio metodo di verifica iniziale delle competenze, applico questo metodo. Ho già dei questionari precompilati su vari argomenti e non mi costa nulla utilizzare questo metodo per un nuovo cliente.
Vantaggi
Non è difficile implementare utilizzando Google Forms. Inoltre, è possibile creare un nuovo sondaggio basato su quello precedente, sostituendo i nomi delle tecnologie e degli strumenti con altri. Ad esempio, un sondaggio sull'esperienza con React non differirà di molto da uno sull'esperienza con Angular.
La preparazione di un tale questionario richiede 15-20 minuti, mentre i candidati solitamente impiegano 15-30 minuti per rispondere. I costi di tempo sono contenuti, ma otteniamo informazioni sull'esperienza personale del candidato, da cui possiamo partire per rendere ogni colloquio con i candidati unico e più interessante. Di solito, la durata del colloquio dopo un tale questionario è più breve, poiché non è necessario porre domande semplici e ripetitive.
Svantaggi
Per distinguere la risposta originale del candidato da quella "trovata su Google", bisogna avere familiarità con l'argomento. Ma questo arriva rapidamente con l'esperienza. Dopo aver visionato 10-20 risposte, imparerete a differenziare le risposte originali dei candidati da quelle trovate in rete.
4. Live-Doing (Coding) – risolviamo un semplice compito in tempo reale con schermo condiviso
L'essenza di questo metodo è chiedere al candidato di risolvere un compito semplice e osservare il processo. Il candidato può utilizzare qualsiasi risorsa, non ci sono divieti per la ricerca di informazioni online. Potrebbe provare stress sapendo che il suo lavoro viene osservato. Non tutti i candidati accettano questa modalità di valutazione delle loro competenze. Tuttavia, da un lato, questo metodo permette di vedere quali conoscenze ha la persona in testa, che potrà utilizzare anche in una situazione di stress e quale informazione andrà a cercare nel motore di ricerca. Il livello del candidato è subito evidente. I novizi utilizzano le capacità più basilari, anche primordiali, del linguaggio, spesso iniziano a implementare le funzionalità delle librerie di base manualmente. I candidati più esperti si orientano bene tra le classi, i metodi e le funzioni di base e possono risolvere rapidamente un compito semplice – da 2 a 3 volte più velocemente dei principianti, applicando le funzionalità della libreria di base a loro familiari. I candidati ancora più esperti di solito iniziano a ragionare su diversi approcci per risolvere il compito e propongono varie soluzioni, chiedendo quale di queste voglio vedere implementata. Tutto ciò che fa il candidato può essere discusso. Anche sulla base dello stesso compito, i colloqui possono risultare molto diversi, così come le soluzioni dei candidati.
Come variante di questo metodo, si può chiedere al candidato di svolgere un test per verificare le competenze professionali, motivando la scelta di una piuttosto che dell'altra delle opzioni di risposta. A differenza della consueta modalità di testing, si scoprirà quanto fosse giustificata la scelta delle risposte. È possibile ideare varianti di questo metodo tenendo conto delle caratteristiche della propria offerta di lavoro.
Come implementare
Questo metodo è facilmente attuabile tramite Skype o un altro sistema simile di videochiamata che consente di condividere lo schermo. I compiti possono essere ideati autonomamente o si può utilizzare piattaforme come Code Wars, diversi test già pronti.
In quali casi utilizzo questo metodo
Quando seleziono programmatori e dai curriculum non si comprende affatto il livello di conoscenza del candidato, propongo colloqui in questo formato. Dalla mia esperienza, circa il 90% degli sviluppatori non si oppone. È piacevole per loro che fin dal primo colloquio si parli di programmazione e non di stupide domande tipo «dove ti vedi tra 5 anni».
Vantaggi
Nonostante lo stress e l'ansia del candidato, il livello generale delle competenze è subito evidente. Inoltre, diventano ben visibili le abilità comunicative del candidato: come ragiona, come spiega e motiva le sue decisioni. Se è necessario discutere il candidato con i colleghi, non è difficile registrare il colloquio dal proprio schermo e poi mostrarlo ad altre persone.
Svantaggi
La connessione può interrompersi. A causa dell'ansia, il candidato può iniziare a esitare. In questa situazione si può interrompere e dargli tempo per riflettere sulla questione da solo, richiamando dopo circa 10 minuti per proseguire. Se anche dopo questo il candidato si comporta in modo strano, vale la pena provare un altro metodo di valutazione delle competenze.
5. Breve colloquio telefonico/Skype sulle competenze
È semplicemente una conversazione vocale al telefono, su Skype o in un altro sistema di comunicazione vocale. In questo modo possiamo valutare le abilità comunicative del candidato, la sua cultura generale e il suo panorama di conoscenze. Come piano di conversazione si può utilizzare un questionario. In alternativa, si può discutere più in dettaglio le risposte del candidato al questionario.
Come implementare
Ci accordiamo con il candidato per un colloquio e facciamo una chiamata. Poniamo domande e annotiamo le risposte.
In quali casi utilizzo questo metodo
Di solito utilizzo questo metodo insieme a un questionario quando le risposte del candidato mi sono sembrate originali o non del tutto convincenti. Discuto con il candidato le domande del questionario e approfondisco la sua opinione. Considero questa conversazione obbligatoria quando le abilità comunicative del candidato sono importanti, così come la capacità di formulare i propri pensieri in modo chiaro e comprensibile.
Vantaggi
Senza una conversazione vocale su argomenti professionali, di solito non è possibile determinare quanto bene il candidato sia in grado di esprimere le proprie idee.
Svantaggi
Il principale svantaggio è il tempo supplementare richiesto. Pertanto, applico questo metodo in aggiunta ad altri, se necessario. Inoltre, ci sono candidati che parlano bene di argomenti professionali, ma in pratica hanno poche competenze. Se cerchi un programmatore in grado di risolvere compiti in modo stabile e di alta qualità, è meglio scegliere un altro metodo di verifica iniziale delle competenze. Se hai bisogno di un manager o di un analista, cioè di un esperto che traduce dal linguaggio umano al "linguaggio del programmatore" e viceversa, questo metodo di verifica delle competenze sarà molto utile.
6. Breve compito di prova a tempo (da completare in 30-60 minuti)
Per alcune professioni è fondamentale che il professionista sappia trovare rapidamente una soluzione. Di solito, le problematiche non sono complesse, ma è importante il tempo impiegato per risolverle.
Come implementare
Ci accordiamo con il candidato sul tempo di completamento del compito. All'orario stabilito, inviamo al candidato le condizioni del compito e verifichiamo se ha capito cosa si richiede. Misuriamo il tempo impiegato dal candidato per risolvere il compito. Analizziamo la soluzione e il tempo impiegato.
In quali casi utilizzo questo metodo
Nella mia esperienza, questo metodo è stato utilizzato per verificare le competenze di specialisti nel supporto tecnico, programmatori SQL e tester (QA). I compiti erano del tipo "trova i problemi e proponi una soluzione", "ottimizza la query SQL affinché funzioni 3 volte più velocemente" e simili. Naturalmente, puoi inventare i tuoi compiti. Questo metodo è applicabile anche ai programmatori principianti.
Vantaggi
Dedichiamo il nostro tempo solo alla preparazione e verifica del compito. Il candidato può scegliere il momento che più gli aggrada per eseguire il compito.
Svantaggi
Il principale svantaggio è che in rete possono essere disponibili soluzioni ai tuoi compiti o simili, quindi è necessario avere un certo numero di varianti e periodicamente inventare nuovi compiti. Se è necessario testare velocità di reazione e cultura generale, personalmente preferisco i test a tempo (metodo n. 2).
7. Esaminare il portfolio, esempi di codice, repository pubblici del candidato.
Questo è forse il modo più chiaro per verificare le competenze, a condizione che i tuoi candidati abbiano un portfolio e che nel tuo team di selezione ci siano specialisti in grado di valutare il portfolio.
Come implementare
Stiamo esaminando i curriculum dei candidati. Se troviamo link ai portfolio, li analizziamo. Se non ci sono riferimenti al portfolio nel curriculum, chiediamo il portfolio al candidato.
In quali casi utilizzo questo metodo
Nella mia esperienza, questo metodo è stato utilizzato molto raramente. Non è comune trovare lavori nel portfolio dei candidati che corrispondano al tema richiesto. I candidati esperti spesso preferiscono questo approccio anziché un compito di prova standard e poco interessante. Dicono: "dai un'occhiata al mio repo, ci sono decine di esempi delle mie soluzioni a diversi problemi, vedrai come scrivo codice".
Vantaggi
Si risparmia tempo ai candidati. Se in squadra ci sono professionisti disponibili, è possibile escludere rapidamente, senza comunicazione, i candidati non idonei. Mentre il reclutatore cerca candidati, il suo collega valuta i portfolio. Questo consente di lavorare in modo piuttosto veloce e parallelo.
Svantaggi
Questo metodo non può essere applicato a tutte le professioni IT. Per valutare i portfolio, è necessario avere abilità sviluppate. Se non sei un esperto, non sarai in grado di valutare il portfolio in modo qualitativo.
Colleghi, vi invito a discutere quanto scritto nei commenti. Raccontateci quali altri metodi utilizzate per una rapida verifica delle competenze.
Fonte: habr.com
