Recentemente, tantas histórias sobre más entrevistas foram publicadas no Habra que às vezes surgem dúvidas, e existem boas entrevistas na natureza? Portanto, por uma questão de diversidade, consideraremos um exemplo de uma boa abordagem *. A história vai do ponto de vista do desenvolvedor do empregador, que está diretamente envolvido no processo de contratação.

* provavelmente
Disposição
Uma pequena equipe de produtos (30 a 40 pessoas) dentro de uma grande empresa (vários milhares de pessoas). A equipe inclui todos os envolvidos no projeto: desenvolvedores e front-ends completos, designers e front-endologistas, testadores, especialistas em relações públicas, analistas, autores de textos etc. Em geral, tentamos terceirizar trabalhos menos especializados para outros projetos, e o desenvolvimento móvel não é exceção.
Temos um aplicativo móvel multiplataforma escrito em Xamarin Native para iOS e Android. Ao mesmo tempo, estamos completamente prontos para levar o melhor do desenvolvedor experiente que escreveu apenas para uma plataforma, desde que ele esteja pronto para estudar o desenvolvimento para um segundo sistema operacional.
Etapa 0 - conheceu duas solidão
O desenvolvedor encontra uma vaga e envia um currículo, após o qual o RH envia algumas perguntas esclarecedoras, ou o RH encontra um currículo do desenvolvedor, após o qual envia a mesma série de perguntas.
Essas perguntas são o filtro mínimo para a adequação; não haverá problemas técnicos. Além disso, o currículo e as respostas já são transmitidos ao desenvolvedor pelo empregador e ele decide se vai mais longe ou não. No mês passado, observei algumas dezenas de currículos e não tenho idéia do que o candidato deve escrever e responder, de modo que tive que dizer não nesta fase. Escreva para a vaga do desenvolvedor do Android "Eu escrevo apenas para iOS, porque o Android é péssimo"?
Etapa 1 - tarefa de teste ou código de amostra
A tarefa de teste é dada sem limites de tempo, embora na prática não deva demorar mais de uma noite. Como parte do aplicativo de teste será:
- três telas: duas listas vinculadas + formulário de entrada de dados que, se desejado, podem ser substituídos por uma janela modal
- trabalho em rede
- trabalhar com o data warehouse (a tarefa implica um banco de dados, se o desenvolvedor puder justificar outra conclusão - somos bem-vindos)
No entanto, nem todos os desenvolvedores estão prontos para escrever um teste, por isso oferecemos imediatamente uma alternativa - enviar o código de algum aplicativo pronto, onde haverá o mesmo conjunto (rede, banco de dados, navegação nas telas, entrada do usuário). Bem, outras opções são possíveis:
- o aplicativo é muito pequeno, o código não é indicativo ou causa muitas perguntas, faça nosso teste
- a aplicação é adequada, mas há nuances - faça pequenas melhorias (menos do que à noite)
Com base nos resultados do teste, chamamos o desenvolvedor para uma entrevista ou recusamos, mas, no segundo caso, uma revisão detalhada será feita - o que é feito bem, o que é discutível, quais perguntas surgem, o que vale a pena ler e assim por diante. Como resultado, todos ganham:
- o candidato recebe um código, que pode ser reutilizado em outra entrevista com princípios semelhantes, bem como feedback por trabalhar em si mesmo. Isso funciona? Bem, pelo menos recebemos tarefas de teste escritas originalmente para outras empresas, então parece funcionar;
- o empregador economiza tempo com questionários e outras coisas. E quão feliz o entrevistador é um introvertido, que não precisa realizar 1-2 entrevistas por semana, se você soubesse!
Etapa 2 - Entrevista
Na entrevista, certamente haverá não apenas conversas sobre a vida e sobre o local de trabalho anterior, mas também perguntas sobre a tarefa de teste. Nesse estágio, é bastante simples entender se uma pessoa escreveu um teste, entende se o que está escrito lá, se pode justificar uma ou outra solução, quais são seus horizontes e assim por diante. As perguntas são feitas não no ar, mas com a capacidade de pegar o teclado e digitar esse código. Às vezes, solicitamos que você reescreva algo um pouco em tempo real ou corrija-o, fazemos perguntas no formulário "mas se ainda houver esse requisito ..."
Em seguida serão 1-2 pequenas tarefas práticas, elas dependem da tarefa de teste. Novamente, fornecemos o teclado na mão (conectado a um computador, um computador com um monitor!) E pedimos que você escreva ou edite alguma coisa. Uma das minhas coisas favoritas é fornecer uma função funcional, mas mal escrita, para 10 a 20 linhas e sugerir refatoração. Torna-se imediatamente claro se o candidato tem um código incorreto, o que ele sabe sobre a linguagem constrói, se ele pode ler o código de outra pessoa na lista.
E é basicamente isso. Em no máximo dois dias, responderemos ao candidato. No entanto, na maioria das vezes a resposta é dada no mesmo dia). E em caso de falha, novamente haverá uma justificativa adequada. Bem, se não for suficiente, o candidato sempre pode pedir aos desenvolvedores contatos da entrevista para esclarecer alguns pontos, e eles provavelmente os darão.
Mas o candidato poderia ter enganado
Verdadeiramente. Poderia até
enviar um gêmeo . Bem, ele pode não estar enganando, apenas cometemos um erro na entrevista. Nesse caso, existe uma coisa maravilhosa chamada “período de teste”. Além disso, trabalhar em uma grande empresa (pelo menos no nosso caso) - a falha em concluir um período de estágio não significa cem por cento de separação da empresa. No final, o desenvolvedor poderia ser muito bom, mas não se enraizou em uma equipe específica - nesse caso, sempre existem projetos alternativos.
Então pare! Reconheci a equipe em questão, entrevistei-a há alguns anos e o esquema era muito diferente.
Sim, me arrependo e depois pequei com pequenas pesquisas e entrevistas sem teste. Passou muito tempo, tanto dele quanto de outra pessoa. Então, quando se tratava de novas pesquisas para o desenvolvedor, decidi tentar uma abordagem diferente. Os desenvolvedores estão escrevendo código? Ótimo! Mostre-me seu código e eu lhe direi se devemos ser entrevistados.
Mas eu descobri na empresa! Instalado em outro projeto, e também lá está tudo errado!
E aqui está a situação da astúcia. Um fluxo decente de desenvolvedores de back-end / full-stack vai para a nossa empresa e existem várias centenas desses desenvolvedores na empresa. Portanto, o processo de recrutamento já foi bastante estabelecido e padronizado. Enquanto isso, existem poucos desenvolvedores de dispositivos móveis na empresa, portanto é mais fácil experimentar abordagens de entrevistas.
A abordagem descrita tem outras desvantagens!
Esperando por você nos comentários. Nós discutimos ;-)