Code review nel reclutamento IT: perché e come usarla?

Pubblicato: Ultimo aggiornamento:

Uno degli aspetti più importanti, ma ancora ignorati, dell'assunzione di uno sviluppatore di software è la verifica del modo in cui il candidato affronta il codice e se è in grado di esprimere i propri pensieri con un particolare linguaggio di programmazione. Di solito nel reclutamento IT si chiede al candidato di scrivere del codice per risolvere un particolare problema. Il candidato può farlo da solo o in coppia con il selezionatore (Colpire nel segno con i test di codifica in ambiente naturale [caso di studio].). Lo facciamo perché scrivere codice è una delle cose più importanti che gli sviluppatori fanno quotidianamente. Tuttavia, dobbiamo anche ricordare che gli sviluppatori molto più spesso leggono che scrivono il codice sorgente. Non dobbiamo quindi dimenticare di verificare se il candidato è in grado di analizzare e comprendere rapidamente alcuni frammenti di codice. Possiamo semplicemente mostrare alcune stampe di codice o (ancora meglio) fornire un IDE con un progetto e porre domande relative a ciò che sta accadendo qui. È qui che la sfida della revisione del codice è davvero utile.

Come verificare le competenze di programmazione dei candidati durante il colloquio tecnico?

Per quanto riguarda quanto detto sopra, vediamo che la maggior parte del tempo durante il colloquio tecnico/la valutazione viene dedicato a verificare se il candidato è in grado di risolvere alcune sfide o problemi di programmazione. Il candidato si concentra sulla comprensione e sull'analisi del problema per poi trovare una soluzione adeguata. Tuttavia, possiamo renderci conto che il candidato è costretto a pensare più a "cosa fare" che a "come fare". Quando chiediamo al candidato di scrivere un codice che sia in grado di prenotare un posto a sedere per un volo in determinate condizioni, l'obiettivo è quello di fornire la funzionalità corretta e, soprattutto a causa dello stress e dei limiti di tempo, è tutto ciò che il candidato è in grado di fare. Esiste un'opzione per invertire questa situazione e permettere al candidato di concentrarsi sul "come"? Sì! Per molti anni, quando ero attivamente coinvolto nel sourcing IT e nell'assunzione di sviluppatori o architetti, ho utilizzato le code review.

Che cos'è la revisione del codice?

Revisione del codice è un processo in cui i programmatori si verificano a vicenda il codice per trovare potenziali problemi, errori o deviazioni dalle best practice (se vuoi saperne di più vai su Wikipedia). Negli ultimi anni la revisione del codice è un elemento imprescindibile del processo di consegna del software. Ci offre un'ottima verificabilità e una migliore qualità del codice, ma consente anche una straordinaria condivisione delle conoscenze: le persone possono ora insegnare e imparare allo stesso tempo, condividendo le esperienze. Ma non voglio convincervi a imporre la revisione del codice nel vostro processo di sviluppo (cosa che, tra l'altro, dovreste ripensare se non la state ancora utilizzando), bensì mostrarvi perché e come utilizzare la revisione del codice durante il colloquio tecnico.

Come si può utilizzare la revisione del codice nel processo di selezione del personale IT?

Mostrando al candidato un codice già scritto e che funziona (per lo più) come previsto, gli permettiamo di concentrarsi sulla qualità della soluzione. Ponendo la semplice domanda "Allora, cosa ne pensi di questo codice?" facciamo passare il candidato in modalità di sola lettura. Ciò che è importante menzionare è che alcuni sviluppatori sono abituati a questi compiti che svolgono durante gli esami di certificazione, ecc. e cercano alcuni errori sciocchi e intenzionali come punti e virgole mancanti, parametri errati, classi sbagliate, ecc. A mio parere, dovremmo usare un approccio diverso. Ho sempre usato codice funzionante che si compila correttamente. Sottolineo all'inizio che non ci sono errori "da certificazione" e che il candidato dovrebbe concentrarsi sulle best practice, su alcuni problemi comuni che difficilmente vengono notati da strumenti automatici e che possono causare seri problemi di produzione.

Esempio di sfida per la revisione del codice

Ad esempio, in Java si potrebbe invocare thread.run() invece di thread.start(), che compila correttamente, i test passano ma non si avvia un nuovo thread, il che può degradare le prestazioni finali. Possiamo anche verificare se candidate noterà che qualche metodo transazionale viene invocato al di fuori dell'aspetto transazionale, il che può causare seri problemi di coerenza in un database.

Come valutare le competenze di programmazione in base alla revisione del codice?

In base alla prima impressione del candidato possiamo valutare il suo approccio alla qualità. Se per noi il codice è davvero brutto e pieno di problemi e il candidato dice qualcosa del tipo "a me sembra buono", possiamo presumere che non aiuterà a migliorare la qualità del codice nella nostra azienda e anzi la degraderà. È anche abbastanza facile valutare l'esperienza del candidato. Ad esempio, in un codice sorgente di 60 righe gli sviluppatori junior sono riusciti a trovare circa 4-5 problemi. Gli sviluppatori con più di 8 anni di esperienza sono stati in grado di trovarne 10. E i migliori candidati hanno trovato circa 15-20 problemi. Il miglior candidato mi ha segnalato 2 problemi di cui non ero a conoscenza, e quando ho scritto il codice erano inclusi oltre 30 problemi.

Cosa dobbiamo aspettarci che i candidati commentino? Le cose più importanti sono le questioni menzionate in precedenza: problemi comuni a una particolare tecnologia e non visibili a prima vista. Il punto successivo è la leggibilità. Il codice deve essere pulito, ben strutturato e ben nominato, in modo che qualsiasi altro sviluppatore (non solo l'autore) sia in grado di comprenderlo e modificarlo. Quindi, i nomi dei metodi o delle variabili sono significativi, non troppo lunghi, ecc. I metodi non sono troppo grandi e non contengono troppa logica. Le tecnologie utilizzate nello snippet sono una buona scelta per risolvere un particolare problema (per esempio, se il nostro codice utilizza operazioni sulle stringhe per costruire un XML, possiamo aspettarci che un candidato ci faccia notare che esistono molte librerie create per farlo in modo migliore).

Revisione del codice nelle campagne di valutazione DevSkiller

In DevSkiller crediamo che la revisione del codice debba essere inclusa nella valutazione delle competenze di programmazione. Ecco perché la maggior parte delle nostre campagne di valutazione contiene questo tipo di problemi da risolvere. Incoraggiamo anche le aziende a costruire i propri test di codifica che includano la sfida della revisione del codice. È piuttosto conveniente per la maggior parte delle aziende, in quanto è possibile utilizzare la vecchia base di codice per preparare questo compito. Basta parlarne con il vostro reparto IT e includerlo nel vostro processo di assunzione.

Condividi post

Per saperne di più sulle assunzioni nel settore tecnologico

Iscrivetevi al nostro Learning Hub per ricevere utili approfondimenti direttamente nella vostra casella di posta elettronica.

Verifica e sviluppo delle competenze di codifica senza soluzione di continuità.

Guardate i prodotti DevSkiller in azione.

Certificazioni di sicurezza e conformità. Ci assicuriamo che i vostri dati siano sicuri e protetti.

Logo DevSkiller Logo TalentBoost Logo TalentScore