Já faz um tempo eu assisti na tv uma entrevista com o Maurício de Souza, aquele dos gibis da mônica. O que mais me chamou a atenção foi quando ele contou a maneira como ele contrata os seus desenhistas. cebolinha pensador

Segundo o próprio Maurício, todos os desenhos dos gibis são feitos à mão pela sua equipe, o que exige ter um time bastante entrosado, já que todos os personagens precisam ter um mesmo traço uniforme.

Para contratar um novo desenhista o próprio Maurício passa para o candidato uma "lição de casa", alguns desenhos, e pede para que ele volte alguns meses depois com o material que ele tenha conseguido produzir. Se o candidato volta meses depois e, além do que foi pedido, ele ainda fez outros desenhos, então é passada mais uma lição e, novamente, ele vai para casa treinar e desenhar para apresentar os resultados depois de outro tanto de tempo.

Esse processo se repete várias vezes e pode durar até um ano, mas garante ao estúdio do Maurício de Sousa conseguir encontrar aquele desenhista que realmente tem talento e vontade de fazer parte da equipe.

Para mim esse parece ser um processo bem razoável para encontrar bons desenvolvedores de software. Não quero dizer que ele precise durar um ano inteiro, mas seria bom sempre analisar o código que cada candidato é capaz de produzir. E não estou falando apenas de alguns pequenos trechos de código ou algoritmos de faculdade. Estou falando de escrever um sistema completo. Só assim você vai poder saber se o seu candidato consegue criar código de boa qualidade e que seja de fácil manutenção e alteração. Pedindo para o candidato ir modificando o seu sistema a cada nova entrevista e acompanhando quanto de bangunça ele coloca no próprio código é um bom indicador de como ele irá se comportar quando estiver mexendo nos sistemas da sua empresa.

Em um dos melhores artigos que Joel Spolsky escreveu sobre desenvolvimento de software está "O Teste do Joel: 12 Passos para um Código Melhor", onde um dos passos se refere a contratação dos desenvolvedores:

Você contrata um mágico sem pedir a ele para mostrar alguns truques? Claro que não.

Você contrata um bufê para seu casamento sem provar sua comida? Eu duvido. (A menos que seja sua tia Maria e ela iria odiá-lo para sempre se você não a deixasse fazer seu "famoso" bolo de fígado moído).

Apesar disso, todo dia, programadores são contratados com base num currículo bonito ou porque o entrevistador gostou de conversar com ele. Ou perguntam-se questões triviais ("Qual a diferença entre CreateDialog() e DialogBox()?"), que poderiam ser respondidas com uma olhada na documentação.

Você não deve se preocupar com as habilidades dos candidatos em memorizar milhares de trivialidades sobre programação, você deve se preocupar com suas habilidades em produzir código.Ou, pior ainda, perguntam-se questões "AHA!": o tipo de questões que parecem fáceis quando você sabe a resposta, mas se você não sabe, são impossíveis. Por favor, pare de fazer isto.

Faça o que quiser durante a entrevista, mas faça o candidato escrever algum código.

Eu realmente acredito que se pode conhecer um bom desenvolvedor pelo código que ele escreve. É mais fácil identificar um bom desenvolvedor pelo seu código do que pelo que ele diz em qualquer entrevista.