Tarefas de teste na entrevista do desenvolvedor - isso faz sentido?

Durante minha longa carreira em TI, consegui visitar os dois lados das entrevistas e ver todo o brilho, pobreza, insanidade e pensamentos sólidos das tarefas de teste emitidas em entrevistas técnicas de desenvolvedores de software.

Do lado do requerente (também conhecido como desenvolvedor Petya)


Se Petya estiver no início de sua carreira como desenvolvedor, ele provavelmente estará interessado em realizar tarefas de teste e está pronto para gastar seu tempo pessoal nisso. Para desenvolvedores de nível sênior e superior, essas tarefas já estão entediadas, especialmente não pagas. E como um desenvolvedor geralmente ignora mais de uma empresa, a quantidade de tempo desperdiçada nas tarefas de teste pode ser de dias ou até semanas!

Existem tarefas realmente legais? Eles acontecem, mas muito raramente, talvez um em 100. Basicamente, tudo é padrão e não é interessante - ler dados de algum lugar, fazer algo com ele, escrever dados em algum lugar (arquivo / base / soquete ...). Ou implemente algum algoritmo conhecido. Por que isso é assim? Sim, porque, na maioria dos casos, o inquilino só precisa afinar a pilha de currículos em sua área de trabalho. Falaremos sobre isso mais tarde.

Do lado do empregador (também conhecido como Timlid Vasya)


Vasya tem duas dúzias de currículos completamente adequados, entre os quais você precisa escolher um candidato digno para sua equipe. Entreviste todas as duas dúzias de Vasya com preguiça, e não há motivo, e ele decide filtrar um pouco a linha e escolher a mais digna. Claro, Vasya sabe que você pode seguir o caminho, como em uma famosa piada:

Por que precisamos de perdedores
O fim do dia útil. Dois funcionários de recrutamento estão sentados, velhos e jovens.
Antigo:
- Bem, eu terminei. Vamos para casa?
Jovens olhando para um pacote de currículos não processados:
- Sim, ainda tenho muito trabalho.
O antigo vem, divide o pacote em dois, joga um na urna. Jovens:
- como ?!
Antigo:
"Eles estavam sem sorte." Por que precisamos de perdedores?

Mas Vasya decide seguir outro caminho disseminado - distribuir uma tarefa de teste e enviá-la a todos os candidatos. E então o circo com cavalos começa, o que mostra o absurdo das tarefas de teste.

Entrevistador


Uma das piores opções para ambas as partes, se o líder da equipe, por algum motivo (ocupado, sem competências, estupidamente preguiçoso, foi almoçar), em vez de si mesmo, envia um membro de sua equipe para uma entrevista e toma uma decisão sobre sua retirada. Se isso acontecer, o líder da equipe, provavelmente, não ocupa seu lugar na empresa.

Tempo de execução e escopo da tarefa


Eu cumpri tarefas por meia hora e uma semana, em média, a maioria dos empregadores entende que não vale a pena exigir mais do que algumas horas de um candidato.

Qualidade do código e design


Aqui, os empregadores estão tentando perceber do que são privados no trabalho real na definição de tarefas - código com comentários, coberto com testes de unidade, sempre com estilo de código, e houve momentos em que você solicitou um breve tutorial sobre o programa. Na maioria dos casos, no trabalho real, requisitos completamente diferentes são muito mais prosaicos.

Formato da tarefa


Você pode encontrar tarefas padrão em casa e perversões como:

  • escreva uma decisão no quadro (isso geralmente é feito por empresas ocidentais)
  • escreva uma solução no bloco de notas no laptop da empresa
  • escreva uma solução remotamente no modo de programação em pares

O que Vasya vê na saída?


Alguns dos candidatos caem simplesmente porque são preguiçosos demais para trabalhar de graça, alguns não gostam da tarefa em si, outros não atendem plenamente a todas as condições que Vasya prescreveu com cuidado e cometem um pequeno erro. Como resultado, a fila de candidatos está realmente diminuindo, mas não de acordo com os princípios que Vasya esperava. Com o tempo, Vasya vê que a qualidade da tarefa de teste concluída e a eficácia do novo desenvolvedor na equipe estão fracamente correlacionadas e, para os próximos candidatos, não insistem na tarefa de teste, passando para o próximo nível de avaliação do desenvolvedor.

O que você gostaria de ver Vasya?


Em seus sonhos cor-de-rosa, Vasya vê que o candidato começará com alegria e entusiasmo o trabalho na tarefa de teste e fornecerá seu melhor código de todos os tempos, coberto por testes pelos mais incontroláveis, com uma estrutura competente (mas não excessivamente complicada) e generosamente temperado com comentários sensatos.

O que dá tarefas de teste na realidade?


A diferença entre a tarefa de teste e o trabalho real é tão grande que seria muito ingênuo projetar o resultado de uma pequena tarefa por 3 horas no longo trabalho do desenvolvedor. Muito permanece nos bastidores (depuração, solução de problemas, refatoração, a arquitetura do projeto é mais complicada do que Hello World , interação com colegas), o que elimina qualquer benefício de tais tarefas praticamente a zero. Com o mesmo efeito, você pode simplesmente jogar uma moeda e decidir rapidamente se o candidato é adequado ou não.

É bom conversar com o autor, provavelmente em escritórios legais há menos bobagens com tarefas


Um caso bem conhecido é quando o autor do gerenciador de pacotes Homebrew não foi levado ao Google, apenas pelo motivo de na 7ª entrevista ele não conseguir escrever um algoritmo no quadro como inverter a árvore binária. Quantas empresas durões perdem com essas tarefas complicadas - só podemos adivinhar.

imagem

Quais tarefas de teste não são necessárias?


Por estar no site de Vasya, às vezes eu dava tarefas de teste para ter algo a discutir após sua implementação. Mas somente se o próprio desenvolvedor não for contra. Isso funciona bem para desenvolvedores Junior e Middle se eles não tiverem código que possam demonstrar. Senior'ov e acima não podem ser apreciados por uma pequena tarefa de teste; aqui é necessária outra abordagem.

Os casos de teste podem realmente beneficiar ambas as partes?


Dadas as desvantagens dos casos de teste tradicionais, algumas empresas começaram a adotar uma abordagem mais próxima das condições de trabalho. O candidato recebe uma tarefa real da lista atual de tarefas (lista não processada) da empresa, que pode ser realizada de um dia a algumas semanas e é paga a uma taxa contratual. Assim, o candidato tem a oportunidade de trabalhar em modo de teste com uma nova equipe e, ao mesmo tempo, ganhar dinheiro pelo tempo gasto. Isso permite avaliar o candidato com mais precisão em condições próximas às forças armadas, mas, infelizmente, poucas empresas podem pagar.

Um leitor meticuloso perguntará: "OK, autor, se não for uma tarefa de teste, então de que outra forma você pode selecionar o senior certo?" E este é um tópico para um artigo separado, fique atento!

Source: https://habr.com/ru/post/pt469099/


All Articles