Uma amostra de código é uma maneira bastante eficiente de eliminar candidatos - eu posso julgar uma amostra de código em 5 a 10 minutos, mas mesmo uma tela de telefone leva 15 minutos e precisa de agendamento (e não é muito útil para eliminar qualquer coisa, exceto a própria fundo da pilha na minha experiência).
Eu acho que as principais objeções às amostras de código são duas vezes e são facilmente superadas:
- que exigir uma amostra de código coloca uma barreira artificial para alguns desenvolvedores talentosos
Obviamente, isso é verdade. Qualquer barreira no processo de inscrição ou contratação pode eliminar potencialmente um candidato desejável. O importante aqui é conhecer o seu público - se você tiver 1000 currículos para sua única abertura, poderá pagar alguns negativos falsos a serviço da eficiência. Se você tiver cinco currículos, poderá ineficiências no processo de triagem.
O que eu acho que a maioria das pessoas sente falta, porém, é que entrevistar e contratar é basicamente um jogo de "encontrar uma razão para não para contratar essa pessoa". Para qualquer trabalho decente, há muitos candidatos qualificados - o último em pé é geralmente aquele que não exibiu bandeiras vermelhas ao longo do caminho. É fácil ver o melhor das pessoas ou não ser comprometido, mas isso não ajuda em nada na contratação, porque você terá 10 candidatos diferentes com os quais se sente confortável. Isso não te aproxima mais de uma decisão.
Cada petisco que você coletar ao longo do processo de revisão, triagem, entrevista etc. pode potencialmente desencadear uma decisão de não contratação. Você precisa equilibrar a sensibilidade do seu gatilho de não contratação com seus clientes atuais (e potenciais futuros). Se você está em um setor entediante, com muito código legado, burocracia e salário baixo (geralmente fora de controle), seu gatilho precisa ser menos sensível do que o Google. Caso contrário, você corre o risco de nunca contratar alguém.
Pessoalmente, acho que o compromisso mais fácil para mim foi solicitar, mas não exigiruma amostra de código. Se eu receber um, é apenas um ponto de dados adicional para avaliar o candidato. Da mesma forma, se eu tiver um conhecido que tenha trabalhado com o candidato no passado, atribuirei um certo peso às opiniões dele. Não ter trabalhado com ninguém que conheço certamente não desqualifica nenhum candidato - apenas significa que meu trabalho de avaliá-los é um pouco mais difícil (e provavelmente incluirá um exercício de codificação, se eles conseguirem uma entrevista). Se a sua amostra é ruim (ou o meu conhecido fala mal de você), é praticamente sem contratação. Aqueles que fornecem uma amostra podem ou não ter uma pequena vantagem sobre os que não fazem na triagem inicial - dependendo da qualidade e quantidade da pilha de currículos e amostras, mais informações podem ser melhores ou piores que nenhuma informação.
- que as amostras são facilmente falsificadas
Bem, sim. O mesmo acontece com os currículos - mas ainda os coletamos. Por quê? Por três razões principais - um currículo ou amostra ruins é fácil de contratar, ser pego fingindo um currículo ou amostra é fácil e eles são bons tópicos de conversa em uma entrevista. Quanto mais rápido eu descobrir que o candidato é idiota, melhor para todos.
Se você for esperto o suficiente para plagiar uma boa amostra sem ser pego, fale de maneira inteligente e termine a entrevista - eu não tenho um problema específico em como você passou na triagem. Pode haver algumas preocupações éticas aqui, mas essa não é realmente minha área de especialização, por isso não estou me esforçando para avaliar o caráter moral durante uma entrevista. Para mim, é praticamente o mesmo que meu chefe me pedindo para entrevistar alguém que não passou pelo processo de triagem como um favor. Quando você está na fase de entrevista, realmente não importa como você chegou lá, pois há muito mais e melhores informações que serão exibidas durante a entrevista.
TL; DR - um exemplo de código é uma ótima ferramenta de triagem, mas você deve pensar cuidadosamente se pode ou não exigir isso. Após a triagem, ponderar a entrevista muito mais do que uma amostra.