Contratar talentos de desenvolvimento de software - verdadeiro talento - é uma habilidade multifacetada que se encontra na encruzilhada das redes sociais, perspicácia técnica, gerenciamento de processos e intuição. Qualquer pessoa que já teve a responsabilidade de contratação entende muito bem a extensão e a profundidade do desafio de contratação.
A contratação de talentos é uma habilidade multifacetada que se encontra na encruzilhada das redes sociais, perspicácia técnica, gerenciamento de processos e intuição.Particularmente desafiador é o fato de que as qualidades marcantes de candidatos excepcionais à engenharia de software são extremamente difíceis de avaliar. Como você explora a capacidade de um candidato de inovar e pensar de forma criativa? Como você determina se ele é um jogador de equipe? Como você diagnostica a capacidade dela de receber feedback construtivo? Como você investiga a fibra moral de alguém?
Embora avaliar esses critérios 'leves' não seja uma tarefa fácil, fazê-lo é essencial na busca de contratar o melhor. No entanto, com muita frequência, as tentativas de avaliar esses atributos cruciais, embora elusivos, consistem em perguntas ou desafios que são suficientemente transparentes para que as respostas “corretas” sejam óbvias para a maioria dos candidatos. Assim, nada de substancial é alcançado perguntando-lhes.
Uma armadilha comum resultante é, em vez disso, focar muito em minúcias técnicas, em vez de avaliar a capacidade do candidato de resolver problemas, pensar de forma criativa e trabalhar de forma compatível com o resto da equipe.
Uma armadilha comum é se concentrar demais em minúcias técnicas.Reconhecidamente, eficaz entrevistas e contratação de desenvolvedores de software avançado é tanto uma arte quanto uma ciência. No entanto, existem abordagens e metodologias para avaliar as dimensões mais sutis das habilidades e habilidades de um engenheiro de software.
Quando usadas coletivamente, essas técnicas de recrutamento geram um processo de triagem altamente eficaz com um histórico comprovado de sucesso para contratação de assalariados ou talento de programação freelance . Esse é o processo que trata este post.
O processo de encontrar e contratar a pequena elite começa muito antes da entrevista em si. Na verdade, uma abordagem sistemática para identificar adequadamente os candidatos potencialmente qualificados pode agilizar e aumentar significativamente a eficiência de todo o processo de recrutamento.
Sem dúvida, a melhor fonte de candidatos qualificados é a rede pessoal, já que pessoas de qualidade tendem a se associar a pessoas de qualidade. As referências pessoais dominam como a fonte mais produtiva para novas contratações de sucesso ( fonte )
Outro valioso fontes de talento técnico de primeira linha incluir:
A beleza desses recursos é que eles fornecem candidatos que você vetou, de uma forma ou de outra, antes mesmo de entrevistá-los.A beleza desses recursos é que eles fornecem candidatos à engenharia que você vetou, de uma forma ou de outra, antes mesmo de entrevistá-los. Alguém da sua empresa, ou alguém que você conhece, os conhece e os recomenda muito. Ou você revisou seu código-fonte aberto e está devidamente impressionado com ele. Ou suas postagens de blog sugerem um nível maduro de conhecimento técnico e compreensão (e idealmente até mesmo um senso de humor :-)). A chave aqui é que, no momento em que você faz o contato, o candidato já é muito mais do que “apenas mais um currículo”.
Além disso, considere o uso de modelos de descrição de cargo (como estes para SEO , desenvolvimento web front-end , e desenvolvimento web back-end ) que estabelecem uma expectativa alta para os tipos de candidatos que você deseja.
Uma determinação eficaz de proficiência técnica vai muito além das nuances de uma linguagem de programação ou tecnologia específica. Embora esses detalhes técnicos certamente não devam ser ignorados, eles normalmente são não o elemento mais importante do processo de avaliação.
Uma determinação eficaz de proficiência técnica vai muito além das nuances de uma linguagem de programação ou tecnologia específica ...Os melhores desenvolvedores não perdem tempo guardando na memória o que pode ser facilmente encontrado em uma especificação de linguagem ou documento API. Além disso, aprender uma nova linguagem, tecnologia ou padrão de design é um exercício relativamente trivial para um desenvolvedor forte (e é realmente uma habilidade essencial dada a taxa acelerada em que novas tecnologias estão sendo introduzidas e ganhando participação no mercado). É, portanto, a força técnica fundamental do candidato e compreensão, pensamento criativo e resolução de problemas que são críticos para avaliar.
Um método comprovado para fazer isso é representam um desafio de programação não limitado pela linguagem . Apresente um problema ao candidato e peça-lhe que codifique uma solução no idioma de sua escolha. Os únicos requisitos devem ser que a solução seja completa e correta, incluindo o tratamento de quaisquer condições de borda ou erros potenciais. Lembre-se, o objetivo aqui é avaliar a capacidade do candidato (a) de resolver problemas, (b) conhecimento de ciência da computação e (c) estilo de codificação. Você não está avaliando o aptitude neste ponto em uma linguagem de programação específica. (Um benefício adicional dessa abordagem, aliás, é que ela evita que o entrevistador seja um especialista no idioma em que o candidato está codificando.)
Existem vários recursos online a partir dos quais você pode selecionar tais desafios de programação para incorporar em seu processo de entrevista. Aqueles que se concentram em algoritmos (em vez do conhecimento de uma linguagem de programação específica) facilitam a avaliação dos fundamentos da ciência da computação e capacidades de resolução de problemas de um candidato. Alguns exemplos dignos de nota incluem hackerrank.com , projecteuler.net , e beatmycode.com . Tenha em mente, porém, que você não precisa usar esses sites para administrador Os testes; em vez disso, você pode simplesmente usá-los como recursos a partir dos quais selecionar desafios e, em seguida, o candidato deve codificar uma solução durante a entrevista pessoal (em um quadro branco etc.).
Dito isso, teste online posso ser um componente adicional valioso de seu processo de entrevista. Ao usar serviços de teste online, no entanto, é importante evitar o risco de se concentrar demais nas pontuações geradas pelo site de um candidato, em vez de nas especificidades de suas soluções. Por um lado, você pode não concordar com as métricas de avaliação empregadas pelo serviço de teste. Além disso, pode haver aspectos de uma solução que você considera particularmente inteligente ou elegante, para os quais o processo de avaliação automatizada pode ser totalmente esquecido.
Ao usar serviços de teste online, é importante evitar o risco de se concentrar demais nas pontuações geradas pelo site de um candidato, em vez de nas especificidades de suas soluções.Também existe o potencial para “falsos positivos” ou “falsos negativos” com classificações fornecidas por serviços de teste online. Por outro lado, os falsos positivos podem resultar em perda de tempo e recursos entrevistando candidatos não qualificados, enquanto os falsos negativos podem desqualificar candidatos que foram altamente dignos de consideração. No longo prazo, o último tem ramificações mais sérias e, portanto, é algo que deve-se monitorar cuidadosamente.
Em geral, os testes administrados pessoalmente são inerentemente mais confiáveis do que aqueles administrados online, uma vez que reduzem o potencial de engano. Além disso, o teste pessoal oferece a oportunidade de observar como um candidato a engenheiro de software opera sob pressão. No entanto, o uso de serviços de teste online pode ser um componente eficaz do tipo mais abrangente de processo de triagem aqui defendido, que incorpora outras técnicas para ajudar a eliminar candidatos fraudulentos ou subqualificados.
Os testes de desenvolvimento online também podem servir como um valioso filtro preliminar para eliminar a porcentagem incrivelmente alta de candidatos cujas habilidades técnicas estão muito abaixo do esperado. Curiosamente, muitos desses candidatos abandonam o processo sem nem mesmo tentar fazer os testes, por falta de confiança. Dito isso, a confiança nem sempre é o melhor barômetro de atitude, como atesta o Dunning-Kruger efeito.
Outra técnica extremamente valiosa para avaliar a perspicácia técnica é peça ao candidato para fornecer uma lista de projetos de código aberto de sua autoria, ou pelo menos contribuiu em sites como GitHub e SourceForge (se eles foram apenas contribuidores, peça-lhes que indiquem quais partes do código eles criaram pessoalmente). Você pode então vir para a entrevista após revisar o código deles, preparado para perguntar sobre decisões específicas de design, estilos de codificação, padrões empregados e assim por diante. Tal discussão pode ser substancialmente mais valiosa do que simplesmente questionar o candidato sobre os detalhes técnicos de um idioma.
Os poucos membros da elite não são apenas tecnologicamente experientes, eles são profissionais consumados de desenvolvimento de software que se comunicam de forma clara, eficaz e sucinta, tanto verbalmente quanto por escrito.
As habilidades de comunicação verbal são fáceis de avaliar no decorrer de uma entrevista, seja pessoalmente ou por telefone. Embora as habilidades verbais sejam reconhecidamente menos críticas em certas funções técnicas de 'bastidores' que não envolvem o contato do usuário, elas ainda são importantes para maximizando as interações eficazes da equipe e intercâmbio de idéias.
Os poucos membros da elite são profissionais consumados que se comunicam de forma clara, eficaz e sucinta, tanto verbalmente quanto por escrito.As habilidades de comunicação escrita podem ser melhor avaliadas pedindo ao candidato que forneça exemplos de escrita. Amostras de redação técnica são fortemente preferidas, uma vez que demonstram não apenas habilidades de redação, mas também clareza técnica. Solicitar essas amostras antes da entrevista pode ser particularmente útil. Por um lado, isso oferece a oportunidade de revisar e analisar seus escritos com antecedência para que você possa vir para a entrevista preparado para discutir e criticar seus escritos com eles. Além disso, alguns candidatos técnicos serão “desanimados” pela solicitação de redação de amostras que, por si só, podem servir como um filtro valioso.
Há uma velha piada sobre um pai que quer ensinar ética ao filho. O pai diz ao filho que ele e a companheira têm um negócio de lavagem a seco. Um dia, diz o pai, uma cliente entra em nossa loja para pegar sua lavanderia. Quando a cliente se vira para sair, percebo que ela ganhou 10 dólares a mais. OK, então aí vem a ética ... devo ou não digo ao meu parceiro ?!
Em contraste, real dilemas éticos - dilemas morais - muitas vezes podem ser obscuros e complexos e eles certamente se apresentam no mundo dos negócios. O desenvolvedor de software mais forte pode causar estragos incalculáveis em um projeto se não possuir uma bússola moral devidamente calibrada. Esta dimensão de um candidato é, portanto, crítica para avaliar.
O desenvolvedor de software mais forte pode causar estragos incalculáveis em um projeto se não possuir uma bússola moral devidamente calibrada.Uma técnica altamente eficaz para fazer isso é apresentar ao candidato um hipotético dilema moral e pergunte o que eles fariam na situação. Para que isso seja eficaz, é essencial que o dilema não tem uma resposta óbvia. Idealmente, qualquer resposta possível deve ser imperfeita e um tanto problemática. A resposta que o candidato fornece a essa pergunta pode fornecer uma enorme compreensão de como eles pensam, seus padrões éticos e suas prioridades.
Aqui está um exemplo:
A empresa para a qual você trabalha foi contratada para trabalhar em um projeto de outra empresa. O projeto requer o uso de um subcontratado específico. Você já trabalhou para esse subcontratado e, portanto, sabe em primeira mão que eles frequentemente aumentam suas horas e cobram a mais de seus clientes pelo tempo. Se eles fizerem isso neste projeto, no entanto, não prejudicará sua empresa, uma vez que esses custos serão repassados para o cliente da sua empresa. Você mencionou isso para seu chefe e ele o aconselhou a não dizer nada ao cliente, especialmente porque a parte do subcontratado do projeto representa apenas uma pequena fração do orçamento geral. Você tem um amigo muito próximo que trabalha para o cliente. Um dia, durante o almoço, seu amigo pergunta o que você sabe sobre esse empreiteiro, pois sabe que você trabalhava lá. Como você responde e o que você diz a ele?
A beleza aqui é que não há uma resposta claramente 'certa' e a situação reflete a complexidade moral da vida real e do mundo dos negócios. Se perguntada corretamente, a resposta a essa pergunta de “dilema moral” pode ser uma das partes mais reveladoras e valiosas do processo de entrevista para a contratação de desenvolvedores de software.
Uma das falhas inerentes ao processo de entrevista é que realmente não há como saber como será trabalhar com uma pessoa até você realmente trabalhar com eles . Ter uma noção realista da personalidade e temperamento de um candidato é, no entanto, crucial para uma contratação bem-sucedida.
A elite técnica não é apenas tecnicamente superior, mas também altamente profissional. A busca por eles não se limita, portanto, a uma avaliação estritamente técnica.
A elite técnica não é apenas tecnicamente superior, mas também altamente profissional.Com isso em mente, aqui estão algumas técnicas de entrevista que podem ser benéficas para avaliar a personalidade e o profissionalismo de um candidato ...
Para um, considere iniciar intencionalmente o processo de entrevista com uma pré-seleção por um membro da equipe não técnica (como um assistente administrativo). Você pode então perguntar a esse membro da equipe como o candidato o tratou, uma vez que percebeu que não era técnico. Eles eram humilhantes, impacientes e condescendentes ou agradáveis, pacientes e respeitosos? O que o membro da equipe transmite a você pode ser bastante revelador. Você quer saber se o candidato trata os outros com respeito, independentemente de quem sejam.
Ao longo da entrevista, procure oportunidades de fornecer feedback construtivo ao candidato. Observe cuidadosamente a reação que isso provoca. O feedback é apreciado ou o candidato parece ficar na defensiva?
Participe de um “bate-papo não técnico” durante os primeiros 5 ou 10 minutos de uma entrevista como meio de obter informações sobre a personalidade do candidato. O candidato pode pensar que isso é simplesmente um prelúdio para a entrevista real e, portanto, será mais provável que “relaxe”. Dessa forma, você poderá discernir uma quantidade surpreendente sobre a personalidade deles durante esse período. E, claro, se eles exibem senso de humor, isso é sempre um bom sinal. :-)
Além dessas técnicas gerais para a contratação de engenheiros, aqui estão alguns exemplos de perguntas para ajudar a avaliar a personalidade, confiança, honestidade e profissionalismo de um candidato :
Coletivamente, essas perguntas e técnicas têm demonstrado promover um entendimento muito mais forte e profundo de quem o candidato realmente é, o que é vital para tomar uma decisão de contratação bem-sucedida.
Então, você encontrou um candidato A +. Altamente qualificado. Personalidade positiva e otimista. Excelente ajuste cultural. Isso é ótimo! Mas…
Ainda há uma questão fundamental que ainda precisa ser respondida: Em que medida o candidato está especificamente interessado na vaga disponível e em trabalhar para sua empresa? A resposta é de suma importância para garantir uma contratação bem-sucedida. Os relacionamentos unilaterais não funcionam melhor nos negócios do que em qualquer outro aspecto de nossas vidas.
Mais uma vez, simplesmente fazer a pergunta diretamente é de valor mínimo, uma vez que, no contexto do processo de entrevista, deve-se suspeitar da franqueza de um candidato ao responder tal pergunta. Em vez disso, isso é algo que se deve tentar averiguar por outros meios menos diretos.
Os relacionamentos unilaterais não funcionam melhor nos negócios do que em qualquer outro aspecto de nossas vidas.Para começar, a maneira como o candidato se aproxima de você desde o início é um indicador de interesse bastante confiável. O candidato oferece uma explicação convincente e convincente de por que está particularmente interessado em sua empresa e na oportunidade disponível? Nesse caso, isso não apenas mostra interesse real, mas também um nível de maturidade profissional e sofisticação. Esse candidato claramente fez pelo menos algum nível de pesquisa anterior sobre sua empresa, e a oportunidade, antes de contatá-lo (em vez de simplesmente “vasculhar o currículo pela cidade”).
Os candidatos que entram no processo de contratação de desenvolvedores depois de fazer sua lição de casa sobre a empresa e seus produtos ou serviços fornecem um indicador útil de seu interesse e conhecimento. Os candidatos que chegaram a fazer pesquisas avançadas sobre o entrevistador (por exemplo, lendo sua biografia, perfil do LinkedIn, postagens de blog e assim por diante) são particularmente notáveis. Candidatos mais sofisticados farão questão de revelar essas informações no decorrer da entrevista. Para outros, questões abertas simples, como 'O que você sabe sobre a nossa companhia?' e “O que lhe interessa em particular sobre nossa empresa e esta posição?” pode provocar respostas muito reveladoras, de fato.
Por fim, um candidato genuinamente interessado provavelmente fará perguntas durante o processo de entrevista. Não obstante, é sempre uma boa ideia encerrar a entrevista perguntando se o candidato tem alguma dúvida. A falta de perguntas pode ser uma bandeira vermelha, mesmo com alguém que de outra forma seria considerado um candidato A +.
As técnicas aqui descritas podem servir como um processo central valioso para encontrar e contratar desenvolvedores de software que sejam os melhores do setor. No entanto, é importante lembrar que a contratação eficaz não é um destino, é uma jornada. É necessário reavaliar e ajustar continuamente seu processo, pois um processo estático está destinado a se tornar um processo morto.
A contratação eficaz não é um destino, é uma jornada.A jornada de cada empresa será diferente, com base em sua própria cultura e prioridades. Encontre o caminho certo para sua organização e execute-o. Você terá sucessos e terá fracassos, mas contanto que aprenda com o último, pode ter certeza de que está no caminho certo.