Contratar especialistas em TI é uma tarefa complexa. Primeiro, há uma escassez de profissionais experientes no mercado, e eles estão cientes disso. Os candidatos frequentemente não estão dispostos a gastar muito tempo em "processos seletivos" sem antes serem atraídos. A prática anteriormente popular de "dar um teste de mais de 8 horas" já não é eficaz. Para uma avaliação inicial de conhecimentos e seleção de candidatos antes da entrevista técnica completa, é necessário recorrer a métodos mais rápidos. Em segundo lugar, para avaliar adequadamente conhecimentos e habilidades, é preciso ter essas competências ou contar com a ajuda de um colega que as possua. Essas dificuldades podem ser resolvidas com as abordagens que descreverei neste artigo. Eu mesmo aplico esses métodos e criei um tipo de classificação pessoal.
Assim, meu top 7 de maneiras rápidas de verificar as competências de especialistas em TI antes da entrevista:
7. Analisar o portfólio, exemplos de código e repositórios abertos do candidato.
6. Uma tarefa de teste rápida com tempo limitado (executada em 30-60 minutos).
5. Uma breve entrevista por telefone/Skype sobre habilidades (como um questionário, mas online e por voz).
4. Live-Doing (Codificação) – resolver uma tarefa simples em tempo real com a tela compartilhada.
3. Questionários com perguntas abertas sobre a experiência.
2. Testes curtos com opções de resposta, limitados por tempo de conclusão.
1. Tarefa de teste em múltiplas etapas, onde a primeira fase é realizada antes da entrevista.
A seguir, discutirei esses métodos em detalhe, suas vantagens e desvantagens, e as situações em que utilizo cada um deles para uma verificação rápida das competências dos programadores.

No artigo anterior sobre o funil de contratações eu realizei uma pesquisa entre os leitores sobre maneiras rápidas de verificar as habilidades de especialistas em TI. Neste artigo, compartilho os métodos que pessoalmente prefiro, por que gosto deles e como os aplico. Começo pelo primeiro lugar e termino com o sétimo.
1. Tarefa de teste em múltiplas etapas, onde a primeira fase é realizada antes da entrevista.
Acredito que este método de verificação das competências dos desenvolvedores seja o melhor. Ao contrário da tradicional tarefa de teste, em que você diz "aqui está a tarefa e vá fazer", na minha abordagem o processo de realização da tarefa teste é dividido em etapas – discussão e entendimento do problema, design da solução e avaliação dos recursos necessários, várias etapas de implementação da solução, documentação e entrega e aceitação da solução. Essa abordagem é mais alinhada com a tecnologia moderna de desenvolvimento de software do que simplesmente "pegue e faça". Detalhes a seguir.
Em quais casos utilizo este método
Para meus projetos, geralmente contrato funcionários remotos que desenvolvem uma parte específica, isolada e relativamente independente do projeto. Isso reduz a necessidade de comunicação entre os funcionários, muitas vezes a zero. Os funcionários não se comunicam entre si, mas com o gerente do projeto. Portanto, é importante para mim avaliar rapidamente as capacidades da pessoa em compreender a tarefa, fazer perguntas esclarecedoras, elaborar um plano de ação para solucionar a tarefa, avaliar os recursos e o tempo necessários. Nisso, a tarefa de teste em várias etapas me ajuda muito.
Como implementar
Destacamos e formulamos uma tarefa independente e original relacionada ao projeto no qual o desenvolvedor vai trabalhar. Geralmente, descrevo como tarefa um protótipo simplificado da tarefa principal ou do futuro produto, para cujo desenvolvimento o desenvolvedor terá que enfrentar os principais problemas e tecnologias do projeto.
A primeira etapa da tarefa de teste é familiarizar-se com a tarefa, esclarecer o que não está claro, projetar a solução, planejar os passos para resolver a tarefa e estimar o tempo necessário para realizar cada etapa e toda a tarefa de teste. Ao final, espero um documento de 1-2 páginas, onde o plano de ação do desenvolvedor e a estimativa de tempo estejam detalhados. Também peço aos candidatos que indiquem qual etapa eles gostariam de implementar completamente para validar suas habilidades na prática. Por enquanto, não é necessário programar nada.
Esta tarefa (a mesma) é atribuída a vários candidatos. Espera-se que as respostas dos candidatos cheguem no dia seguinte. Em seguida, dentro de 2-3 dias, quando todas as respostas forem recebidas, analisamos o que os candidatos nos enviaram e quais perguntas esclarecedoras fizeram antes de começar a realizar a tarefa. Com base nessas informações, podemos convidar para a próxima etapa a quantidade de candidatos que você precisar.
A próxima etapa é uma breve entrevista. Já temos o que discutir. O candidato já tem uma ideia aproximada sobre a área do projeto em que deve trabalhar. O principal objetivo dessa entrevista é responder às perguntas técnicas do candidato e motivá-lo a realizar a tarefa principal de teste – programar a parte do problema que ele mesmo escolheu. Ou a parte cuja implementação você deseja ver.
É sempre muito interessante observar qual parte da tarefa o desenvolvedor deseja implementar. Alguns preferem estruturar o projeto, decompor a solução em módulos e classes, ou seja, avançam de cima para baixo. Outros destacam uma sub-tarefa específica, a mais importante em sua opinião, sem descrever a solução como um todo. Ou seja, eles vão de baixo para cima – da sub-tarefa mais complexa até a solução completa.
Vantagens
Podemos ver a erudição do candidato, a aplicabilidade de seu conhecimento ao nosso projeto e o desenvolvimento de suas habilidades comunicativas. Também nos facilita comparar candidatos entre si. Normalmente, eu descarto aqueles candidatos que deram estimativas de tempo de execução da tarefa muito otimistas ou muito pessimistas. Naturalmente, tenho minha própria estimativa de tempo. Uma estimativa muito baixa do candidato geralmente indica que a pessoa não compreendeu bem a tarefa e realizou o teste de forma superficial. Uma estimativa de tempo excessivamente alta geralmente indica que o candidato tem uma compreensão ruim da área do projeto e não possui experiência nos tópicos que preciso. Eu não descarto candidatos imediatamente com base em sua estimativa, mas peço que justifiquem sua avaliação, caso não tenha sido suficientemente motivada.
Para alguns, esse método pode parecer complexo e dispendioso. Minha estimativa de esforço para aplicar esse método é a seguinte: levará de 30 a 60 minutos para descrever a tarefa de teste e, em seguida, de 15 a 20 minutos para revisar a resposta de cada candidato. Normalmente, os candidatos levam no máximo de 1 a 2 horas para completar essa tarefa de teste, durante as quais eles se aprofundam na essência das questões que terão que resolver posteriormente. Já nesta fase, o candidato pode perder o interesse e desistir de se comunicar com você, gastando apenas um pouco de tempo.
Desvantagens
Primeiramente, é necessário criar uma tarefa de teste original, isolada e concisa, o que nem sempre é possível. Em segundo lugar, nem todos os candidatos entendem imediatamente que, na primeira etapa, não é necessário programar. Alguns começam a programar de imediato e desaparecem por vários dias, depois enviam a tarefa de teste completamente concluída. Formalmente, eles não atenderam a essa tarefa de teste porque não fizeram o que foi solicitado. Mas, ao mesmo tempo, eles conseguiram, se enviaram uma solução adequada para toda a tarefa de teste. Para evitar tais incidentes, costumo ligar para todos os candidatos que receberam a tarefa dois dias após sua atribuição para saber como estão indo.
2. Testes curtos com opções de resposta, limitados em tempo de conclusão
Raramente utilizo esse método, embora goste muito dele e o considere um dos melhores modos de verificação rápida de competências. Escreverei sobre esse método em um artigo separado em breve. Esses testes são amplamente utilizados em diferentes áreas do conhecimento. O exemplo mais claro e típico é o exame teórico para obtenção da carteira de motorista. Na Rússia, esse exame contém 20 perguntas que devem ser respondidas em 20 minutos. É permitido um erro. Com dois erros, é necessário responder corretamente a 10 perguntas adicionais. Esse método pode ser automatizado de maneira excelente.
Infelizmente, não encontrei boas implementações desse tipo de teste para programadores. Se você conhece boas implementações prontas de testes semelhantes para programadores, por favor, escreva nos comentários.
Como implementar
Trabalhei com implementações independentes de testes semelhantes para empregadores ao executar pedidos como recrutador terceirizado. É perfeitamente possível implementar tal teste. Por exemplo, com a ajuda do Google Forms. O principal problema é elaborar as perguntas e as opções de resposta. Geralmente, a imaginação dos empregadores se limita a 10 perguntas. Infelizmente, no Google Forms não é possível implementar a rotação de perguntas de um pool e restrições de tempo. Se você conhece uma boa ferramenta online para criar seus próprios testes, onde é possível limitar o tempo de conclusão e organizar a seleção de diferentes perguntas para diferentes candidatos, por favor, mencione esses serviços nos comentários.
Em quais casos utilizo este método
Atualmente, estou usando esse método a pedido dos empregadores, se eles tiverem testes prontos que podem ser aplicados aos candidatos. Também é possível combinar esses testes com o quarto método do meu ranking - pedindo ao candidato para compartilhar a tela e realizar o teste. Assim, você pode discutir com ele as perguntas e opções de resposta.
Vantagens
Com uma boa implementação, esse método é autônomo. O candidato pode escolher um horário conveniente para realizar o teste e você não precisa gastar muito do seu tempo.
Desvantagens
A implementação de qualidade desse método é bastante cara e não é muito conveniente para uma empresa pequena que contrata novos funcionários esporadicamente.
3. Questionários com perguntas abertas sobre a experiência
É um conjunto de perguntas abertas que solicita ao candidato que reflita com base em sua experiência. Não oferecemos opções de resposta. Perguntas abertas são aquelas que não podem ser respondidas de forma simples e direta. Por exemplo, lembre-se da tarefa mais difícil que você resolveu usando tal framework? Qual foi a principal dificuldade para você? Não é possível responder a essas perguntas de forma simples. Na verdade, a única resposta simples seria - eu não tenho essa experiência, não trabalhei com essa ferramenta.
Como implementar
É facilmente implementável com o Google Forms. O principal é criar as perguntas. Eu uso algumas construções padrão.
Fale sobre o último projeto que você fez usando XXX, o que foi mais difícil para você nesse projeto?
Quais são as principais vantagens da tecnologia XXX para você? Traga exemplos da sua experiência.
Ao escolher a tecnologia XXX, quais outras alternativas você considerou e por que escolheu a XXX especificamente?Em quais situações você preferiria a tecnologia AAA em vez de BBB?
Fale sobre o desafio mais difícil que você resolveu usando a XXX, qual foi a principal dificuldade?
Consequentemente, essas construções podem ser aplicadas a muitas tecnologias do seu stack de trabalho. É difícil responder a essas questões com frases prontas da internet, pois são pessoais e baseadas em experiências. Ao responder a essas perguntas, o candidato geralmente tem em mente que, durante a entrevista, qualquer uma de suas respostas pode levar a perguntas adicionais. Portanto, se não houver experiência, os candidatos costumam se afastar, percebendo que a conversa pode ser sem sentido.
Em quais casos utilizo este método
Ao trabalhar com pedidos de seleção de especialistas, se o cliente não sugeriu seu próprio método de verificação inicial de competências, eu aplico esse método. Já tenho questionários preparados sobre diversos temas e não é difícil aplicar esse método para um novo cliente.
Vantagens
Não é difícil implementar isso usando Google Forms. Além disso, um novo questionário pode ser criado com base no anterior, substituindo os nomes das tecnologias e ferramentas por outros. Por exemplo, um questionário sobre experiência com React terá poucas diferenças em relação a um questionário sobre experiência com Angular.
A elaboração desse questionário leva de 15 a 20 minutos, enquanto as respostas dos candidatos geralmente levam de 15 a 30 minutos. O tempo gasto é pequeno, mas obtemos informações sobre a experiência pessoal do candidato, que podemos usar como base para tornar cada entrevista única e mais interessante. Normalmente, a duração da entrevista após esse questionário é menor, pois não precisamos fazer perguntas simples e repetitivas.
Desvantagens
Para diferenciar a resposta própria do candidato de uma resposta "googlada", é necessário entender o tema. Mas isso vem rapidamente com a experiência. Após revisar de 10 a 20 respostas, você aprenderá a distinguir as respostas originais dos candidatos das que foram encontradas online.
4. Live-Doing (Coding) – resolvemos uma tarefa simples em tempo real com a tela compartilhada.
A essência deste método é pedir ao candidato que resolva uma tarefa simples e observar o processo. O candidato pode usar qualquer coisa, não há proibição de pesquisar informações na internet. O candidato pode sentir estresse por estar sendo observado. Nem todos os candidatos aceitam essa forma de avaliação de suas habilidades. Mas, por outro lado, esse método permite ver quais conhecimentos a pessoa tem na cabeça, como ela poderá se apoiar, mesmo em uma situação de estresse, e que tipo de informação ela buscará no motor de busca. O nível do candidato se torna evidente praticamente de imediato. Iniciantes usam as funcionalidades mais básicas, até mesmo primitivas, da linguagem, frequentemente começam a implementar funcionalidades das bibliotecas básicas manualmente. Candidatos mais experientes têm uma boa compreensão das classes, métodos e funções básicas e podem resolver uma tarefa simples de 2 a 3 vezes mais rápido do que iniciantes, aplicando a funcionalidade que conhecem da biblioteca básica da linguagem. Candidatos ainda mais experientes geralmente começam considerando diferentes abordagens para resolver a tarefa e apresentam várias opções, perguntando qual das implementações eu gostaria de ver. Tudo que o candidato faz pode ser discutido. Mesmo com base na mesma tarefa, as entrevistas resultam em respostas muito diferentes, assim como as soluções dos candidatos.
Como uma variação deste método, você pode pedir ao candidato que faça algum teste para verificar suas competências profissionais, justificando a escolha de cada uma das respostas. Diferente da avaliação comum, você saberá quão fundamentada foi a escolha das respostas. Você pode criar suas próprias variações desse método, levando em consideração as características da sua vaga.
Como implementar
Esse método pode ser facilmente realizado através do Skype ou de outro sistema de vídeo de comunicação similar, que permita a demonstração da tela. As tarefas podem ser criadas por você mesmo ou você pode usar plataformas como Code Wars, com diversos testes prontos.
Em quais casos utilizo este método
Quando estou selecionando programadores e não consigo entender o nível de conhecimento do candidato apenas pelo currículo, eu ofereço entrevistas nesse formato. Segundo minha experiência, cerca de 90% dos desenvolvedores não se opõem. Eles apreciam que a conversa sobre programação comece já na primeira entrevista, e não com perguntas bobas como "onde você se vê em 5 anos?".
Vantagens
Apesar do estresse e da ansiedade do candidato, é fácil perceber o nível geral de habilidades dele. As habilidades de comunicação também se tornam evidentes – como ele raciocina, como explica e justifica suas decisões. Caso precise discutir o candidato com colegas, é simples fazer uma gravação da tela e depois mostrar a entrevista para outras pessoas.
Desvantagens
A conexão pode falhar. Devido à ansiedade, o candidato pode começar a hesitar. Nessa situação, é possível interromper e dar a ele um tempo para pensar na tarefa sozinho, retornar em cerca de 10 minutos e continuar. Se mesmo assim o candidato agir de forma estranha, deve-se tentar outro método de avaliação de habilidades.
5. Entrevista rápida sobre habilidades por telefone/Skype
É simplesmente uma conversa por voz ao telefone, Skype ou outro sistema de comunicação por voz. Assim, podemos avaliar as habilidades de comunicação do candidato, sua erudição e visão de mundo. Para o roteiro da conversa, pode-se utilizar um questionário. Como alternativa, é possível discutir mais detalhadamente as respostas do candidato no seu questionário.
Como implementar
Agendamos uma conversa com o candidato e fazemos a ligação. Fazemos perguntas e registramos as respostas.
Em quais casos utilizo este método
Esse método geralmente uso junto com o questionário, quando as respostas do candidato me parecem originais ou pouco convincentes. Converso com o candidato sobre as questões do questionário e exploro sua opinião de forma mais aprofundada. Considero essa conversa necessária quando as habilidades de comunicação do candidato são importantes, bem como sua capacidade de expressar seus pensamentos de forma clara e simples.
Vantagens
Sem uma conversa sobre temas profissionais por voz, geralmente é impossível determinar quão bem o candidato consegue expor suas ideias.
Desvantagens
A principal desvantagem são os custos adicionais de tempo. Por isso, aplico esse método em conjunto com outros, se necessário. Além disso, há candidatos que falam bem sobre temas profissionais, mas que na prática sabem pouco. Se você precisa de um programador que resolva problemas de forma estável e com qualidade, é melhor optar por outro método de verificação inicial de competências. Se precisa de um gerente ou analista, ou seja, um especialista que traduz de maneira compreensível para 'jargão de programador' e vice-versa, esse método de verificação de competências será bastante útil.
6. Tarefa teste curta com limite de tempo (realizada em 30-60 minutos)
Para várias profissões, é importante que o especialista consiga encontrar rapidamente a solução para um problema. Geralmente, os problemas a serem resolvidos não são complexos, mas o tempo para resolvê-los é crucial.
Como implementar
Combinamos com o candidato o tempo para a realização da tarefa teste. No horário combinado, enviamos ao candidato os termos da tarefa e verificamos se ele entendeu o que é esperado. Registramos o tempo que o candidato levou para solucionar o problema. Analisamos a solução e o tempo.
Em quais casos utilizo este método
Na minha prática, esse método foi utilizado para verificar as competências de especialistas em suporte técnico, programadores SQL e testadores (QA). As tarefas eram do tipo 'encontre pontos problemáticos e sugira como resolver o problema', 'otimize a consulta SQL para que funcione 3 vezes mais rápido', e assim por diante. Claro, você pode criar suas próprias tarefas. Esse método também pode ser aplicado a desenvolvedores iniciantes.
Vantagens
Nós gastamos nosso tempo apenas preparando e revisando a tarefa. O candidato pode escolher um horário conveniente para realizar a tarefa.
Desvantagens
A principal desvantagem é que na internet podem estar disponíveis soluções para suas tarefas ou similares, portanto é necessário ter algumas variações e periodicamente criar novas tarefas. Se você precisa testar a velocidade de reação e a amplitude de conhecimento, eu pessoalmente opto por testes com limite de tempo (método nº 2).
7. Estudar portfólio, exemplos de código, repositórios abertos do candidato
Este é, talvez, o método mais claro de verificação de competências, desde que seus candidatos tenham portfólio e que sua equipe de recrutamento inclua profissionais capazes de avaliar o portfólio.
Como implementar
Analisamos os currículos dos candidatos. Se encontramos links para portfólios, fazemos uma análise. Se não houver menção a portfólios no currículo, solicitamos o portfólio ao candidato.
Em quais casos utilizo este método
Na minha experiência, esse método foi utilizado muito raramente. Não é comum encontrar trabalhos relevantes nos portfólios dos candidatos. Candidatos experientes muitas vezes preferem esse método a uma prova padrão e desinteressante. Eles dizem: "vejam meu repositório, lá estão dezenas de exemplos das minhas soluções para diferentes problemas, vocês verão como eu escrevo código."
Vantagens
Economiza o tempo dos candidatos. Com profissionais na sua equipe, é possível rapidamente excluir os inadequados sem precisar se comunicar com os candidatos. Enquanto o recrutador procura candidatos, seu colega avalia os portfólios. Isso resulta em um trabalho paralelo e bastante eficiente.
Desvantagens
Esse método não pode ser aplicado a todas as profissões de TI. Para avaliar um portfólio, você precisa ter habilidades desenvolvidas. Se você não for um especialista, não conseguirá avaliar o portfólio com qualidade.
Colegas, convido vocês a discutir o que leram nos comentários. Que outros métodos de avaliação rápida de competências vocês utilizam?
Fonte: habr.com
