Como a sua empresa seleciona e contrata desenvolvedores?
Neste ano, percebi que como profissionais de TI (especialmente os com mais experiência) somos treinados para passar em processos seletivos. A analogia que eu utilizo como forma de comparação são as aulas de auto escola. A auto escola não nos ensina a dirigir, a auto escola nos ensina a passar na prova de habilitação. Assim como as entrevistas não representa a nossa capacidade, conhecimento, habilidades e atitudes de desenvolver.
Com isto, compartilho algumas formas de dinâmicas e atividades diferentes para conhecer, selecionar e contratar desenvolvedores utilizadas por empresas onde tive a oportunidade de entrevistar e ser entrevistado:
Analisar código desenvolvido pelos desenvolvedores
Projetos open source, repositórios pessoais no github, bitbucket e etc.
Análise de códigos com problemas
Pode ser feito no formato de entrevista presencial ou remoto, mas é basicamente uma ou mais classes com problemas de legibilidade, métodos que ferem princípios básicos, paradigmas de programação diferentes (orientados a objetos, procedurais, funcionais e etc).
Exercícios em quadro branco
É (ou era) utilizado nos processos seletivos do Google, aonde o entrevistado tinha de resolver problemas de programação no quadro branco (sem utilizar uma IDE). Alguns profissionais criticam este tipo de entrevistas.
Plataformas online de programação
Atualmente a minha preferida é a https://www.codingame.com/ (que inclusive merece um post apenas para si). Outras alternativas são plataformas de recrutamento que envolvem desafios de programação: https://codility.com/ e https://www.hackerrank.com/.
Programação em tempo real
Presencial ou remoto, definir um problema simples e observar e questionar o candidato sobre soluções, estratégias e abordagens de desenvolvimento. Parear e trabalhar juntamente com o candidato pode ser uma abordagem válida, dependendo do contexto da organização.
Desafios de Programação
Implementar algum problema ou solução e avaliar: padrões de projetos utilizados, legibilidade do código, testes unitários (existência e coerência dos mesmos), se houve algum cuidado no sentido de ter instruções claras para buildar/empacotar/deployar a solução, se funciona independente da plataforma (dependendo da linguagem escolhida para resolver o problema..).
Coding dojos e Hackathons
Momentos onde os profissionais vão interagir e trabalhar juntos (ou em equipes) para resolver desafios e problemas por meio de tecnologias e linguagens de programação.
O que mais a sua organização faz, para selecionar os seus desenvolvedores e profissionais?
Grande post Motta!
Alguns anos atrás participei de um processo lá na uMov.me bem legal. Desde o início do processo você se sentia parte do time, mesmo ainda não sendo. Três momentos que achei bem interessantes:
1 – Uma galera do time participou da minha entrevista.
2 – Não me pediram currículo, so linkedin e github.
3 – Pareamento com um dos futuros colegas na última etapa.
Depois batendo um papo com o pessoal, eles me comentaram que este modelo foi baseado no livro do Ricardo Semler “Você está louco”.
Parabéns!
Grande abraço!
CurtirCurtir
Fala Motta!!!
Que massa o post. Parabéns!
Já peguei as dicas aqui, principalmente das plataformas.
Respondendo a pergunta final. Deixo o post que escrevi sobre o assunto de como utilizar o mindset ágil para recrutar um time.
Se tiver um tempo e paciência para ler, segue o link 😀
http://michelcordeiro.com.br/blog/agile-para-selecao-de-times
Abraço!!!
CurtirCurtido por 1 pessoa