Assumere sviluppatori: qualche consiglio per essere più efficienti? [chiuso]


17

Rappresento una società di software che sta costruendo un grande team di sviluppo software. Siamo esigenti in chi assumiamo e abbiamo un ottimo tasso di ritenzione (la maggior parte degli sviluppatori è qui da una media di 5-6 anni).

Abbiamo speso molto tempo per sviluppatori e risorse umane e abbiamo un basso rapporto tra applicazioni e assunzioni. Ecco il processo che usiamo:

  • Intervista alle risorse umane al telefono - Coinvolge le domande comportamentali e tecniche di base
  • Test online: comporta un test tecnico di 30 minuti
  • Intervista tecnica al telefono - Un'intervista di 60 minuti di uno sviluppatore
  • Intervista in loco - Un'intervista di 60-90 minuti di diversi sviluppatori senior

Sebbene questo processo abbia funzionato, abbiamo trascorso troppo tempo nelle interviste. Qualche idea su come si può fare diversamente? Il nostro obiettivo è quello di automatizzare qualsiasi attività, se possibile, mantenendo comunque la qualità del talento.


AGGIORNAMENTO: Grazie per le risposte. È necessario chiarire alcune cose. Il nostro obiettivo è ridurre il numero di candidati che passano da una fase all'altra. Ecco i nostri numeri attuali.

  1. Riceviamo 1000 curriculum
  2. 800 curriculum superano l'intervista alle risorse umane
  3. 500 superano il test online
  4. 100 passa la schermata iniziale del telefono
  5. 10 passano sul posto e vengono assunti

Come puoi vedere, dobbiamo fare un lavoro migliore eliminando i candidati prima nel processo. Possiamo fare un lavoro migliore nel modo in cui il test online valuta le persone?

Ecco altri dettagli sul processo basato su alcune risposte:

  • Intervista telefonica alle risorse umane - Pongono domande tecniche di base (che cos'è un CLR?) Per eliminare quante più persone possibile
  • Test online - Hai circa 10 domande di base con 3 domande di codifica
  • Schermo del telefono tecnico - Copre una varietà di tecnologie. Non ci interessa se il richiedente non sa tutto finché può dimostrare di essere in grado di acquisire nuove tecnologie e accelerare rapidamente
  • Onsite: domande di codifica davanti agli sviluppatori. Altre domande a livello di architettura.

2
Una strategia è assumere localmente. Questo non fa risparmiare tempo ma riduce i costi, se il costo è una considerazione importante.
rwong,

1
Un secondo modo è quello di identificare i colleghi che sono più propensi (o, non dispiacerebbe) coinvolti nelle assunzioni e permettere loro di assumersi una quota maggiore di responsabilità al riguardo.
rwong,

2
Perché non richiedere agli sviluppatori di inviare curriculum tramite git? Ciò eliminerebbe anche alcuni no-go.
WernerCD,

2
@WernerCD - Se stai assumendo sviluppatori .NET probabilmente non hanno sentito parlare di git.
jfrankcarr,

4
D'altro canto, odio le risorse umane che fanno domande tecniche e devo fare test online. Mi danno solo una brutta sensazione per un'azienda. Sarei molto più interessato all'azienda se saltassero direttamente su FizzBuzz e trascorressero invece 10 minuti a parlare di architettura. Trovo che queste cose siano molto più istruttive ed efficienti in termini di tempo.
MrFox,

Risposte:


31

Penso che ci siano alcuni posti in cui stai perdendo tempo.

Trascina l'intervista HR oltre un semplice primo contatto per impostare le interviste di follow-up. Fare in modo che le risorse umane facciano domande tecniche è una perdita di tempo. Ad esempio, mi è stato chiesto di farmi una domanda poco chiara su MVC e non sono stati in grado di chiarire che cosa veniva chiesto.

Abbandona il test online, soprattutto se stai assumendo sviluppatori di livello medio-alto. Spreca il loro tempo più il tuo tempo e denaro. Inoltre, alcuni sviluppatori semplicemente non fanno bene questo tipo di test.

Mentre un'intervista telefonica è buona, non dovrebbe richiedere un'ora intera. Spesso sono sufficienti 5-10 minuti per determinare se una persona è adatta o no. 30 minuti dovrebbero essere il massimo necessario per determinare se è garantito un faccia a faccia.

L'intervista faccia a faccia sarà la più importante. Basta non sprecarlo su BS come test di personalità delle risorse umane, test online standardizzati e simili. Prenditi il ​​tempo per conoscere la persona e vedere se si adatta alla tua squadra. Poni delle buone domande relative al lavoro che ti aspetti che facciano, non fare domande, non pensare a enigmi che hai sentito fare a Google / Microsoft / Apple / ecc. O oscure curiosità.

Potresti anche passare attraverso una società di reclutamento che fa un contratto da assumere. Molti di loro avranno fatto lo screening preliminare e i test e, in alcuni casi, avranno già lavorato con la persona. In questo modo puoi assumere il / i miglior / i candidato / i e determinare se sono idonei durante il loro lavoro effettivo per te. Se le cose non funzionano per qualsiasi motivo, lasciarle andare. Se sono adatti, tienili in giro come impiegati permanenti.


Modifica in base alle informazioni aggiornate ...

Se il tuo HR sta solo selezionando 200 su 1000, il problema potrebbe risiedere lì.

La tua richiesta di aiuto potrebbe essere troppo generica e incoraggiare molte persone ad applicare che altrimenti si escluderebbero. Potresti voler indirizzare meglio il tuo annuncio ma non sovradimensionarlo.

Con così tanti curriculum, le risorse umane potrebbero fare meglio esternalizzare questa fase a un'agenzia di pre-screening per restringere un po 'le cose, attraverso l'uso dell'automazione e / o interviste pre-screening e controlli di base. Ciò potrebbe includere un'intervista tecnica iniziale concessa da un vero programmatore. Potrebbe anche includere un test online, ma questo sarà della varietà di trucchi e curiosità.

Come ho detto, non penso che tu stia ottenendo molto valore dalle schermate dei test HR e online. Suggerirei di ripensarli e scoprirai che i tuoi numeri nelle altre fasi saranno più ragionevoli.


22
Divertente, non lavorerò per aziende che insistono su tali sciocchezze. Ho anche scoperto che le interviste alle risorse umane sono generalmente una perdita totale del mio tempo. Non mi dicono nulla sull'azienda e i droni delle risorse umane sembrano pensare che mi interessi dei "valori aziendali".
Kristof Provost,

2
@jfrankcarr - non importa cosa fa. Il programmatore deve essere in grado di pensare logicamente. Se semplicemente non copi cose già esistenti. Ogni progetto deve fare qualcosa di nuovo, anche quando utilizza l'algoritmo delle biblioteche ecc.
srnka,

3
@srnka - Per le tipiche app aziendali, non mi interessa se sono in grado di scrivere da zero un algoritmo di ordinamento stretto e di basso livello. Ci sono molte grandi librerie disponibili per questo. Mi importa se sanno seguire i modelli di programmazione, progettare una buona interfaccia utente, scrivere buone query DB e così via, cioè le cose che faranno ogni giorno sul lavoro.
jfrankcarr,

2
Mentre io non vorrei -1 ... ma rilasciare il test delle risorse umane e il test online ... e fare 1000 interviste da 10 minuti? Che dire di qualcuno che non è in grado di soddisfare i requisiti del lavoro (filtro risorse umane)? Oppure puoi fare un'intervista telefonica ma non FizzBuzz (test online)? Questi sembrano essere filtri abbastanza importanti.
WernerCD,

3
@NimChimpsky: Proprio come alcune aziende usano i test di personalità come strumenti per selezionare i candidati, alcuni candidati li usano come strumenti per selezionare le aziende.
Blrfl,

23

Questa è una situazione in cui non vuoi essere più efficiente di quello che già sei. Ci sono già troppi candidati che non possono superare FizzBuzz. Il tuo attuale processo di filtro sembra garantire la qualità degli sviluppatori. Avresti finito per perdere ancora più tempo lungo la linea se avessi eliminato uno qualsiasi dei passi che stai facendo finora.


5

Sembra che un candidato di successo impieghi circa 3-4 ore. Non proverei a ridurre quel tempo complessivo. Semmai, potrei aggiungere più tempo all'intervista in loco per dedicare un sacco di tempo ai candidati davvero fantastici per dimostrare il loro valore in modo definitivo e decidere se ciò che offri è interessante per loro a lungo termine. Con il tuo basso turnover, devi fare qualcosa di giusto.

Il ROI basso nel tuo processo potrebbe essere i primi tre passaggi. Forse puoi esaminare i curriculum in modo più rigoroso o cercare punteggi ancora più alti dal test online. Lo schermo tecnico del telefono potrebbe essere un obiettivo di ottimizzazione se lo si imposta su 30 minuti, ma si consente ai candidati superiori di estendere a 45 o 60 minuti.

Se è una consolazione, penso che la distrazione e il costo del tempo, mentre un trascinamento sul lavoro del progetto, sia uno dei momenti più preziosi che puoi spendere. Considera i costi e i problemi che derivano da errori di assunzione e i grandi guadagni per il team e l'azienda quando viene fatto un buon noleggio.

Se stai prendendo in considerazione, lavorando con quasi tutti i tuoi candidati, sei una specie di agnello sacrificale. Tuttavia, l'effetto globale del lavoro svolto ha un grande valore. Dovresti abbracciare il ruolo e mungerlo per tutta la buona volontà che puoi ottenere tra i nuovi assunti. Se il processo va bene, la tua direzione valuterà anche il tuo giudizio su altre cose.


4

Mentre lo leggo, il tuo sistema funziona e sei più che soddisfatto dei risultati. I tuoi team stanno lavorando bene, sono produttivi e tutti sono felici. L'unico problema è che ritieni che stia costando troppo.

Prendi in considerazione l'alternativa: riduci le spese generali per l'assunzione del personale (anche se qualunque sia il metodo). Di conseguenza, il mandato scende da 6 anni a 3. Se hai trascorso metà del tempo per ogni assunzione, allora hai speso lo stesso in totale nel solo reclutamento. Ora guarda il costo del turnover - a differenza del lavoro manuale (la pittura di recinzione è un buon esempio), ci vuole molto tempo per arrivare alla velocità, diciamo 3-6 mesi. Ciò significa che i tuoi risparmi in termini di assunzioni devono recuperare 3-6 mesi di salari, costi e profitti persi per l'azienda (chiamalo salari 2,5 *). Ora considera la disgregazione per il team e il rischio che una nuova assunzione comporta per le dinamiche del team.

Tutto sommato - un'assunzione in media ti costerà 3-6 mesi di stipendio. Quanto stai spendendo per riempire una posizione - una settimana o due è la mia ipotesi.

Modo per ridurlo: tutto ciò che posso vedere sono i tempi dell'intervista - li stai terminando o li riempi una volta che hai deciso che il candidato è un No (o un Sì)? Se hai deciso di fargli un'offerta dopo i primi 5 minuti, fai l'offerta. Se hai bisogno di 90 per decidere di non fare un'offerta, chiedi perché ci sono voluti 90 per arrivare a No (cioè cosa ha fatto per farla saltare negli ultimi 60 secondi).

Il reclutamento è nella migliore delle ipotesi un tiro di merda - sembra che tu abbia caricato con successo i dadi a tuo favore, sarei tentato di tenerlo così ......


3

Vorrei anche suggerire qualcosa che ho letto qui: Programmazione efficace: più che scrivere codice :

È bello vedere se il candidato "si adatta" alla cultura dell'organizzazione e alla vita quotidiana. Questo può essere fatto consentendo al candidato di porre domande ai dipendenti attuali "fuori registro" o in un livello avanzato facendo un contratto di lavoro per una settimana o due (suggerito dall'autore).

In retrospettiva se alcune aziende per le quali ho lavorato hanno usato questa strategia, non mi avrebbero mai assunto, qualcosa che sarebbe ugualmente buono per entrambe le parti.


1

Generalmente chiediamo loro di portare e spiegare alcuni dei codici che hanno scritto e di cui sono particolarmente orgogliosi, preferibilmente di un progetto open source.

" Aspetta " dici " Questo non ti distrae dalle persone che scrivono software nel loro tempo libero? "

Sì. Sì lo fa. Questo è il punto.


10
Due note: 1) in questo modo ti assicuri di perdere un sacco di candidati altrimenti ugualmente adatti che non fanno progetti open source nel loro tempo libero, per qualsiasi motivo (ad esempio, non hanno tempo libero, essendo un padre / madre ; preferiscono mantenere un equilibrio lavoro / vita per evitare il burnout; hanno altri hobby; ecc.) 2) questo non risponde alla domanda.
Péter Török,

1
+1 I migliori sviluppatori non sono da 9 a 5 sviluppatori. Trascorrono del tempo libero lavorando con i progetti. Bell'articolo: theundercoverrecruiter.com/...
jgauffin

6
Penso che questo sia baloney. Preferirei assumere qualcuno a tutto tondo con interessi al di fuori del lavoro. La codifica è semplice.
NimChimpsky,

3
Ho una domanda di routine per il mio colloquio: "sei mai stato coinvolto o contribuito a un progetto open source"? Lascia che ti dica che questa è solo un'indagine culturale . Se ce l'hanno, GRANDE !: gli piace quello che fanno abbastanza per usare il loro tempo libero, sono bravi con il lavoro a distanza e hanno capacità di comunicazione / negoziazione (gran parte della domanda ha a che fare con il coinvolgimento nella stessa comunità , Non mi interessa molto del codice). In caso contrario, non dovrebbe fare alcuna differenza , poiché probabilmente significa solo che hanno una famiglia.
dukeofgaming l'

3
@ PéterTörök - Aziende come quella che sta descrivendo non vogliono che i loro programmatori abbiano una vita esterna. Li vogliono giovani e distaccati in modo che possano usarli e sputarli in 3-5 anni.
jfrankcarr,

0

Hai pensato di lavorare con un'agenzia di reclutamento per cercare persone? Potresti sederti con un'agenzia e dire loro il tuo processo e cosa stai cercando in un candidato. Possono quindi passare il tempo a guardare i numerosi curriculum, fare il test tecnico generale e amministrare il test online. Quindi, passano i buoni candidati su di te per il telefono e l'intervista di persona.

In passato ho lavorato con un'agenzia di reclutamento come sviluppatore in cerca di lavoro. Ho dovuto fare un lungo processo di intervista per essere nel loro pool, e quando sono arrivati ​​i potenziali lavori ho dovuto fare i primi passi e se il mio codice / le risposte erano buone, ho avuto modo di incontrare l'azienda reale.

Sono sicuro che taglia un sacco di spese generali dalla tua squadra, ma ci sarebbe un costo. Ho sentito che può essere una percentuale dello stipendio del dipendente. Quindi, se stai offrendo 65k / anno, potresti offrire loro 60k e quindi pagare l'azienda 5k.


Quali meccanismi devono essere in atto per assicurarsi che l'agenzia di reclutamento stia facendo il suo lavoro? (Ad esempio, selezionando correttamente i buoni candidati e non sostenere candidati non idonei tramite i test di preparazione.)
Rwong

@rwong ~ È semplice, la società fa ancora il colloquio finale o 2. Questo è il meccanismo. Sostenere un candidato funziona solo se quel candidato non deve parlare con nessuno. Fare interviste per 2 ore (ora telefono e ora in loco) mostrerà rapidamente se il candidato è effettivamente buono. E se passano molti candidati falsi, smetti di usare quell'agenzia.
Tyanna,

0

Invece di chiedere che il nostro processo sia sbagliato, dovresti prima chiederlo se non riusciamo ad attirare le persone migliori disponibili là fuori. Molte organizzazioni non riescono a promuovere se stesse e il lavoro prima di ricevere domande. Credo sia anche un errore avere un coinvolgimento delle risorse umane nel primo punto di contatto. C'è uno scisma fondamentale tra i tipi di personalità impiegati nelle risorse umane e gli sviluppatori di fascia alta.

Dopo aver riflettuto a lungo nel corso degli anni su questo argomento, avrei usato una politica di assunzione al 100% di appaltatori / lavoratori temporanei e avrei offerto posizioni di carriera a tempo pieno per selezionare appaltatori dopo un anno. Alcune persone intervistano molto bene con conoscenze tecniche enciclopediche, ma trascorrono il loro tempo a scrivere il codice di cui sanno che hai bisogno, ma non quello che ti è stato chiesto.

Ho un suggerimento specifico per l'intervista, fornisco un po 'di codice e concedo al candidato 10 minuti per la revisione, quindi chiedo loro di criticare il codice.


Sono d'accordo, tranne per il fatto che penso che un anno sia troppo lungo per una situazione da contratto a perm. 6 mesi è il periodo più lungo che desideri per mantenere le persone. In genere, entro 3 mesi saprai se le persone si adattano bene o meno. Non c'è motivo di trascinare le cose.
jfrankcarr,

Il contratto di assunzione di sei mesi va bene se si desidera assumere appaltatori. Potrebbe essere troppo lungo se vuoi assumere qualcuno che è attualmente in una posizione permanente.
Kevin Cline,

0

Come dice SomeKittens, fai il test FizzBuzz ... solo che lo fa dal vivo e preferibilmente su carta, poiché quello che vuoi è davvero vedere quanto tempo impiegano a fare la soluzione. Non classificare la sintassi, solo la logica della soluzione, nel mio caso autorizzo anche lo pseudocodice e non è un problema, funziona altrettanto bene.

Ha funzionato come per magia per me ... Sono stato in grado di estirpare un cosiddetto ragazzo di 15 anni che ha parlato in grande del fatto che era così bravo che sarebbe disposto a "dimettersi" dalla sua posizione manageriale per un sparato a una posizione di sviluppatore nella mia compagnia ... oh ragazzo, ha fallito: 45 minuti (sono persino andato a prendere una bibita e sono tornato), l'ho fatto in pseudocodice e ha sbagliato. Il ragazzo aveva lasciato una buona impressione con le risorse umane a causa del suo curriculum, ma dato questo risultato sono stato in grado di eliminarlo senza sudare.

La media è di 15 minuti, meno di questo, non significa che hai un buon programmatore, più di questo inizia a preoccuparti di avere un cattivo programmatore davanti a te.

Leggi l'articolo di Jeff Attwood " Perché i programmatori non possono programmare " per avere un'idea dell'essenza del test.

Inoltre, purtroppo, sono in Messico e questo non è abbastanza popolare da dove scegliere, ma, forse, prova careers.stackoverflow.com ? Voglio dire, è uno strumento di reclutamento specializzato esattamente per quello che stai cercando.


0

Rispondere dal punto di vista degli sviluppatori, basandosi così tanto sulle capacità tecniche degli sviluppatori, ottiene sviluppatori di qualità ma allo stesso modo ha la possibilità di eliminare anche sviluppatori davvero bravi.

Sono coinvolto in molti background di programmazione C #, Java, PHP ecc. Molte esperienze di lavoro assicurano che una persona sia esperta nel suo campo, ma per questo un fatto ignorato è che altri background vengono soppressi.

Ad esempio, la maggior parte della mia esperienza riguarda PHP e conosco quasi tutte le tette e le parti del linguaggio, solo perché posso rispondere alla domanda, non mi rende un programmatore di qualità. E solo perché non ricordo il nome e la definizione della funzione in una libreria XXXX in Java non è un cattivo Java Coder.

Credo che gli sviluppatori dovrebbero essere giudicati in base al potenziale e all'adattabilità piuttosto che a ciò che possono fare.


0

Il mio suggerimento sarebbe di cambiare il colloquio delle risorse umane in modo da chiedere di più al candidato il loro ambiente di lavoro ideale. Un punto chiave qui per le risorse umane è semplicemente raccogliere le risposte e aggiungere punti su come viene data la risposta per determinare se il candidato sa quale tipo di ambiente desidera e quanto bene si adatta alla tua organizzazione.

Potrebbe esserci qualcosa da dire per le risorse umane che conoscono alcuni punti del processo generale utilizzato all'interno della tua organizzazione, ma è probabile che potresti fare un po 'più di diserbo se puoi impostare le cose in modo da avere valori specifici, stili di comunicazione e altri punti come cose da trovare per le risorse umane. Il punto qui non è che l'HR determini da solo l'adattamento, ma piuttosto raccolga le informazioni che possono quindi essere passate a uno o due sviluppatori che possono vedere se qualcuno vale la pena seguire rapidamente il processo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.