Domanda

La nostra azienda ha pensato a rottamazione nostre procedure di intervista e portando ogni candidato per 4-5 ore sit-down con alcuni dei programmatori e solo fare un po 'di programmazione coppia.

Mi piace l'idea, in teoria, ma non sono sicuro di come si può davvero rendere più equo per ciascun candidato. Come giudichi loro? Non sarebbe il loro contributo davvero dipenderà da ciò che ogni programmatore stava lavorando in quel giorno?

Ogni pensiero su se questa è una buona idea / cattiva idea o il modo per farlo funzionare è quello che sto tipo di ricerca di qui.

Cheers!

Modifica

RISULTATO - come richiesto

Ci accingiamo a condurre i primi passi del colloquio la stessa di prima. Telefono seguito da faccia a faccia. Invece di portare indietro per la terza ed ultima grigliate, ci accingiamo a portare 3 sviluppatori torna a sedersi con tutti i 7 membri del team. Abbiamo deciso di lasciare la squadra a decidere chi viene poi assunto.

Siamo giunti a questa conclusione per un paio di motivi. Riteniamo che questo consentirà a sviluppatori, dando loro una scelta che si sta lavorando. La seconda ragione è il gruppo dinamico. Pensiamo che sia molto importante avere un buon gruppo dinamico ed è difficile dire fino a dopo che assumete una persona se loro andranno bene o meno.

Quindi, il risultato finale è che stiamo per andare avanti con le sessioni di coppia di programmazione, ma in un modo completamente diverso e per un modo completamente diverso rispetto a quanto originariamente previsto.

Tutti i pensieri o le critiche di questo approccio è più che benvenuto !! (Questa modifica viene inviato come una risposta al di sotto quindi sentitevi liberi di downvote se credi che questo non è l'approccio migliore)

È stato utile?

Soluzione

Spero che tu abbia un po 'di passi davanti a questo. Per farlo funzionare è necessario un eccellente curriculum e schermo del telefono. Non si vuole spendere una gran quantità di tempo su candidati che non si dovrebbe parlare in primo luogo.

  

Quindi, lei suggerisce un colloquio iniziale   e possibilmente avere il secondo colloquio   come la sessione di programmazione coppia? - Ted   Smith (1 min fa)

Sì. Si potrebbe anche pensare di avere un semplice colloquio di codifica avvenga attraverso il web utilizzando qualcosa di simile CoPilot .

Altri suggerimenti

Se non si utilizza la programmazione coppia ampiamente nel vostro sviluppo del mondo reale, sarei molto riluttanti a utilizzare questo. Ho incontrato un qualsiasi numero di sviluppatori professionali di alta qualità che hanno parlato di una forte avversione per accoppiare la programmazione e la cui abilità non sarebbero ben giudicato in tale processo.

Il modo più semplice è quello di dare a ciascuno lo stesso programmatore di lavorare e lo stesso pezzo di codice.

Il problema si sta andando a correre in, è che l'assunzione non è come la programmazione. Non c'è un processo graduale di portare alla risposta giusta per chi assumere. (È possibile avere più passaggi per rendere la decisione più facile). Bisogna valutare ogni uno sulla loro punti di forza, ecc ed essenzialmente fare un'ipotesi su quale sia il migliore per assumere. A volte si sbaglia.

L'altra cosa su di programmazione coppia si sta andando ad avere per guardare fuori per è la quantità di tempo necessario per avere ogni candidato in quella fase passare attraverso quel tipo di test. Se fossi alla ricerca di un posto di lavoro, sarei restio ad andare un colloquio presso una società che mi chiedeva di farlo. Perché? Perché questo è un sacco di tempo, e se sto intervistando in più luoghi, ho potuto trascorrere giorni letteralmente solo andando a interviste per i lavori posso nemmeno GET o desiderare. Someplaces come Google o Microsoft sarebbe un'eccezione, ma la maggior parte luoghi non sono come quei due. (Per non parlare del fatto che se si sta lavorando sul codice vero e proprio, si sono essenzialmente chiedendo loro di fare il lavoro di qualcuno per libero).

Ho appena avuto un colloquio con una società con sede a San Francisco che si vanta di metodi agili / etc. Ero a intervistare l'amministratore delegato stesso. Ho circa 20 anni di esperienza nel settore, ma non hanno mai programmato coppia o sviluppato utilizzando l'approccio TDD. Mi è stato detto che sarebbe stato un "intervista di programmazione", ma non aveva idea di cosa aspettarsi, e prima abbiamo iniziato il ragazzo ha detto che pensava che io possa accettare che tutte le interviste dovrebbe essere fatto in questo modo. (Che a posteriori è stato niente di più che una dichiarazione arrogante).

In ogni caso, durante il colloquio l'esercizio era quello di sviluppare una classe utilizzando TDD. Mi c'è voluto un secondo per regolare il mio pensiero su tutto il processo, ancora una volta dal momento che non avevo mai paio programmato o fatto TDD. Mentre mi sono imbattuto qui e là ho fatto bene alla fine. ma la sua risposta è stata il non mi presentano il aggressivo natura avanti e indietro di cui hanno bisogno per il loro ambiente di programmazione coppia. Ora, che potrebbe anche essere stato un modo subdolo per dire che "non pensavo che hai fatto grande" tipo di messaggio.

Per fortuna non ho bisogno di lavoro e ad essere onesti l'esperienza mi ha fatto capire che io preferirei trovare una carriera diversa da dover essere un ingegnere del software che deve lavorare in coppia, giorno dopo giorno, quando si è venuto a sviluppare codice. cosa strana è che a volte ho lavorato con un'altra persona sul codice contemporaneamente, in modo tutto è possibile.

In conclusione direi che è stato un buon risultato dato che non avevano pensato che ero una buona forma e non mi importava per i loro metodi di lavoro. Ma avremmo giunto alla stessa conclusione aveva Ho parlato per qualche minuto in più su di me e aveva lui mi ha dato un po 'più di informazioni su come vanno circa il loro lavoro. Vale a dire che ci sono altri modi di trovare un buon candidato in forma che mettendoli attraverso lo stress di programmazione in coppia con un perfetto sconosciuto; modo fasullo per misurare la competenza imo.

Come un aneddoto personale, mi sono schiaffeggiò in giro in un'intervista a causa di una tecnica come questa. Ero andato lontano nel loro processo di intervista; superato i controlli di riprendere, il codice di presentazione e questo è stato il faccia a faccia parte del colloquio.

ero appena uscito dall'università e non avevo mai programmato prima coppia né fatto TDD. Mi Si sedettero a fare un mazzo di carte ed esercizio flop. Male! Non ho capito il motivo per cui l'intervistatore stava scrivendo le prove che sembravano così stupido * (IE "return null;") e non ha spiegato perché e, naturalmente, di essere estraneo al TDD non sapevo quali domande porre. Il risultato finale è stato che sembrava non ho potuto programmare il mio modo per uscire da un sacchetto di carta.

Se avete intenzione di fare questo tipo di esercizio è necessario per soddisfare l'intervistato, perché sta andando ad essere in diversi punti con la loro attitudine. Questo significa che si otterrà valutazioni diverse che non può essere basato sul talento reale e sono quindi andando essere fortemente di parte.

** Ora che ho capito TDD, capisco test come questo e come dovrebbe funzionare, ma l'uomo ha fatto mai sembrare stupido, al momento! *

Ho appena avuto un colloquio di coppia di programmazione a pochi giorni fa e ad essere onesti, non mi piace molto. Mi è stato notificato di questo un giorno appena prima l'intervista e poi l'intervistatore mi ha detto che la programmazione coppia è quello che alla fine ho intenzione di fare comunque nel lavoro. Sono andato in ufficio e sono stato in coppia con qualcuno che è un ingegnere del software molto alti. L'azienda si trova a San Francisco e sono una società ben nota per la programmazione coppia, programmi coppia tutti in ufficio. All'inizio sembrava andare bene, ha spiegato su tutti gli strumenti utilizzati, il loro quadro unit testing che essi costruiscono, e un po 'del progetto. Ha poi fondamentalmente ha scritto una serie di test di unità e mi voleva lavorare sulla realizzazione per farlo passare. Proprio come un FYI, la base di codice già esistente è enorme, direi 10k righe, non è come un super progetto complesso, ma è complesso per qualcuno al punto giusto in e poi scrivere il codice senza la previa conoscenza della gerarchia di classi, ecc . trovo davvero difficile credere che si aspetta qualcuno a saltare subito in una linea 10k del codice sorgente che già esiste. Semplicemente non corrisponde per un colloquio pair programming, una base di codice più piccola avrebbe aiutato. Ho faticato un po 'dalla navigazione attraverso le classi e andando avanti e indietro, perché non riesco a ricordare i nomi delle classi, come sono stato sopraffatto dalla quantità di classi / codice che già esiste. Per essere onesti, questo davvero mi ha fatto fare orribile nel processo di intervista. Alla fine non mi sentivo veramente bene su di esso. Non ho fatto pair programming prima, la maggior parte è solo durante le assegnazioni nel mio anno di college.

Per me la potenza di programmazione in coppia può essere sfruttata se sei già abile / agio con la vostra coppia, ma non è proprio adatto per un colloquio. A volte vorrei fare domande per la mia coppia, ma poi ho pensato che se chiedo troppo domande, allora si potrebbe pensare fossi stupido e non possono eseguire. Se questo era già su un vero e proprio lavoro, non esiterei a chiedere, ma in un'intervista è difficile .. si vuole chiedere perché la vostra coppia dovrebbe aiutare quando sei bloccato, ma allo stesso tempo si tratta di un colloquio , quindi non si può davvero chiedere molto.

Questa è solo la mia esperienza che ho da un'intervista coppia di programmazione, il mio suggerimento, se si vuole veramente fare questo:

  1. essere sicuri che non si danno il candidato di lavorare con una grande base di codice, lavorare con un  più piccolo e quindi lui / lei può mostrare il suo / la sua abilità al massimo
  2. stare davanti, con il candidato prima dell'intervista coppia di programmazione, si può fare domande quando si è bloccato, si dovrebbe essere in grado di fare questo e quello, che cosa non si può fare
  3. essere il più dettagliato possibile

Alla fine, non vorrei suggerire. E 'difficile misurare le prestazioni di un candidato in programmazione a coppie, e potrebbe essere di parte pure.

Un particolare azienda utilizza una tecnica chiamata estrema intervistando . Per l'estrema colloquio porteranno in dicono 30 sviluppatori e raggrupparli in 15 coppie. Essi spiegano che sono alla ricerca di persone che lavorano bene con gli altri. Che faranno una decisione di assunzione basata esclusivamente sulla loro capacità di lavorare con gli altri.

Essi forniranno un problema per le coppie da risolvere. Saranno enfasi che non sono interessati alla soluzione giusta ogni programmatori capacità di lavorare con gli altri. Per ogni coppia che fornirà un osservatore della coppia. Durante l'esercizio (circa 2 a 4 ore di durata), l'osservatore prende appunti su un capacità persona di coppia ... non la soluzione.

Sono stupito di come molti programmatori concentrarsi sulla soluzione del problema invece di collaborare. Delle 15 coppie, si identificheranno circa 4 a 6 sviluppatori per un secondo colloquio. Gli sviluppatori saranno invitati a tornare e trascorrere una settimana con la squadra (vengono pagati). Dopo una settimana, decidono che per mantenere. In generale circa la metà di loro (da 2 a 3 sviluppatori).

Quando hanno finito, hanno gli sviluppatori che sono in grado di collaborare e dopo una settimana di lavoro con varie coppie, la squadra ha una forte indicazione che può sviluppare in modo efficace il software. Il processo è sia innovativo ed efficace. Essi hanno avuto un alto tasso di successo con coloro che hanno assunto.

Mi piace questa idea. Tuttavia penso che potrebbe essere difficile da fare dal momento che richiederebbe al candidato di avere una certa conoscenza del progetto che si coppia con lui. Inoltre, 4 a 5 ore sembra un po 'lungo. Che cosa succede se si vede subito che non è andare a lavorare fuori, stai andando a sedersi attraverso l'intera sessione con il candidato?

Buona domanda però. Roba da pensare.

Perché no? Inoltre, non è come le interviste sono sempre (o mai) fiera. Si dovrebbe valutare i risultati finali del nuovo approccio contro l'approccio tradizionale intervista-based.

Inoltre, una mini intervista prima della sessione di programmazione coppia potrebbe essere buono per evitare di perdere tempo dei programmatori con le persone che sarebbe una cattiva forma.

Dalla mia limitata esperienza, i miei sentimenti sono mescolati. Mi piace l'idea di accoppiamento come parte di un colloquio, esp. se l'azienda utilizza accoppiamento spesso, perché dà sia una sensazione migliore per la misura. Come candidato, ho spesso passato attraverso interviste in cui mi sono seduto in una stanza rispondendo alle domande per un paio d'ore, ma poi non ha avuto una buona sensazione per quello che sarebbe davvero come a lavorare nel loro ambiente. L'accoppiamento può essere più vantaggioso rispetto a un esercizio di codifica a caso, a meno che l'intervistatore è abile a qualcuno che lavora attraverso quelli. E mi piace essere in grado di discutere cose tecniche da entrambi i lati. E come candidato, preferirei interagire con qualcuno che semplicemente rispondere a domande o risolvere problemi di codice da solo.

Ma ... come altri hanno notato, il tempo necessario può essere un problema. Ho passato attraverso un paio di giorni di interviste abbinamento ed ho trovato alcuni periodi buoni, mentre altri si sentiva come un paio d'ore sono stati sprecati: (. Specialmente dato il mio background) uno perché lo sviluppatore non funzionava su qualcosa che si prestava a accoppiamento, l'altro perché un problema env impediva molto lavoro utile per un po '. Se il lavoro non funziona, può essere frustrante di aver preso un paio di giorni di assenza dal lavoro per questo.

Un posto provare questo approccio non era sicuro se essi dovrebbero avere qualcuno al di fuori della società che lavora al progetto di un cliente. Hanno anche preoccupato che spiega il dominio e il lavoro svolto sarebbe troppo lungo, ma senza che il candidato potrebbe non essere in grado di contribuire molto. Così hanno scelto un progetto open source il dipendente stava lavorando.

Questo sembra essere un punto chiave: ci deve essere un compito ben scelto che il candidato può capire rapidamente ed essere in grado di contribuire a L'ultima parte dipenderà un po 'sulle competenze del candidato.. chiave sarebbe anche la capacità del lavoratore di valutare qualcuno con questo approccio. Non tutti è grande a colloqui normali, e questo è probabilmente più vero per un colloquio di accoppiamento.

Inoltre, se una società non fa molto di accoppiamento, allora questo tipo di intervista potrebbe non essere così utile. Ci sembra beneficio nel vedere codice di qualcuno (come note Joel Spolsky), e questo potrebbe essere un buon modo per farlo. Ma se l'associazione non è una parte tipica del lavoro, allora forse una sessione completa di accoppiamento non è appropriato. Forse una versione modificata.

Sarei curioso ciò che le aziende che hanno preso questo approccio pensare ai risultati. Leggendo alcune delle altre risposte a questa domanda dimostra che non sembra sempre ideale dal punto di vista del candidato.

Per mantenere giusto, dovreste fare ogni membro del personale che partecipano hanno un problema pronto a valutare il candidato. Preferibilmente qualcosa preso forma il mondo reale nella loro esperienza aziendale, ma qualcosa che è già stato risolto. Questa è una buona occasione per valutare la conoscenza su un problema e valutare non solo competenze di programmazione.

Odio quando le domande troppo specifiche trovano risposta. Ho avuto un colloquio di una volta in cui un programmatore stava mettendo alla prova la mia conoscenza della STL che ho usato ampiamente e stava cercando di farmi rispondere che era necessario un allocatore personalizzato. Avevo sentito parlare di loro, ma mai utilizzato (esp in finestre) e hanno fatto sentire stupido. IOW, evitare di esprimere giudizi.

Quindi il mio punto è, fare domande pratiche che non sono tanto di collaudo conoscenza di programmazione, come si può valutare la personalità più qualitativa e gli approcci di problem-solving, se si utilizza l'idea "coppia di programmazione".

Buona domanda!

Onestamente, che suona come una grande idea, anche se Jason Punyon è certamente giusto che si dovrebbe fare un sacco di diserbo prima di sprecare una notevole quantità di tempo gli sviluppatori sui abbattimenti. È possibile ottenere uno sguardo a un importante metrica fuori di esso che è altrimenti quasi introvabile in intervistare:. Quello che qualcuno è come lavorare con

Non credo che non c'è davvero alcun bisogno di essere preoccupato sul fatto che sia "giusto" in base al tema o cercando di presentare situazioni coerenti per diversi candidati, se si mantiene l'atteggiamento evaluatory destra - che non è circa se "ha ottenuto la risposta giusta" o saltato attraverso il giusto insieme di cerchi, ma che tipo di sforzo, problem-solving, attitudine comunicazione e la flessibilità hanno mostrato. Che ci si perde la maggior parte dei benefici dell'esercizio trasformandola in una prova artificiale, per non parlare di cambiarlo da qualcosa che gli sviluppatori possono ottenere qualche beneficio da (o per lo meno ancora ottenere un lavoro fatto durante) ad un massiccio spreco di il loro tempo.

Joel Spolsky ha un ottimo a Intervistare che parla, tra le altre cose, attività di programmazione.

Curiosità: Joel Spolsky è un co-fondatore di stackoverflow.com

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top