Recentemente, recebi um e-mail de Andrew Stuart, da empresa australiana Flat Rate Recruitment. Andrew relatou o processo de seleção técnica por telefone, que aparentemente é bastante semelhante ao descrito em Como fazer bem a entrevista por telefone. Fico feliz em saber que funciona. Uma tela de telefone adequada é fundamental. Concordo plenamente com o Andrew: o senhor deve ter 95% de certeza de que um candidato seria uma ótima contratação antes mesmo de ele entrar em uma sala de entrevista. Qualquer coisa abaixo disso é um desperdício colossal do tempo de todos.
Mas há um aspecto do processo de recrutamento que muitas vezes dá errado, mesmo com uma ótima seleção por telefone. Andrew apresentou uma excelente anedota em seu e-mail que explica isso melhor do que eu poderia:
Tive um cliente que estava criando um aplicativo de segurança avançado. Enviei a ele uma pessoa atrás da outra e eles continuaram recusando. O motivo era quase sempre porque a pessoa “não tinha experiência suficiente em codificação de baixo nível”. As pessoas que eu enviava tinham feito coisas como projetar e desenvolver sistemas operacionais, gerenciadores de memória avançados e outros aplicativos altamente sofisticados. Mas meu cliente não estava interessado. Eles necessário experiência prévia em codificação de baixo nível em uma disciplina específica. Eventualmente, recebi uma solicitação de um engenheiro de software muito inteligente que, quase sozinho, escreveu um emulador de computador clássico, mas tinha pouca ou nenhuma experiência em programação de baixo nível na disciplina específica que eles exigiam.
Eu disse ao cliente: “Tenho um cara excelente aqui que não tem experiência em codificação de baixo nível e acho que o senhor deveria contratá-lo”. Eles ficaram extremamente céticos. Eu insisti muito para conseguir uma entrevista. “Olha, esse cara é um excelente engenheiro de software que não tem experiência em codificação de baixo nível na disciplina específica de que o senhor precisa agora, mas se o senhor o contratar, dentro de 3 a 6 meses o senhor vai ter um excelente engenheiro de software que faz tem a experiência de codificação de baixo nível que o senhor está procurando”.
Eles o entrevistaram e lhe deram o emprego. Em questão de semanas, ficou claro que ele era o programador mais inteligente da empresa. Ele dominou rapidamente a codificação de baixo nível e seu aprendizado foi muito além do dos outros programadores da empresa. Sempre que falo com o cliente, ele elogia esse funcionário, que agora é a espinha dorsal técnica da empresa. Essa empresa não concentra mais seu recrutamento em candidatos que exatamente que correspondam à experiência anterior com as tecnologias necessárias. Em vez disso, eles se concentram em encontrar e empregar os engenheiros mais inteligentes e apaixonados.
Esse tóxico e contraproducente mito dos anos de experiência tem permeado o setor de software desde que me lembro. Imagine quantos engenheiros de software brilhantes as empresas estão perdendo por estarem completamente obcecadas em encontrar pessoas que correspondam – exatamente e ao pé da letra – a uma lista de habilidades altamente específicas.
De alguma forma, eles se esqueceram de que o o que os desenvolvedores de software fazem de melhor é aprender. Os empregadores devem procurar autodidatas apaixonados, motivados e flexíveis que tenham capacidade comprovada de codificar em qualquer que seja e oferecer a eles projetos interessantes com os quais possam se envolver.
Foi demonstrado que tempo e mais uma vez que não há correlação entre anos de experiência e habilidade em programação. Após cerca de seis a doze meses de trabalho em qualquer pilha de tecnologia específica, ou o senhor entende ou não entende. Não importa quantos anos de “experiência” outro programador tenha em seu currículo, a probabilidade de que o ele não tenha ideia do que está fazendo. É por isso que os programadores que trabalham rapidamente aprendem a ver seus colegas com um certo grau de ceticismo cansado do mundo. Talvez seja a única resposta racional quando a desconexão entre experiência e habilidade é tão difundida no campo da engenharia de software.
Com isso em mente, o senhor realmente o senhor quer trabalhar para uma empresa que ainda persegue obstinadamente o mito dos anos de experiência em suas práticas de contratação? Improvável.
O que me leva ao meu ponto: Exigir X anos de experiência na plataforma Y em seu anúncio de emprego é, bem, ignorante. Desde que os candidatos tenham de 6 meses a um ano de experiência, considere isso um ponto discutível para comparação. Em vez disso, concentre-se em outros aspectos que farão muito mais diferença. A experiência na plataforma é apenas uma linha de base, não um diferenciador de real importância.
Por sua vez, isso significa que o senhor, como candidato, pode usar requisitos como “3 a 5 anos trabalhando com essa tecnologia” como um indicador do nível de conhecimento da empresa que está contratando. Quanto mais altos forem os requisitos de anos de serviço em uma determinada tecnologia, maior será a probabilidade de a empresa estar procurando as coisas erradas em seus candidatos e, portanto, maior será a probabilidade de o restante da equipe ser composta por fantoches escolhidos pelos motivos errados.
Não estou dizendo que a experiência não é importante no desenvolvimento de software. Ela é. Mas considere o seguinte inteiro da experiência de um desenvolvedor e perceber que o o tempo investido não é automaticamente igual à habilidade. Caso contrário, o senhor pode estar rejeitando excelentes engenheiros de software simplesmente porque eles não têm “(n) anos de experiência” em seu pequeno e estreito nicho tecnológico – e isso é uma pena.