Pergunta

Nossa empresa tem sido o pensamento sobre a demolição de nossos procedimentos de entrevista e trazendo cada candidato em durante 4-5 horas sentar-se com alguns dos programadores e apenas fazer alguma programação em pares.

Eu gosto da idéia na teoria, mas não estou certo de como você pode torná-la realmente justo para cada candidato. Como você avaliá-los? Não seria o seu contributo realmente depende do que cada programador estava trabalhando naquele dia?

Quaisquer pensamentos sobre se esta é uma boa idéia / má idéia ou como fazer o trabalho é o que eu sou tipo de olhar para aqui.

Felicidades!

EDIT:

RESULTADO - AS solicitado

Vamos realizar os primeiros passos da entrevista o mesmo de antes. Telefone seguido de cara a cara. Em vez de trazer-los de volta para uma terceira e última grelhar, nós estamos indo para trazer 3 desenvolvedores de volta a sentar-se com todos os 7 membros da equipe. Decidimos deixar a equipe decidir quem é então contratado.

Chegamos a essa conclusão por um par de razões. Acreditamos que este irá capacitar os colaboradores, dando-lhes uma escolha que eles estão trabalhando. A segunda razão é dinâmico grupo. Achamos que é muito importante ter uma dinâmica de grupo bom e é difícil dizer até depois de contratar uma pessoa se eles se encaixam ou não.

Assim, o resultado final é que vamos ir em frente com as sessões par de programação, mas de uma forma completamente diferente e uma maneira completamente diferente do que estava inicialmente previsto.

Todos os pensamentos ou críticas desta abordagem é mais do que bem-vindo !! (Esta edição é postado como uma resposta abaixo tão à vontade para downvote se você sentir esta não é a melhor abordagem)

Foi útil?

Solução

Eu espero que você tem um monte de passos à frente de um presente. Para que isso funcione você precisa de um excelente currículo e tela do telefone. Você não quer gastar grande quantidade de tempo sobre os candidatos que você não deve estar falando em primeiro lugar.

Então você sugere uma entrevista inicial e, eventualmente, ter a segunda entrevista como a sessão de programação em pares? - Ted Smith (1 min atrás)

Sim. Você pode até pensar em ter uma entrevista de codificação simples acontecer através da web usando algo como CoPilot .

Outras dicas

A menos que você use a programação em pares extensivamente em seu desenvolvimento no mundo real, eu estaria muito hesitante para usar isto. Eu conheci qualquer número de desenvolvedores profissionais de alta qualidade que mencionou uma forte aversão a programação em pares e cuja habilidade não seria bem-julgados nesse processo a.

A maneira mais fácil é dar a cada pessoa o mesmo programador para trabalhar com e exatamente o mesmo pedaço de código.

O problema que você vai correr em, é que a contratação não é como a programação. Não há um processo passo a passo para levar à resposta certa sobre quem contratar. (Você pode ter várias medidas para tornar a decisão mais fácil). Você tem que avaliar cada um em seus pontos fortes, etc e, essencialmente, fazer um palpite sobre qual é o melhor para contratar. Às vezes você errar.

A outra coisa sobre par programação que você vai ter que observar é a quantidade de tempo necessário para que cada candidato naquele movimento estágio por esse tipo de um teste. Se eu estivesse procurando um emprego, eu estaria hesitante para ir uma entrevista em uma empresa que iria me pedir para fazer isso. Por quê? Porque isso é um monte de tempo, e se eu estou entrevistando em vários lugares, eu poderia passar literalmente dias indo só para entrevistas para empregos que não pode mesmo começar ou quer. Someplaces como Google ou MS seria uma exceção, mas a maioria dos lugares não são como aqueles dois. (Para não mencionar o fato de que, se eles estão trabalhando em código real, que são essencialmente pedindo-lhes para fazer o trabalho de alguém de graça).

Eu só tinha uma entrevista com uma empresa sediada em San Francisco que se orgulha de métodos ágeis / etc. Eu era entrevistar o CEO si mesmo. Tenho cerca de 20 anos de experiência na indústria, mas nunca tem um par programado ou desenvolvidos usando abordagem TDD. Foi-me dito que seria uma "entrevista de programação", mas não tinha idéia do que esperar, e antes de começarmos o cara disse que ele pensou que eu possa concordar que todas as entrevistas deve ser feito desta forma. (Que, em retrospecto, não era nada mais do que uma declaração arrogante).

De qualquer forma, no momento da entrevista o exercício foi o de desenvolver uma classe usando TDD. Levei um segundo para ajustar o meu pensamento sobre todo o processo, uma vez mais desde que eu nunca tinha um par programado ou feito TDD. Enquanto eu tropecei aqui e ali eu fiz ok no final. mas sua resposta foi o que eu não exibiu a natureza vai-e-vem agressivo que eles necessitam para o seu ambiente de programação em par. Agora, que também poderia ter sido uma maneira dissimulada de dizer que "eu não acho que você fez grande" tipo de mensagem.

Felizmente eu não preciso o trabalho e para ser honesto a experiência me fez perceber que eu prefiro encontrar uma carreira diferente do que ter que ser um engenheiro de software que tem que trabalhar em pares, no dia a dia, quando se veio para o desenvolvimento de código. estranho é que de vez em quando eu tenho trabalhado com outra pessoa no código simultaneamente, então tudo é possível.

No final, eu acho que foi um bom resultado, uma vez que não achava que eu era um bom ajuste e eu não cuidar de seus métodos de trabalho. Mas teríamos chegou à mesma conclusão tinha eu falei um por alguns minutos mais sobre mim e ele tinha me dado um pouco mais de informação sobre como eles vão sobre seu trabalho. O que quer dizer que há outras maneiras de encontrar um bom ajuste candidato do que colocá-los através do stress da programação em par com um completo estranho; falsa maneira de competência calibre imo.

Como uma anedota pessoal, me deu um tapa em torno de uma entrevista por causa de uma técnica como esta. Eu tinha ido longe em seu processo de entrevista; passado os controlos do resumo, a apresentação de código e este era o rosto a porção de face da entrevista.

Eu estava fora fresco da universidade e nunca tinha um par programado antes nem feito TDD. Eles me sentaram-se para fazer um baralho de exercício cartão e ele fracassou. Seriamente! Eu não entendia por que o entrevistador estava escrevendo testes que pareciam * tão burro (IE "return null;") e eles não explicar por que e, claro, sendo estrangeiro para TDD Eu não sabia o que perguntar. O resultado final foi que parecia que eu não poderia programar minha maneira fora de um saco de papel.

Se você estiver indo para fazer este tipo de exercício que você precisa para atender ao entrevistado, porque eles vão estar em diferentes pontos com sua aptidão. Isso significa que você vai ter diferentes avaliações que não podem ser baseados no talento real e está indo, assim, a ser fortemente inclinado.

** Agora que eu compreendo TDD, eu entendo testes como este e como ele é suposto para trabalhar, mas o homem fez isso alguma vez parecer estúpido no momento! *

Eu só tinha uma entrevista par de programação há poucos dias e para ser honesto, eu realmente não gosto dele. I foi notificado deste um dia apenas antes da entrevista e, em seguida, o entrevistador me disse que a programação em pares é o que, eventualmente, eu vou fazer de qualquer maneira no trabalho. Entrei no escritório e foi emparelhado com alguém que é um engenheiro de software sênior muito. A empresa está em San Francisco e eles são uma empresa bem conhecida pela programação em pares, programas par todos no escritório. No início, parecia estar bem, ele explicou sobre todas as ferramentas utilizadas, o seu próprio framework de testes unitários que construir, e um pouco do projeto. então ele basicamente escreveu um monte de testes de unidade e eu queria trabalhar na implementação para torná-lo passar. Assim como um FYI, a base de código que já existe é enorme, eu diria 10k linhas, não é como um projeto super complexo, mas é complexo para alguém apenas passo e código em seguida, escrever sem entendimento prévio da hierarquia de classes etc . Acho que é realmente difícil de acreditar que ele espera de alguém para saltar imediatamente em uma linha de 10k de código-fonte que já existe. Ele só não corresponder para uma entrevista de programação em pares, uma base de código menor ajudaria. Lutei um pouco de navegar através das aulas e indo e voltando, porque eu não consigo lembrar os nomes de classe como eu estava sobrecarregado pela quantidade de aulas / código que já existe. Para ser honesto, isso realmente me fez fazer horrível no processo de entrevista. No final, eu não sinto muito bem sobre isso. Eu não fiz par programação antes, a maioria é apenas durante atribuições em meu ano de faculdade.

Para mim o poder de programação em pares pode ser aproveitada se você estiver já proficientes / confortável com o seu par, mas não é realmente adequado para a entrevista. Às vezes eu gostaria de fazer perguntas para o meu par, mas então eu pensei que se eu pedir muito perguntas, então eles iriam supor que eu fosse estúpido e não pode executar. Se este já estava em um emprego de verdade, eu não hesite em perguntar, mas em uma entrevista é difícil .. você quer perguntar porque o seu par deve ajudá-lo quando você está preso, mas ao mesmo tempo é uma entrevista , então você realmente não posso pedir muito mais.

Esta é apenas a minha experiência que eu tenho de entrevista par de programação, a minha sugestão, se você realmente quer fazer isso:

  1. ter certeza de que você não dá o candidato ao trabalho com uma grande base de código, trabalhar com um menor e, portanto, ele / ela pode mostrar seus / suas habilidades ao máximo
  2. estar na frente com o candidato antes da entrevista par de programação, você pode fazer perguntas quando você está preso, você deve ser capaz de fazer isso e aquilo, o que você não pode fazer
  3. ser o mais detalhado possível

No final, eu não iria sugerir isso. É difícil medir o desempenho de um candidato na programação em pares, e que poderia ser tendencioso também.

Uma determinada empresa usa uma técnica chamada extrema entrevistando . Para a entrevista extrema eles vão trazer digamos 30 desenvolvedores e agrupá-los em 15 pares. Eles vão explicar que eles estão procurando pessoas que trabalham bem com os outros. Que eles vão fazer uma decisão de contratação com base apenas na sua capacidade de trabalho com os outros.

Eles irão fornecer um problema para os pares para resolver. Eles vão ênfase que eles não estão interessados ??na solução justa cada habilidade programadores a trabalhar com os outros. Para cada par que irá fornecer um observador do par. Durante o exercício (cerca de 2 a 4 horas de duração), a vontade observador toma notas sobre a capacidade pessoa a par ... não a solução.

Eles são surpreendidos quantos programadores concentrar em resolver o problema em vez de colaborar. Dos 15 pares, eles vão identificar cerca de 4 a 6 de desenvolvedores para uma segunda entrevista. Os desenvolvedores serão convidados a voltar e passar uma semana com a equipe (são pagos). Depois de uma semana, eles decidem que para manter. Geralmente cerca de metade deles (2 a 3 desenvolvedores).

Quando são feitos, eles têm os desenvolvedores que são capazes de colaborar e depois de um trabalho semana com vários pares, a equipe tem uma forte indicação de que pode efetivamente desenvolver software. O processo é inovador e eficaz. Eles tiveram uma alta taxa de sucesso com aqueles que tenham contratado.

Eu gosto desta idéia. No entanto, eu acho que pode ser difícil de fazer, uma vez que exigiria o candidato ter algum conhecimento do projecto que iria emparelhar com ele. Além disso, 4 a 5 horas parece um pouco longo. E se você ver imediatamente que ele não está indo trabalhar para fora, você vai sentar-se com toda a sessão com o candidato?

Boa pergunta embora. Coisas em que pensar.

Por que não? Além disso, não é como entrevistas são sempre (ou nunca) justo. Você deve avaliar os resultados finais da nova abordagem contra a abordagem tradicional baseada em entrevista.

Além disso, uma mini-entrevista antes da sessão par programação pode ser bom para não desperdiçar o tempo dos programadores com as pessoas que seria uma má forma.

Da minha experiência limitada, meus sentimentos estão misturados. Eu gosto da idéia de emparelhamento como parte de uma entrevista, esp. se os usos empresa emparelhamento muitas vezes, porque dá tanto uma sensação melhor para o ajuste. Como candidato, eu sempre passaram por entrevistas onde eu estava sentado em uma sala de responder perguntas por algumas horas, mas depois não teve uma boa sensação para o que seria realmente gostaria de trabalhar em seu ambiente. Emparelhamento pode ser mais benéfico do que um exercício de codificação aleatória, a menos que o entrevistador é hábil em trabalhar alguém através daqueles. E eu gosto de ser capaz de discutir assuntos técnicos de ambos os lados. E como um candidato, eu prefiro interagir com alguém do que apenas responder a perguntas ou resolver problemas de código em meu próprio.

Mas ... como os outros, o tempo necessário pode ser um problema. Eu já passei por alguns dias de emparelhamento entrevistas e encontrou alguns períodos bons, enquanto outros senti algumas horas foram desperdiçadas: (. Esp dado o meu fundo) um, porque o desenvolvedor não estava trabalhando em algo que se prestava para o emparelhamento, o outro, porque um problema env impedido muito trabalho útil por um tempo. Se o trabalho não der certo, ele pode ser frustrante ter tomado um ou dois dias fora do trabalho por isso.

Um lugar tentando esta abordagem não tinha certeza se eles devem ter alguém de fora da empresa trabalhando no projeto de um cliente. Eles também temem que explicar o domínio e trabalho a ser feito levaria muito tempo, embora sem que o candidato pode não ser capaz de contribuir muito. Então eles escolheram um projeto open source o empregado estava trabalhando.

Este parece ser um ponto-chave: não precisa ser uma tarefa bem escolhido que o candidato pode entender rapidamente e ser capaz de contribuir para A última parte vai depender um pouco sobre as competências do candidato.. Também chave seria a capacidade do funcionário para avaliar alguém com esta abordagem. Nem todo mundo é grande em entrevista normal, e isso é provavelmente mais verdadeira de uma entrevista de emparelhamento.

Além disso, se uma empresa não faz muito emparelhamento então este tipo de entrevista pode não ser tão útil. Não parece benefício em ver código de alguém (como notas Joel Spolsky), e esta poderia ser uma boa maneira de fazer isso. Mas se o emparelhamento não é uma parte normal do trabalho, então talvez uma sessão de emparelhamento completo não é apropriado. Talvez uma versão modificada.

Eu seria curioso o que as empresas que tomaram esta abordagem pensar nos resultados. Lendo alguns dos outros respostas para essa pergunta mostra que nem sempre parece ideal do ponto de vista do candidato.

Para mantê-lo justo, você teria que fazer cada membro da equipe participando têm um problema preparado para avaliar o candidato por diante. De preferência algo tomado forma no mundo real em sua experiência empresa, mas algo que já foi resolvido. Esta é uma boa oportunidade de avaliar o conhecimento sobre um problema e não avalia apenas habilidades de programação.

Eu odeio quando questões muito específicas são respondidas. Eu tinha uma entrevista, uma vez que um programador estava testando meu conhecimento do STL que eu usei extensivamente e foi tentando me responder isso um alocador de costume era necessário. Eu tinha ouvido falar deles, mas nunca utilizados (esp no Windows) e foi feito para se sentir idiota. IOW, evite ser crítico.

Assim, meu ponto é, fazer perguntas práticas que não são tanto sobre a testar conhecimentos de programação como você pode avaliar a personalidade mais qualitativa e resolução de problemas se aproxima de se utilizar a ideia "par de programação".

Boa pergunta!

Honestamente, isso soa como uma grande idéia, embora Jason Punyon é certamente certo que você deve fazer um monte de capina antes de você perder uma quantidade significativa de tempo dos seus desenvolvedores em abates. Você obter um vislumbre de um importante fora métrica de que é outra forma quase inalcançável em entrevistar:. O que alguém como é trabalhar com

Eu não acho que não há realmente nenhuma necessidade de se preocupar sobre ele ser "justo", baseado no assunto ou tentar apresentar situações consistentes para diferentes candidatos, se você manter a atitude avaliativas direito - que não é sobre se "tem a resposta certa" ou saltou através do direito conjunto de aros, mas que tipo de esforço, resolução de problemas, aptidão comunicação e flexibilidade que eles mostraram. Você perderia a maior parte do benefício do exercício transformando-o em um teste artificial, para não mencionar transformando-o de algo que seus desenvolvedores podem obter algum benefício a partir de (ou pelo menos ainda obter algum trabalho feito durante) a um enorme desperdício de seu tempo.

Joel Spolsky tem um excelente Guerrilla Guide to Entrevistar que fala sobre, entre outras coisas, tarefas de programação.

Trivia: Joel Spolsky é uma co-fundador da stackoverflow.com

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top