Bater no olho do touro com testes de codificação em ambiente natural [estudo de caso]

Agosto 26, 2015

After publishing a post concerning most common don’ts of hiring programmers we received some questions regarding programming tasks and the way we should verify coding skills.

From my long-term work experience I’ve got a lot of consulting practice on recruiting process of programmers in some of the biggest IT companies based mostly in central-eastern Europe.

Temos escrito muito sobre entrevistas técnicas. Confira O guia definitivo para a entrevista técnica.

Desafios em entrevistar desenvolvedores

When I started interviewing developers there was no time for active programming and coding tests. We had a lot of candidates, so we had to stick to one hour limit for every issue – soft and technical assessment as well as financial negotiations. Finally we were hiring around 5% of initial candidates. After trial period about 90% of them continued working. It was quite good conversion rate.

Bastante...

Mas depois de calcular custos que foram causados por decisões inadequadas de contratação, percebemos que estávamos desperdiçando muito dinheiro. Salário, RH, escritório, cadernos de notas, tempo de arranque dos programadores seniores, etc. As despesas adicionais ao salário eram, em média, quase o dobro do custo final.

Havia três razões principais para não contratar desenvolvedores após o período experimental:

  1. eles não puderam trabalhar na equipa,
  2. eles tinham apenas conhecimentos teóricos,
  3. eles estavam a trabalhar muito mais devagar do que o esperado.

A razão pela qual não fomos capazes de descobrir todas essas desvantagens foi saltar os testes de codificação activa durante a entrevista. Contratar desenvolvedores de software sem verificar se eles realmente podem codificar rápido e inteligente é semelhante a comprar um carro sem verificar se o motor funciona.

Então como poderíamos verificar todas estas fraquezas em apenas 60 minutos?

The answer is simple – we couldn’t! We had to extend interviewing process by at least two hours. But prior to doing that we were forced to limit the number of candidates at first. We decided to make 15 minutes phone screening by asking 10-15 technical questions as well as getting to know their salary expectations. On that basis we’re inviting candidate again or not. Screening process allowed us to reduce number of next necessary meetings by almost 40%, which was worse result than we expected, but good enough for extending the time of every single interview.

Temos tentado encontrar uma solução para verificar se cada candidato está no mesmo comprimento de onda com a equipe, bem como se eles podem usar as linguagens de programação que costumamos usar no dia-a-dia. Independentemente das habilidades de codificação exigidas no trabalho dos programadores, damos ênfase à forma como eles estão pensando, especialmente porque isso afeta sua habilidade de se comunicar com os outros.

A programação de pares é uma solução?

The idea was to do pair programming! Cool – we’ll get the best of both worlds. The assumption was right for around 70% of our candidates. As a result one-hour coding session was sufficient to see how someone will act in our demanding and specific environment – both in using possessed knowledge in practice, using ability of quick information processing, flexibility and also as a teamworker, who sometimes is forced to make compromises in order to achieve company’s goals.

Simultaneamente, também nos permitiu ver como eles usam as ferramentas, mas antes de mais nada - como podem usar os princípios SÓLIDOS na prática, etc. Mas o que fazer com o outro 30%? Na verdade, estas eram pessoas que não conseguem programar em pares. Para elas não era nada natural. É um grande problema? Quando você percebe que na prática você passou 5-10% do tempo em programação em pares você tem que pensar se você pode viver com tais funcionários na posição que você está preenchendo 🙂

Como podemos verificar as suas capacidades de codificação? Deixe-os continuar a tarefa que começamos. Mas sozinhos. Sem entrevistadores a olhar por cima do ombro e a comentar cada uma das linhas de um código.

O que também é importante, devemos recriar as condições naturais para cada desenvolvedor - IDE favorita instalada, acesso ao StackOverflow.com, documentação, etc. Se o candidato perguntar sobre o uso de seu próprio notebook - a resposta sempre deve ser: "Sinta-se livre. Faça tudo que você precisa para se sentir confortável na codificação". O meio ambiente natural é um meio absoluto para todos os tipos de testes de verificação de habilidades de codificação, tanto na programação de pares como em entrevistas individuais.

Partilhar correio

É mais do que um simples boletim informativo.

Receba insights úteis diretamente em sua caixa de entrada e aprenda mais sobre a contratação de tecnologia.

Verificar e desenvolver as habilidades de codificação sem problemas.

Veja os produtos DevSkiller em ação.

Certificações de segurança e conformidade. Certificamo-nos de que os seus dados estão seguros e protegidos.