Assumere specialisti IT è un compito complesso. Prima di tutto, attualmente sul mercato c'è una carenza di professionisti esperti, e loro lo sanno. I candidati spesso non sono disposti a spendere molto tempo per i "processi di selezione" dei datori di lavoro se non sono prima interessati. La pratica precedentemente popolare di "fornire un test della durata di oltre 8 ore" non funziona più. Per una valutazione preliminare delle conoscenze e per filtrare i candidati prima di un colloquio tecnico a tutto campo, è necessario utilizzare metodi diversi e più rapidi. In secondo luogo, per una valutazione di qualità delle conoscenze e delle competenze, è fondamentale possedere tali competenze o coinvolgere un collega che le possiede. Queste difficoltà possono essere risolte attraverso i metodi che descriverò in questo articolo. Io stesso utilizzo questi metodi e ho creato una sorta di classifica.
Quindi, ecco il mio top-7 di metodi per una rapida verifica delle competenze degli specialisti IT prima del colloquio:
7. Esaminare il portfolio, esempi di codice e repository pubblici del candidato.
6. Un breve compito di test a tempo (da completare in 30-60 minuti).
5. Breve colloquio telefonico/Skype sui requisiti professionali (come un questionario, solo online e vocale).
4. Live-Doing (Coding) – risolviamo un compito semplice in tempo reale con lo schermo condiviso.
3. Questionari con domande aperte sull'esperienza.
2. Test brevi con domande a risposta multipla, con un limite di tempo per il completamento.
1. Compito di prova in più fasi, la prima fase deve essere completata prima del colloquio.
In seguito, esaminerò in dettaglio questi metodi, i loro vantaggi e svantaggi e le situazioni in cui utilizzo ciascuno di essi per una rapida valutazione delle competenze dei programmatori.

Nell'articolo precedente sulla funnel di assunzione ho condotto un sondaggio tra i lettori sui metodi per una rapida valutazione delle competenze degli specialisti IT. In questo articolo parlo dei metodi che piacciono a me, perché mi piacciono e come li applico. Inizio dal primo posto e finisco con il settimo.
1. Compito di prova in più fasi, la prima fase deve essere completata prima del colloquio.
Ritengo che questo metodo per valutare le competenze degli sviluppatori sia il migliore. A differenza di un compito tradizionale, in cui si dice "prendi il compito e vai a farlo", nel mio approccio il processo di completamento del compito è suddiviso in fasi: discussione e comprensione del compito, progettazione della soluzione e valutazione delle risorse necessarie, diverse fasi di implementazione della soluzione, documentazione e consegna-accettazione della soluzione. Questo approccio è più vicino alla normale tecnologia moderna di sviluppo software rispetto al semplice "prendi e fai". Maggiori dettagli di seguito.
In quali casi utilizzo questo metodo
Per i miei progetti, di solito assumo lavoratori remoti che sviluppano una parte specifica, separata e relativamente indipendente del progetto. Questo riduce la necessità di comunicazione tra i collaboratori, spesso a zero. I collaboratori non si parlano tra loro, ma comunicano con il project manager. Pertanto, è importante per me valutare fin da subito la capacità della persona di comprendere rapidamente il compito, fare domande di chiarimento, elaborare autonomamente un piano d'azione per risolvere il problema e stimare le risorse e il tempo necessari. In questo, una prova di lavoro a più fasi mi aiuta molto.
Come implementarlo
Identifichiamo e formuliamo un compito autonomo e originale legato al progetto su cui il sviluppatore dovrà lavorare. Di solito descrivo, come compito, un prototipo semplificato della questione principale o del futuro prodotto, per la cui realizzazione il sviluppatore dovrà affrontare le principali problematiche e tecnologie del progetto.
Il primo passo del compito di test consiste nell'esaminare il compito, chiarire eventuali dubbi, progettare una soluzione, pianificare i passi per risolvere il compito e stimare i tempi necessari per completare ciascun passo e l'intero compito di test. Al termine, mi aspetto un documento di 1-2 pagine che descriva il piano d'azione dello sviluppatore e la valutazione temporale. Inoltre, chiedo ai candidati di indicare quale fase desidererebbero implementare completamente per dimostrare le proprie competenze pratiche. Non è necessario programmare nulla per ora.
Questo compito (lo stesso) viene assegnato a diversi candidati. Ci si aspetta che le risposte 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 chiarificatrici hanno posto prima di procedere con l'esecuzione del compito. Sulla base di queste informazioni, si può invitare al prossimo passo qualsiasi numero di candidati di vostro interesse.
Il passo successivo è un breve colloquio. Abbiamo già degli argomenti di cui parlare. Il candidato ha già un'idea generale dell'area tematica del progetto su cui dovrà lavorare. L'obiettivo principale di questo colloquio è rispondere alle domande tecniche del candidato e motivarlo a completare il compito principale – la programmazione della parte del progetto che ha scelto. O della parte la cui implementazione desiderate vedere voi.
È sempre molto interessante osservare quale parte del compito il developer 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 isolano un sotto-compito specifico, ritenuto il più importante, senza delineare la soluzione complessiva. Quindi procedono dal basso verso l'alto – dalla sotto-compito più difficile fino alla soluzione completa.
Vantaggi
Possiamo valutare la cultura generale del candidato, la pertinenza delle sue conoscenze per il nostro progetto e il livello delle sue competenze comunicative. Inoltre, ci consente di confrontare i candidati tra loro in modo semplice. Di solito scarto quei candidati che hanno dato valutazioni troppo ottimistiche o troppo pessimistiche sui tempi di consegna. Naturalmente, ho una mia propria valutazione dei tempi. Una stima bassa da parte di un candidato indica probabilmente che non ha approfondito adeguatamente il compito e ha affrontato il test in modo superficiale. Una stima troppo alta dei tempi, invece, indica che il candidato non ha una buona comprensione del settore o non ha esperienza nelle aree di cui ho bisogno. Non scarto i candidati immediatamente in base alla loro stima, ma chiedo di motivare la loro valutazione, se non è già stata sufficientemente giustificata.
Alcuni potrebbero trovare questo metodo complicato e dispendioso. La mia stima del lavoro richiesto per utilizzare 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 il completamento di un tale compito richiede non più di 1-2 ore, durante le quali si immergono nella natura delle problematiche che dovranno affrontare in seguito. Già in questa fase, il candidato potrebbe perdere interesse e rinunciare a comunicare con voi, avendo speso solo un po’ di tempo.
Svantaggi
In primo luogo, è necessario ideare 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 è richiesto di programmare. Alcuni iniziano a programmare subito e scompaiono per alcuni giorni, per poi inviare un compito di prova completamente svolto. Formalmente, non hanno superato il compito di prova assegnato, perché hanno fatto qualcosa di diverso da quanto richiesto. Tuttavia, allo stesso tempo, possono averlo fatto, se hanno inviato una soluzione adeguata a tutto il compito di prova. Per escludere tali situazioni, di solito chiamo tutti i candidati che hanno ricevuto il compito due giorni dopo l'assegnazione per sapere come stanno procedendo.
2. Test brevi con opzioni di risposta, limitati nel tempo di completamento
Non utilizzo spesso questo metodo, anche se mi piace molto e lo considero uno dei migliori modi per una rapida verifica delle competenze. Scriverò un articolo separato su questo metodo a breve. Tali test vengono ampiamente applicati in vari ambiti del sapere. L'esempio più emblematico e rappresentativo è l'esame teorico per ottenere la patente di guida. In Russia, questo esame contiene 20 domande, a cui è necessario rispondere in 20 minuti. È consentito un errore. Se si commettono due errori, è necessario rispondere senza errori a 10 domande aggiuntive. Questo metodo si presta benissimo all'automazione.
Sfortunatamente, non ho trovato buone implementazioni di test simili per programmatori. Se conoscete buone implementazioni già pronte di test simili per programmatori, vi prego di scrivere nei commenti.
Come implementarlo
Ho lavorato con implementazioni autonome di test simili da parte dei datori di lavoro mentre svolgevo incarichi come recruiter esternalizzato. È assolutamente possibile implementare un tale test. Ad esempio, utilizzando Google Forms. Il problema principale risiede nella formulazione delle domande e delle risposte. Di solito, la fantasia dei datori di lavoro basta per 10 domande. Sfortunatamente, in Google Forms non è possibile implementare la rotazione delle domande da un pool e le restrizioni di tempo. Se conosci un buon strumento online per creare i tuoi test, dove puoi limitare il tempo di completamento e organizzare la selezione di domande diverse per diversi candidati, ti prego di condividere tali servizi nei commenti.
In quali casi utilizzo questo metodo
Attualmente utilizzo questo metodo su richiesta dei datori di lavoro, se hanno test già pronti da somministrare ai candidati. È anche possibile combinare tali test con il quarto metodo della mia classifica – chiediamo al candidato di condividere il proprio schermo e di svolgere il test. In questo modo, puoi discutere con lui le domande e le risposte.
Vantaggi
Con una buona realizzazione, questo metodo è autonomo. Il candidato può scegliere il momento più comodo per sostenere il test e non è necessario spendere molto tempo.
Svantaggi
La realizzazione di questo metodo di alta qualità è piuttosto costosa e non è molto conveniente per una piccola azienda che assume nuovi dipendenti raramente.
3. Questionari con domande aperte sull'esperienza
Si tratta di un insieme di domande aperte che invitano il candidato a riflettere sulla propria esperienza. Non proponiamo risposte predefinite. Le domande aperte sono quelle a cui non si può rispondere in modo semplice e univoco. Ad esempio, puoi ricordare qual è stata la sfida più difficile che hai affrontato usando un determinato framework? Qual è stata la principale difficoltà per te? A queste domande non è possibile rispondere in modo conciso. In effetti, l'unica risposta semplice sarebbe: non ho tale esperienza, non ho mai lavorato con questo strumento.
Come implementarlo
Facile da realizzare con Google Forms. La cosa principale è trovare le domande. Utilizzo alcune strutture standard.
Parla del tuo ultimo progetto in cui hai utilizzato 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 hai preso in considerazione e perché hai scelto proprio XXX?In quali situazioni preferiresti la tecnologia AAA invece di BBB?
Raccontaci del compito più complesso che hai affrontato utilizzando XXX, qual era la principale difficoltà?
Di conseguenza, queste strutture possono essere applicate a molte tecnologie del tuo stack lavorativo. Non è semplice rispondere a queste domande con frasi preconfezionate, poiché sono personali e riguardano l'esperienza individuale. Rispondendo a queste domande, il candidato di solito ha in mente l'idea che in un colloquio qualsiasi delle sue risposte può essere approfondita con ulteriori domande. Pertanto, se non ha esperienza, i candidati spesso si escludono, rendendosi conto che la conversazione successiva potrebbe essere priva di senso.
In quali casi utilizzo questo metodo
Nel lavoro con gli ordini per la selezione di specialiste, se il cliente non ha proposto un modo di verifica iniziale delle competenze, applico questo metodo. Ho già dei questionari preparati su vari argomenti e non è un problema utilizzare questo metodo per un nuovo cliente.
Vantaggi
Facile da realizzare con 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 sarà molto diverso da uno sull'esperienza con Angular.
Creare un sondaggio del genere richiede 15-20 minuti, mentre i candidati di solito impiegano 15-30 minuti per rispondere. I tempi sono contenuti, ma otteniamo informazioni sull'esperienza personale del candidato, da cui possiamo partire per rendere ciascun colloquio unico e più interessante. Di solito, la durata dell'intervista dopo un tale sondaggio è ridotta, poiché non è necessario porre domande semplici e ripetitive.
Svantaggi
Per distinguere la risposta personale del candidato da quelle "googlate", è importante avere familiarità con l'argomento. Ma questo viene rapidamente con l'esperienza. Dopo aver esaminato 10-20 risposte, imparerai a riconoscere le risposte originali dei candidati rispetto a quelle trovate in rete.
4. Live-Doing (Coding) – risolviamo un semplice compito in tempo reale con schermo condiviso.
Il cuore di questo metodo è chiedere al candidato di risolvere un compito semplice mentre si osserva il processo. Il candidato può utilizzare qualsiasi risorsa, non ci sono divieti per la ricerca di informazioni online. Potrebbe sentirsi sotto stress a causa dell'osservazione, e non tutti i candidati accettano questo tipo di valutazione delle loro competenze. D'altro canto, questo approccio consente di osservare quali conoscenze possiede il candidato, quali strumenti potrà utilizzare anche in situazioni stressanti e quali informazioni cercherà online. Il livello del candidato risulta praticamente immediatamente evidente. I neofiti tendono a usare le funzioni più basilari, spesso ricorrendo a implementazioni manuali delle librerie fondamentali. I candidati più esperti si destreggiano bene tra classi, metodi e funzioni base e possono risolvere rapidamente compiti semplici, spesso in 2-3 volte più velocemente rispetto ai principianti, applicando funzionalità familiari delle librerie di base. I candidati ancora più esperti solitamente iniziano discutendo diversi approcci alla risoluzione del problema e presentano varie opzioni, chiedendo quale soluzione desidero vedere implementata. Tutto ciò che fa il candidato è discutibile. Anche con lo stesso compito, le interviste possono risultare molto diverse, così come le soluzioni proposte dai candidati.
Una variante di questo metodo consiste nel chiedere al candidato di svolgere un test per valutare le sue competenze professionali, giustificando la scelta di una determinata risposta. A differenza dei test tradizionali, scoprirete quanto sia stata motivata la scelta delle risposte. Potete inventare le vostre varianti di questo metodo tenendo conto delle specificità della vostra offerta di lavoro.
Come implementarlo
Questo metodo è facilmente attuabile tramite Skype o un altro sistema di videochiamata simile che permette di condividere lo schermo. Le attività possono essere inventate autonomamente oppure potete fare riferimento a piattaforme come Code Wars o utilizzare vari test già pronti.
In quali casi utilizzo questo metodo
Quando seleziono programmatori e non riesco a comprendere il livello di conoscenza del candidato dal suo curriculum, propongo colloqui in questo formato. Secondo la mia esperienza, circa il 90% degli sviluppatori non ha obiezioni. È piacevole per loro che sin dal primo colloquio si parli di programmazione, e non di domande stupide come «dove ti vedi tra 5 anni?».
Vantaggi
Nonostante lo stress e l'ansia del candidato, è subito evidente il livello generale delle sue competenze. I suoi abilità comunicative si fanno notare chiaramente: come ragiona, come spiega e motiva le sue decisioni. Se necessario, è facile registrare il colloquio sul proprio schermo per discuterne con i colleghi.
Svantaggi
La connessione può interrompersi. A causa dell'ansia, il candidato potrebbe incepparsi. In questa situazione, è possibile interrompere e dargli tempo per riflettere sul compito da solo, richiamarlo dopo dieci minuti e continuare. Se anche dopo questo il candidato continua a comportarsi in modo strano, varrebbe la pena provare un altro metodo di valutazione delle competenze.
5. Breve colloquio telefonico/Skype sui competenze
Si tratta semplicemente di una conversazione a voce tramite telefono, Skype o un altro sistema di comunicazione vocale. In questo modo, possiamo valutare le competenze comunicative del candidato, la sua cultura generale e il suo panorama. Possiamo utilizzare un questionario come piano di conversazione. In alternativa, possiamo discutere in modo più dettagliato le risposte del candidato al vostro questionario.
Come implementarlo
Ci accordiamo con il candidato per un colloquio e chiamiamo. Facciamo domande e prendiamo nota delle risposte.
In quali casi utilizzo questo metodo
Di solito applico questo metodo insieme a un questionario, quando le risposte del candidato mi sembrano originali o non abbastanza convincenti. Discutiamo con il candidato le domande del questionario e approfondiamo la sua opinione. Ritengo che una conversazione di questo tipo sia essenziale quando sono importanti le capacità comunicative del candidato e la sua abilità nel formulare idee in modo chiaro e comprensibile.
Vantaggi
Senza una conversazione vocale su argomenti professionali, è solitamente impossibile determinare quanto bene il candidato riesca a esprimere le proprie idee.
Svantaggi
Il principale svantaggio è il tempo aggiuntivo richiesto. Pertanto, utilizzo questo metodo come complemento ad altri, se necessario. Inoltre, ci sono candidati che parlano molto bene di argomenti professionali, ma che in pratica hanno scarso bagaglio di competenze. Se hai bisogno di uno sviluppatore che risolva compiti in modo stabile e di qualità, è meglio optare per un altro metodo di verifica delle competenze iniziali. Se hai bisogno di un manager o di un analista, cioè di un esperto che traduce dal linguaggio umano a quello 'di programmazione' e viceversa, questo metodo di verifica delle competenze sarà molto utile.
6. Breve compito di prova con scadenza (da completare in 30-60 minuti)
Per alcune professioni, è importante per il professionista trovare rapidamente una soluzione ai problemi. In genere, i compiti sono piuttosto semplici, ma ciò che conta è il tempo dedicato alla loro risoluzione.
Come implementarlo
Ci accordiamo con il candidato riguardo al tempo di completamento del compito di prova. All'orario concordato, inviamo al candidato le condizioni del compito e verifichiamo se ha compreso ciò che ci si aspetta da lui. Cronometriamo 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 degli specialisti del supporto tecnico, programmatori SQL e tester (QA). I compiti erano del tipo "trova i punti problematici e proponi come risolvere il problema", "ottimizza la query SQL in modo che funzioni tre volte più velocemente" e così via. Naturalmente, puoi inventare i tuoi compiti. Anche per i programmatori principianti, questo metodo può essere applicato.
Vantaggi
Dedichiamo il nostro tempo solo alla creazione e verifica del compito. Il candidato può scegliere un momento comodo per svolgere l'incarico.
Svantaggi
Il principale svantaggio è che in rete possono essere pubblicate soluzioni ai tuoi compiti o a compiti simili, quindi è necessario avere un certo numero di varianti e inventare periodicamente nuovi compiti. Se è necessario testare la rapidità di reazione e la visione d'insieme, personalmente scelgo i test a tempo (metodo n. 2).
7. Esaminare il portfolio, esempi di codice, repository aperti del candidato
Questo è probabilmente 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 valutarlo.
Come implementarlo
Esaminiamo i curriculum dei candidati. Se troviamo link a portafogli, li analizziamo. Se non ci sono riferimenti a un portafoglio nel curriculum, richiediamo il portafoglio al candidato.
In quali casi utilizzo questo metodo
Nella mia esperienza, questo metodo è stato utilizzato molto raramente. Non è comune trovare lavori pertinenti nei portafogli dei candidati. I candidati esperti spesso preferiscono questo approccio rispetto ai compiti standard e poco interessanti. Dicono: 'Guarda il mio repo, ci sono decine di esempi delle mie soluzioni a vari problemi, vedrai come scrivo codice.'
Vantaggi
Si risparmia tempo per i candidati. Se ci sono professionisti nel tuo team, è possibile escludere rapidamente i candidati non idonei senza comunicare con loro. Mentre il reclutatore cerca candidati, un suo collega può valutare il portafoglio. Si ottiene un lavoro abbastanza rapido e parallelo.
Svantaggi
Non è possibile utilizzare questo metodo per tutte le professioni IT. Per valutare un portafoglio, bisogna possedere competenze sviluppate. Se non sei un esperto, non sarai in grado di valutare il portafoglio in modo qualitativo.
Colleghi, vi invito a discutere di quanto letto nei commenti. Raccontate quali altri metodi di verifica rapida delle competenze utilizzate?
Fonte: habr.com
