Come assumere sviluppatori software senior: I consigli del CTO di DevSkiller

Pubblicato: Ultimo aggiornamento:
ingegnere tecnico

Il reclutamento nel settore dello sviluppo software è una sfida e cercare di assumere sviluppatori senior è ancora più difficile. A causa della carenza di talenti, gli ingegneri senior sono pochi. Sono anche costosi e raramente cercano una nuova opportunità di lavoro.

Inoltre, hanno imparato a dare valore al loro tempo. Quando si assume uno sviluppatore web junior, ad esempio, si possono ricevere centinaia di candidature. Tuttavia, non stupitevi di ricevere quasi zero candidature per gli ingegneri senior.

Come faccio a saperlo? Sono io stesso uno sviluppatore senior. E credetemi, nei miei 15 anni di sviluppo software ho affrontato molti processi di reclutamento. Sia come candidato che come reclutatore tecnologico.

Supponiamo che siate fortunati. Il vostro annuncio di lavoro era impeccabile, la vostra tariffa oraria è convincente e la vostra azienda fa cose interessanti. Eppure, una volta iniziato il processo, i candidati vi ignorano. Non perché le vere rockstar e i ninja della tecnologia abbiano un ego gigantesco. Beh, a volte è così. Tuttavia, è più probabile che altri processi di reclutamento fossero migliori e che abbiano semplicemente rinunciato a voi.

Quindi, come incoraggiare uno sviluppatore esperto a partecipare al processo di assunzione per assumere i candidati più qualificati? Lasciatemi condividere i miei consigli dal punto di vista del CTO di un'azienda tecnologica.

Come incoraggiare gli sviluppatori senior a partecipare al reclutamento?

Incoraggiare gli ingegneri software senior a partecipare al processo di assunzione, in particolare alle sfide di codifica, è... impegnativo. Tuttavia, diverse aziende definire l'anzianità in modo diverso. Inoltre, il loro atteggiamento nei confronti del processo di reclutamento dice molto sul candidato stesso.

Uno sviluppatore senior tenderà a concentrarsi meno sulle competenze tecniche e più su concetti tecnici più ampi. Sulle soluzioni tecniche, piuttosto che sulle tecnologie da utilizzare. Se fate appello alle loro conoscenze tecniche più ampie e progettate il vostro processo intorno alla risoluzione dei problemi, probabilmente attirerete più ingegneri senior.

Ad esempio, non girate intorno alla versione di React o Python che utilizzate. Spiegate invece come la vostra azienda risolve i problemi utilizzando React e Python. Enfatizzando il quadro generale durante il reclutamento, è più probabile che vi rivolgiate a un programmatore senior piuttosto che a uno junior. D'altra parte, se vi concentrate solo sulle tecnologie che utilizzeranno, è probabile che vi rivolgiate solo agli interessi tecnici di persone meno esperte e più orientate alla tecnologia.

Cosa significa essere uno sviluppatore senior al giorno d'oggi?

Quindi, un gruppo di persone si è candidato al vostro annuncio di lavoro per senior. Congratulazioni! Purtroppo, la metà di loro non vale il vostro tempo. Molti non saranno qualificati e non hanno le competenze di programmazione necessarie-ma hanno deciso di cogliere comunque l'occasione. Il numero può essere superiore a 50% se il vostro marchio è molto forte o se offrite uno stipendio e dei benefit eccezionali. Può essere inferiore se il vostro annuncio di lavoro è molto specifico. Ma aspettatevi di scartare subito alcuni candidati durante il processo di assunzione.

D'altro canto, si otterranno almeno alcuni candidati qualificati. Il problema è: come distinguere i migliori sviluppatori di software dagli aspiranti tali? A questo livello, dovete fare molta attenzione. Che vi piaccia o no, basta un passo falso e rimarranno solo i candidati più tenaci. E credetemi, non sempre sono i migliori.

Quindi avete a disposizione un bene molto prezioso. Candidati estremamente competenti tra quelli meno esperti. Seguendo attentamente i miei consigli, potrete scoprire i migliori sviluppatori in modo rapido e indolore. Permettetemi di condividere alcuni consigli su come rendere il processo di reclutamento piacevole e decisivo.

Essere trasparenti

Gli sviluppatori del settore IT, soprattutto quelli senior, odiano le bugie. Non mentite. Non promettete troppo. Non prolungate il processo, sperando di trovare in seguito un candidato migliore. Le capacità di comunicazione oneste sono essenziali. È importante che tutti siano sulla stessa lunghezza d'onda.

Spiegate chiaramente come si svolge il processo. In particolare, entro quale data possono aspettarsi un feedback, quante fasi di reclutamento devono aspettarsi e chi si occuperà di valutare le loro competenze.

È superfluo dire che bisogna essere aperti sul tipo di lavoro, sulla retribuzione e sulla politica di lavoro da casa. Non cercate di attirare gli sviluppatori con nuove tecnologie scintillanti. In realtà, la differenza tra sviluppatori senior e junior si nota nel fatto che i primi sono solitamente più interessati ai problemi aziendali che possono risolvere. Saranno più interessati ai progetti recenti della vostra azienda e meno agli strumenti che utilizzate. A proposito di strumenti, cosa si dovrebbe scrivere in un annuncio di lavoro?

Avere un annuncio di lavoro chiaramente definito

Immagine da mohamed Hassan da Pixabay

Un annuncio di lavoro si chiama così per un motivo. Si pubblicizza la propria azienda. Ma aspettatevi che un ingegnere software senior sia allergico alla pubblicità ingannevole. Non si lascerà coinvolgere. Tuttavia, ci sono alcune informazioni chiave che un ingegnere informatico senior cerca nella vostra descrizione del lavoro per impegnarsi nel processo di reclutamento. Ecco cosa includere:

Stipendio e benefit

Immagine da mohamed Hassan da Pixabay

Sì, lavoriamo per soldi. Quando assunzione di ingegneri software seniorÈ meglio essere aperti e onesti sul proprio budget per evitare delusioni. D'altra parte, uno stipendio o dei vantaggi molto al di sopra del tasso di mercato possono suggerire che state bruciando una tonnellata di denaro dell'investitore o che c'è qualcosa di sospetto nella posizione lavorativa. Siate pronti a rispondere a domande su questi argomenti.

Condizioni di lavoro

Orari di lavoro, politica di lavoro a distanza, viaggi di lavoro, hardware e configurazione dell'ufficio. Un open space rumoroso dove si deve stare seduti dalle 9 alle 5 è raramente apprezzato. Quanta burocrazia aspettarsi? Si impegneranno a scrivere il codice il primo giorno?

Vantaggi

Azioni, assistenza sanitaria, budget per l'istruzione e le conferenze. Questi sono i più convincenti.

Cultura e valori aziendali

Siete agili? Effettuate frequentemente il deployment? Riuscite a contattare il vostro cliente? State facendo dogfooding sul vostro progetto (se applicabile)? Spiegare onestamente il primo giorno di lavoro è una buona idea.

Tipo di lavoro e panoramica dell'intero progetto

Siete una software house? State costruendo un prodotto? Per quale settore lavorate? Fornite formazione? La vostra azienda ha un impatto positivo sul mondo o opera in modo appena legale?

Qual è lo stack tecnologico?

Questo è importante. Non limitatevi a elencare tutte le tecnologie menzionate dal vostro team di sviluppo e a dire "dovete possedere le seguenti competenze...". Non c'è sviluppatore, nemmeno nel vostro attuale team di sviluppo, che abbia tutti i requisiti nel proprio set di competenze. Invece, basta dire "noi usiamo le seguenti...", e un buon sviluppatore saprà quanto sono adatte. Includete le competenze specifiche che possiedono e quelle che desiderano apprendere.

Inoltre, cercate di essere brevi. Viviamo nell'era di Twitter e TikTok. I muri di testo non sono attraenti e probabilmente verranno saltati. Le descrizioni del lavoro dovrebbero assomigliare a una presentazione elegante, non a un documento Word. Se riuscite a proporre un'infografica o un breve video, sicuramente catturerete l'attenzione.

Infine, l'annuncio di lavoro deve spiegare come si svolgerà il processo di assunzione:

Avere un processo di reclutamento rapido

Come dovrebbe essere un processo di reclutamento ideale per l'assunzione di ingegneri software senior? Dovrebbe essere trasparente e veloce. Conoscete questa battuta?

Uno sviluppatore senior ha perso il lavoro ed è diventato disoccupato. Sono stati i 15 minuti peggiori della loro vita.

Naturalmente, si tratta di un'esagerazione. Alcuni ingegneri software senior possono aspettare anche qualche settimana per la vostra decisione finale. Tuttavia, questo può dipendere da semplici capacità di comunicazione e deve essere chiarito in anticipo.

Per trasformare un'offerta di lavoro in un'assunzione di successo non basta elencare le hard e soft skills menzionate dal team di sviluppo. Le migliori descrizioni del lavoro spiegano chiaramente cosa il candidato può aspettarsi dal processo, dall'inizio alla firma del contratto. Dovrebbe contenere almeno le seguenti informazioni:

  • Quali sono le fasi: ci sarà uno screening telefonico e dei compiti a casa? Ci sarà un colloquio con le risorse umane sulle soft skills e un altro con l'IT sulle competenze tecniche? Quanto durerà il processo di reclutamento?
  • Quali sono i tempi per il feedback dopo ogni fase?
    Se avete bisogno di 2 settimane per rivedere i compiti, non va bene. Ma se questo è il caso, è meglio dirlo in anticipo. Nell'informatica si chiama SLA (Service Level Agreement). Si accetta di dare un feedback e di procedere in un certo lasso di tempo.

  • Pensate a quanto tempo intercorrerà tra la firma del contratto da parte dell'ingegnere senior e l'inizio effettivo dei lavori. Ad esempio, dovranno iniziare all'inizio del mese solare?

Un modo per garantire un processo di assunzione rapido è automatizzare alcune parti della fase di selezione. In questo modo, i responsabili delle assunzioni possono liberare il loro tempo per svolgere i colloqui e fare le cose che fanno guadagnare alla vostra azienda.

Leggi - Come implementare l'automazione per assumere più rapidamente i migliori sviluppatori di software

Offrire un feedback costruttivo

Immagine da Gerd Altmann da Pixabay

Il feedback fa parte del processo. Se vi dimenticate semplicemente dei candidati respinti, questi avranno un pessimo ricordo della vostra azienda e potrebbero diffonderlo ai colleghi che vedranno il vostro annuncio di lavoro. Un feedback semplice e modulato non è molto meglio.

Prendete tempo e preparate un feedback costruttivo quando rifiutate un candidato. In particolare, spiegate perché è stato scartato e quali sono i possibili passi successivi.

Sarei abbastanza felice di sentirmi dire che se non sono abbastanza esperto in una certa tecnologia o pratica, posso studiarla e tornare tra un anno. Dopo tutto, non ci si può aspettare che nessuno conosca tutto del processo di sviluppo.

Inoltre, se gli ingegneri possono indicare i libri o i materiali che hanno trovato utili, il processo di reclutamento può essere una fantastica esperienza di apprendimento per loro.

Focalizzate il vostro employer branding

Marchio del datore di lavoro è un argomento molto vasto, quindi mi limiterò a scalfire la superficie. Ogni informazione che raggiunga i potenziali candidati oltre all'annuncio di lavoro è un bonus.

Conferenze dei vostri sviluppatori. Incoraggiate il vostro team a tenere conferenze presso gruppi di utenti o conferenze locali. Date loro il tempo di prepararsi, magari investendo in una formazione. È un investimento a lungo termine che si ripaga in seguito.

Avere un blog tecnologico che spieghi l'architettura e le decisioni di progettazione, ma anche gli errori. Molte aziende, in particolare quelle più importanti, sono oneste nel pubblicare post mortem. Se i vostri sviluppatori possono ammettere pubblicamente di aver commesso un errore, di aver risolto il problema e di aver imparato molto sulla cultura.

Sponsorizzare eventi ed esporre il proprio logo è un po' meno efficace, ma è anche il modo più economico e semplice per farsi conoscere.

Come convincere gli sviluppatori senior a sottoporsi a un test di codifica?

Credo che i compiti a casa siano un indicatore di successo migliore delle sessioni di codifica alla lavagna o di altri tipi di test. I candidati possono prendere il progetto e completarlo nel comfort delle loro case. Usano il loro hardware, quando vogliono, e possono cercare le soluzioni ai problemi più comuni su Internet (va bene!) È vero, anche gli anziani cercano sempre qualcosa su Stack Overflow, non biasimateli.

Tuttavia, i compiti a casa mal progettati sono destinati a fallire. In questa fase della vita, gli sviluppatori possono avere una famiglia e decine di altre opportunità di lavoro. Vedere l'ennesimo progetto di codifica da completare nel tempo libero può essere una sfida eccitante o una noiosa necessità. C'è una linea sottile tra continuare subito il processo e dimenticarsene per sempre. Quindi, come si fa a progettare il compito a casa perfetto?

Naturalmente, tutti questi consigli funzionano se si comunica ai candidati in anticipo l'aspetto dei compiti. E che il suo scopo è anche quello di risparmiare tempo durante il colloquio.

Mantenere la pertinenza

Se la vostra attività principale è il noleggio di automobili e la vostra sfida tecnica principale è il motore di raccomandazione, mantenete il vostro lavoro a casa vicino a questo. Non proponete domande astratte di tipo algoritmico. Naturalmente, non vi aspettate che i candidati risolvano i vostri problemi reali. Ma suggerite che si tratta del tipo di sfida che incontreranno quotidianamente. Ovviamente, dovete essere onesti al riguardo.

Il candidato può tentare una sfida di codifica semplicemente per avere un assaggio di ciò che fate al lavoro. Potete anche costruirci intorno una storia. Ad esempio: "prova a battere i nostri ingegneri", oppure "riesci a pensare a una soluzione migliore della nostra?". Creare un compito con una storia di fondo stimola l'interesse.

Non partire da zero

I cosiddetti progetti "greenfield" sono talvolta considerati un vantaggio quando ci si candida per un lavoro. Sebbene costruire un'applicazione da zero sia divertente, è problematico per molte ragioni:

  • La configurazione iniziale di una nuova applicazione è un compito non banale.

  • Gli sviluppatori raramente iniziano nuovi progetti, molto più spesso migliorano o mantengono quelli esistenti.

  • La revisione e il test delle applicazioni create da zero sono più difficili per i vostri ingegneri.

Per questi motivi, è molto meglio fornire una base di codice esistente e richiedere ai candidati di apportarvi alcune modifiche. Se il lavoro prevede una manutenzione significativa, si può prendere in considerazione la risoluzione dei problemi o la correzione dei bug di un'applicazione esistente.

Un altro grande tipo di incarico è la revisione del codice. Una cosa che gli sviluppatori senior fanno spesso. Potete anche pensare di mostrare la vostra base di codice, ovviamente nascondendo l'importante proprietà intellettuale. Questo ha un altro vantaggio: i candidati possono vedere il vostro stile di codifica.

Assicuratevi che sia facile da preparare

Se il vostro compito a casa richiede una certa versione di Python o Node.js, ditelo chiaramente. L'impossibilità di costruire ed eseguire il compito è un grave motivo di stress e frustrazione. Indicate chiaramente anche il tipo di compito che vi aspettate: algoritmico? Orientato alle prestazioni o al codice pulito? Fortemente testato o documentato? La qualità dei compiti a casa dice molto sulla vostra base di codice proprietaria. Se state preparando i candidati per un compito a casa su un framework AngularJS ormai scomparso, non aspettatevi molti candidati.

D'altra parte, se si forniscono ai candidati ambienti pronti all'uso, come macchine virtuali o IDE preconfigurati, è molto più probabile che tentino la sfida.

Anche un esempio di test non valutato è ottimo. Mostra ai candidati come si presenta più o meno il compito. Una volta che avranno sostenuto l'esame campione, potrebbero essere tentati di affrontare quello vero.

Infine, spiegate che cercare aiuto su Internet va bene.

Gamificare

Se potete applicare alcune tecniche di gamification, molti candidati le troveranno interessanti. Per esempio, create una classifica anonima tra i candidati o valutate i compiti a casa in base a un benchmark delle prestazioni. Gli hackathon e le sfide di codifica dimostrano che gli sviluppatori sono disposti a dedicare una parte significativa del loro tempo libero alla codifica.

Tuttavia, la gamification è complicata. È facile scoraggiare le persone. Se non si fa attenzione, si può addirittura essere accusati di creare un ambiente da corsa agli ostacoli. Quindi questa tecnica funziona meglio se il vostro marchio è ben consolidato.

Prestate attenzione al feedback che ricevete

Immagine da mcmurryjulie da Pixabay

Fate sapere in anticipo ai candidati che ogni parte dei compiti è soggetta a un feedback tecnico dettagliato da parte dei vostri ingegneri. Se la vostra azienda ha un marchio forte nella comunità degli sviluppatori, è una fantastica opportunità per i candidati. Ricordate che il feedback sarà costruttivo e garantito, indipendentemente dall'esito del processo.

Se parte della valutazione è istantanea, il feedback è ancora più rapido e agile. Ad esempio, si possono utilizzare test unitari automatizzati.

Si noti inoltre che il feedback o la revisione del codice conterranno collegamenti a ulteriori letture e materiali, suggerimenti, ecc. Non concentratevi su un singolo aspetto, come la copertura del codice o le prestazioni. Potreste scartare i candidati che hanno frainteso i requisiti o che non si concentrano sui vostri stessi valori.

Cosa non fare nel reclutamento tecnologico

Per riassumere, ecco un elenco di azioni durante il processo di assunzione che quasi certamente scoraggeranno i candidati più adatti a fare domanda e ridurranno il tasso di completamento dei test di codifica:

  • Non scrivete una lunga descrizione del lavoro che in realtà manca di informazioni preziose. O addirittura che mentono palesemente

  • Non avere un processo di assunzione molto lungo

  • Non implementate incarichi che richiedono troppo tempo per essere completati (1-2 ore è un limite ragionevole).

  • Non utilizzate valutazioni tecniche che non hanno nulla a che fare con il lavoro quotidiano, la routine e l'attività della vostra azienda.

  • Non inviate incarichi troppo lunghi, noiosi o troppo teorici.

  • Non dimenticate di offrire un feedback

Sintesi

Come abbiamo visto, quando si tratta di assumere sviluppatori software senior è importante trattarli in modo diverso dagli altri sviluppatori del vostro approccio. Capite che non sono disposti a farsi prendere in giro. Assicuratevi di scrivere un annuncio di lavoro sintetico e chiaro se volete che gli ingegneri senior si candidino. Assicuratevi anche di descrivere il progetto e l'azienda, non solo le tecnologie. Siate specifici sulla retribuzione e realistici sulle vostre aspettative. Dovete anche comunicare come si svolgerà il processo di assunzione e quanto tempo ci vorrà.

Infine, mantenete i test di codifica realistici, competitivi e divertenti, in modo che gli ingegneri senior vogliano intraprenderli. Devono essere brevi, al massimo qualche ora, se volete che gli sviluppatori senior li completino. Il tempo è importante. Seguite questi passaggi e avrete almeno qualche possibilità di successo.

Per consigli più dettagliati sull'assunzione di personale tecnico, scaricate il nostro Ebook gratuito.
La guida essenziale per il successo delle assunzioni tecniche

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