Por que um teste de amostra de trabalho identificará os desenvolvedores de software que você precisa contratar

Antes de ser fácil dar um teste de amostra de trabalho a qualquer pessoa que caísse no seu funil de recrutamento técnico, o processo de contratação técnica era um campo minado. Mesmo antes de entrar na indústria, lembro-me de ouvir histórias das frustrações que meus amigos e colegas enfrentaram ao tentar navegar no processo de entrevista técnica, tanto como candidatos como como gerentes de contratação.
Os candidatos foram atingidos por barragens de testes algorítmicos irrelevantes, demorados e desalentadores e entrevistas de quadro branco, o que favoreceu fortemente os recém-formados universitários e não lhes deu nenhuma visão do trabalho. Foi igualmente difícil para os recrutadores e gerentes de contratação. Eles tinham muito poucos métodos eficazes para determinar qual dos seus candidatos de desenvolvimento iria continuar a fazer um grande trabalho para eles. Então eles usaram o que estava disponível e tiveram que suportar a variabilidade dos resultados. Mas há uma maneira melhor.
O teste da amostra de trabalho é uma idéia bem estabelecida em outros campos, revolucionando o processo de contratação, mas agora está ganhando força na tecnologia.
Saiba mais sobre entrevistas técnicas e testes de habilidade em O guia definitivo para a entrevista técnica.
O que é um teste de amostra de trabalho?
Simplesmente definido, um teste de amostra de trabalho é um teste que, de acordo com o ex-Vice Presidente Sénior de Operações de Pessoas do Google Laszlo Bock,
Fonte da imagem: LinkedIn |
Isso parece muito simples, não é? Quase parece um período experimental, mas os testes de amostra de trabalho diferem em que cumprem todos estes critérios de Sockpuppet.org:
- Eles espelham o mais próximo possível o trabalho real que um candidato será chamado a realizar no seu trabalho.
- São padronizados para que todos os candidatos enfrentem o mesmo teste.
- Eles geram dados e uma nota, não um simples resultado de aprovação/reprovação.
- São muito mais curtos, geralmente não mais do que uma hora ou duas.
Então, se não é um julgamento, o que é? Ryan Daigle, diretor de engenharia da Spreedly coloca isso melhor:
Fonte da imagem: LinkedIn |
Em outras palavras, uma tarefa de desenvolvimento de software. Então, porquê fazer um esforço extra para testar os seus candidatos desta forma?
Um teste de amostra de trabalho é o melhor preditor do desempenho futuro de um desenvolvedor
Tem sido feita uma extensa pesquisa sobre a eficácia dos diferentes métodos de teste dos candidatos. Os resultados destes estudos apontam geralmente para testes de amostra de trabalho como sendo o melhor preditor de desempenho futuro.
Frank L. Schmidt, da Universidade de Iowa, e John E. Hunter, da Universidade Estadual de Michigan, fizeram um revisão dos 85 anos anteriores de pesquisa sobre o assunto. Descobriram que os testes de amostra de trabalho eram basicamente testes de pescoço e pescoço com aptidão mental geral (GMA) como os melhores preditores de desempenho futuro, com o bônus de não enviesarem contra minorias como os testes de GMA fazem.
Fonte: "A Validade e Utilidade dos Métodos de Selecção em Psicologia do Pessoal:Implicações Práticas e Teóricas de 85 Anos de Resultados de Pesquisa".
Não só o preconceito prejudicar os seus esforços de recrutamento estreitando a sua lista de candidatos, mas de acordo com Tikhon JelvisSe você é um cientista de dados líder na Target, ele pode abri-lo para processos judiciais sob o princípio do impacto díspar. Isto deixa os testes de amostra de trabalho como o vencedor claro, uma descoberta apoiada por Laszlo Bock, que neste entrevista da BBC revela que eles foram os melhores indicadores de desempenho futuro de qualquer um dos testes que fizeram no Google.
Mas estas descobertas são gerais, então como podem ser aplicadas na triagem dos desenvolvedores de software?
O que faz um bom teste de amostra de trabalho para desenvolvedores de software
Para que um teste de amostra de trabalho seja eficaz, ele precisa incluir uma tarefa que seja importante e representativo do trabalho que vai ser feito. O que isto significa para um desenvolvedor de software é melhor resumido por Ryan Daigle de Spreedly,
As amostras de trabalho devem ser um reflexo do que a empresa faz e como o faz. Elas são tanto sobre o candidato que mede a empresa quanto sobre a empresa que mede o candidato.
Um exemplo de tarefa de programação deve refletir os tipos de problemas que a empresa resolve e o ambiente em que eles o fazem. Isto significa ver quão confortável o seu candidato está em utilizar as bibliotecas e frameworks que a sua equipa já utiliza. Como Ryan aponta, o teste não se trata apenas de avaliar as habilidades do candidato. Ele também suporta um bom experiência do candidato dando ao candidato uma amostra das tecnologias que a empresa utiliza e dos tipos de tarefas para as quais as utiliza.
A tarefa deve ser feita no mundo real.
O Escritório de Administração de Pessoal dos EUA tem feito uma extensa pesquisa sobre a eficácia de diferentes métodos de determinação de habilidades de contratação. Seu conclusão é isso,
Como as amostras de trabalho exigem que os candidatos realizem tarefas idênticas ou muito semelhantes às tarefas do trabalho, é tomado muito cuidado ao tentar imitar o mais possível o ambiente de trabalho.
Em uma entrevista para um desenvolvedor de software, há duas áreas em que você precisa considerar este efeito. A primeira é o que mencionamos acima sobre a tarefa ser o mesmo tipo de tarefa que o candidato irá fazer se for contratado.
A segunda é tornar o ambiente de trabalho o mesmo. Dar ao candidato acesso a todos os recursos que normalmente utilizaria no trabalho. Estes incluem bibliotecas e estruturas, bem como recursos externos, como Excesso de pilha, GitHube Googletal como os seus actuais programadores usam.
Isso se estende até mesmo ao IDE que eles utilizam. Deixe-os usar aquele com o qual se sentem mais confortáveis. Não faz sentido perder seu tempo em conhecer uma ferramenta que eles só usarão na entrevista quando puderem estar fazendo a tarefa.
Você deve impor um limite de tempo
Definir um limite de tempo para o teste é importante por duas razões. A primeira é que nenhum desenvolvedor tem uma quantidade infinita de tempo para aperfeiçoar seu código. A um certo ponto, eles precisarão terminar seu projeto para que ele tenha algum valor.
A segunda é que um limite de tempo ajuda a definir o alcance do que você está procurando do candidato. Se você simplesmente der uma tarefa e pedir ao candidato para entregá-la quando ela estiver concluída, isso significa que ele deve levar uma semana para torná-la perfeita ou deve ser o seu melhor esforço dentro de uma hora? A adição de um limite de tempo ajuda a remover o preconceito que alguns programadores têm contra testes de amostra de trabalho como o jasode em Notícias Hacker. Eles não têm tempo de uma semana para fazer um projecto, por isso vão desistir do seu funil de recrutamento se o teste de programação parecer demasiado aberto.
Você deve pontuar o teste de acordo com uma rubrica
Falamos em outro lugar neste blog sobre a importância de ter uma rubrica objetiva para usar nas entrevistas. Eles ajudam eliminar preconceitos tornando o processo de avaliação o mais objetivo possível. O mesmo é válido para o seu teste de amostra de trabalho. Decida os critérios que deseja ter para o teste e, em seguida, mantenha-se fiel a eles. Isso o ajudará a obter as melhores pessoas, filtrando o ruído que pode turvar o seu julgamento.
Basta perguntar à Elena Grewal, chefe da Airbnb na Data Science. Em uma entrevista no LA TimesEla explica a importância de usar uma rubrica ao classificar um teste de amostra de trabalho:
Fonte da imagem: LinkedIn |
A mudança levou a duplicar o número de mulheres contratadas. Note que elas não mudaram os seus padrões. Em vez disso, introduziram um maior grau de objetividade que lhes deu acesso a candidatos mais qualificados, em primeiro lugar, todo o objetivo do teste.
O candidato deve ser autorizado a preparar-se e receber um feedback detalhado logo em seguida
O objectivo deste teste é que o candidato faça o seu melhor numa tarefa de trabalho normal. Normalmente no trabalho, você entende os tipos de tarefas que a empresa faz e raramente se surpreende com novas tarefas em um ambiente completamente novo. Você deve explicar exatamente sobre o que será o teste e a tarefa para que o candidato saiba exatamente o que esperar.
Após o teste, você deve dar ao candidato um feedback detalhado sobre o seu desempenho. Isto não só faz um bom experiência do candidatoTambém irá melhorar a reputação do seu empregador dentro da comunidade de desenvolvedores.
Como diferentes empresas constroem testes de amostra de trabalho para desenvolvedores de software
Várias empresas diferentes adoptaram abordagens diferentes para criar os seus próprios testes de amostras de trabalho. Aqui estão alguns exemplos que você pode usar.
PolicyStat (desde que adquirida pela iContracts) utilizou esta táctica para mais de 300 candidatos para 6 posições diferentes na sua equipa técnica. Para todos eles, eles dão um projeto específico que espelha o trabalho o mais próximo possível. Isto significa obter mais granular que a linguagem e realmente testar as tecnologias específicas utilizadas pela equipe, no seu caso Django.
Os candidatos são solicitados a enviar um pedido de puxar que anuncia um recurso e corrige um bug em um projeto baseado no Django.
Spreedly é uma ferramenta de pagamento para que a sua amostra de trabalho seja realmente criar um adaptador ActiveMerchant gateway para um gateway de pagamento falso. Este é exactamente o tipo de projecto que os seus dispositivos fazem a toda a hora para que se ajuste perfeitamente ao papel.
Você pode realmente dar uma olhada na amostra deles GitHub. Se você for lá, você pode ver como eles definem exatamente qual é a tarefa, como apresentá-la, o que eles estão procurando e o escopo do projeto.
Sockpuppet.org/Latacora é um Trilhos fazer compras. O que eles fazem é pegar uma aplicação Rails que eles implantaram e depois esculpir algumas áreas funcionais da aplicação. Isto pode ser um recurso de pesquisa ou um atualizador de pedidos do cliente. Eles então pedem ao candidato para adicionar a funcionalidade de volta.
Em DevSkillerA partir de um teste de amostra de trabalho para desenvolvedores de software e construímos uma plataforma para automatizar o processo para o testador e para o candidato. Os testes podem ser realizados na plataforma a partir de qualquer lugar do mundo, à vontade do candidato. O teste é então automaticamente avaliado poupando o tempo de um entrevistador técnico. Os recrutadores podem escolher entre um dos muitos testes pré-fabricados ou construir o seu próprio teste com o código real que a empresa utiliza.
Um bom exemplo de um teste DevSkiller é este teste para desenvolvedores Java que escrevem aplicativos de blog RESTful. Como você pode ver a descrição da tarefa estabelece as tecnologias que serão úteis (Spring, Spring Data JPA, Hibernate entre outros) e a tarefa (adicionar um recurso de comentário).
No topo da página, há um relógio de contagem decrescente útil para que o candidato saiba quanto tempo tem.
E há um console de construção para que o candidato possa fazer testes durante o teste da amostra de trabalho.
A idéia é criar parâmetros claros para o projeto, mas dar ao candidato a oportunidade de usar todos os recursos disponíveis para chegar a uma solução. Ao contrário das outras soluções, o DevSkiller acelera o processo enviando automaticamente o teste ao candidato, recebendo o teste concluído, clonando a tarefa, construindo-a e revendo-a sem que a qualidade dos testes seja comprometida. Como Arthur Brooks de CodeSpaghetti coloca, "[Devskiller] testam muito bem e dão uma visão geral significativa do desempenho do candidato". No final, o recrutador recebe um relato detalhado dos resultados para que o candidato possa ser comparado objetivamente com os outros candidatos que fazem o teste.
O seu próximo passo
Os testes de amostra de trabalho são uma forma incrivelmente precisa de avaliar se o seu candidato ao desenvolvimento de software pode ou não fazer o trabalho. Se você construir seu próprio teste a partir do zero ou usar uma plataforma automatizada, aqui estão algumas coisas para lembrar ao construir o teste.
Faça
- Medir objetivamente a apresentação
- Tornar o escopo da tarefa manejável e bem definido
- Teste o ambiente de programação específico que você usa com essas tecnologias
Não o faças
- Use isto como uma oportunidade para obter trabalho gratuito dos candidatos*.
*Houve alguns casos no passado (ver isto pergunta da Quora) onde as empresas, muitas vezes com start-ups com dinheiro em caixa, usarão uma tarefa de contratação como uma forma barata de adicionar um recurso ao seu produto. Simplesmente não o faça. Seus candidatos descobrirão e isso os afastará de sua empresa. Não só isso, eles vão contar aos seus amigos, arruinando a reputação do seu empregador.
Como você avalia as habilidades de codificação de seus candidatos? Estou ansioso para ouvir os seus pensamentos na secção de comentários abaixo!
Partilhar correio