Sobre entrevistas (parte 3)

Em determinada etapa da sua carreira quando você se torna um desenvolvedor mais experiente ou líder de uma equipe, fazer entrevistas passa a fazer parte do seu dia-a-dia. Entrevistar pessoas é bastante cansativo, demorado e difícil, porém é um trabalho que precisa ser muito bem feito para que você consiga contratar os profissionais que melhor se encaixam na sua equipe e empresa.

A última vez que escrevi sobre entrevistas aqui no meu blog foi há três anos. De lá para cá liderei ou participei de algumas dezenas – talvez centenas – de entrevistas e umas dúzias de contratações, sempre tentando resolver o mesmo problema: Quais são as melhores abordagens para conseguir analisar uma pessoa e entender sua experiência tão bem quanto possível em apenas algumas horas?

Durante esses três anos tentei um monte de coisas diferentes, desde fazer filtro de profissionais com uma consultoria de RH até chamar pessoas para trabalharem na minha equipe por alguns dias e ver como elas funcionam. Todas as abordagens tem seus prós e contras e não há uma fórmula secreta para resolver esse problema, mas ficam aqui algumas dicas novas de coisas que deram certo nesses últimos anos:

Entrevista por telefone

Houve uma época em que eu chamava qualquer pessoa para uma entrevista presencial. Basicamente só entrevistava por telefone pessoas de outros estados, mas sempre que possível preferia entrevistar ao vivo porque sempre achei que uma conversa “olho no olho” é muito melhor para conhecer as pessoas. De fato isso é verdade, porém o que acontece é que em geral você recebe uma dezena de currículos e fica muito difícil entrevistar todo mundo. Pior ainda é que muitas vezes o candidato tem um currículo excelente mas na hora da entrevista você percebe que ele na verdade tem um currículo muito bem escrito e não passa disso, ou seja, você perdeu o seu tempo (e o candidato também).

Para resolver esses problemas hoje em dia eu entrevisto praticamente todas as pessoas por telefone. Depois de escolher as pessoas que quero conhecer, marco uma conversa de 30 minutos onde tento explorar conhecimento sobre tecnologias que usamos, valores, interesses pessoais e o mais importante: saber se essa pessoa é mesmo boa ou tem apenas um currículo bonito. Se você não tem idéia de como entrevistar pessoas por telefone, este artigo do Joel Spolsky é um bom começo para aprender.

Com essa abordagem consigo entrevistar um número significativamente maior de pessoas, primeiro porque é uma entrevista mais curta – portanto me sobra mais tempo -, segundo porque sendo por telefone dá para falar em horários mais alternativos – o que facilita a vida de todo mundo e aumenta o número de pessoas que podem participar imediatamente -, e terceiro porque isso diminui drasticamente o número de pessoas que são entrevistadas presencialmente. Deixe para entrevistar presencialmente somente as pessoas que você acha que realmente têm chance de participar do seu time.

Programe e discuta código com o candidato

Dá até vergonha de dizer, mas acredite, no passado (não muito distante) eu já contratei desenvolvedores sem ver uma linha do seu código. Mais vergonhoso ainda é saber que isso é uma prática extremamente comum no mercado. Já vi isso acontecer em inúmeras empresas de todos os tamanhos. O problema disso é que, uma vez que você contrata um desenvolvedor ruim, a trapalhada já está feita, não tem mais como voltar atrás. Você até pode demitir o cara e contratar outro, mas você vai ficar demitindo e contratando até achar alguém que te agrade? Além de ser uma abordagem bem ineficiente, acho que não é ético. Imagine que o profissional estava bem em uma determinada empresa e você o tirou de lá para trabalhar na sua equipe. Por culpa sua ele não só perdeu o emprego antigo como também perderá o novo (porque você não foi eficiente avaliando-o na entrevista).

Evite isso e dedique uma boa parte da sua entrevista a ver e discutir código com o seu candidato. Nesse último ano passei inclusive a pedir para que os cadidatos resolvessem problemas bem simples de programação como um caça-palavras ou um problema simples de criptografia. O objetivo é entender como o candidato organiza seu código, ver se ele escreve testes, saber se ele faz BDUF sem necessidade, se usa design patterns quando faz sentido e por aí vai. Quando o candidato passa por toda essa parte “remota” do processo de seleção, discutimos o código presencialmente e adicionamos algumas novas funcionalidades juntos para ver como ele funciona programando em par/time.

Muitos candidatos acabam desistindo de participar quando vêem que precisam mostrar código. Outros candidatos mandam código mas acabam não indo bem na entrevista presencial porque ficam nervosos de programar “em público”. Infelizmente nesse tipo de abordagem provavelmente teremos falsos negativos, por outro lado dificilmente teremos falsos positivos.

Analise sob vários pontos de vista

Já faz algum tempo que percebi que é muito útil fazer com que os candidatos sejam entrevistados por vários desenvolvedores do time. Nesses últimos três anos, poucas foram as vezes em que os cadidatos não foram entrevistados por pelo menos duas ou três pessoas. É muito útil poder discutir com outras pessoas do seu time sobre as entrevistas. Às vezes você achou o candidato bom, porém outras pessoas perceberam problemas que você não percebeu (e vice e versa). Ou então você ia esquecer de perguntar alguma coisa importante, mas o time que sempre participa junto das entrevistas acaba lembrando de perguntar. A melhor parte disso tudo é que é muito mais fácil errar tomando uma decisão desse tipo sozinho, então quando você está entrevistando em grupo e o time inteiro sai satisfeito de uma entrevista, a sensação de que você está tomando uma decisão certa sobre contratar alguém é muito maior.

Além disso é interessante que o candidato converse com pessoas de diferentes especialidades. Nesse último ano vários dos nossos candidatos conversaram não apenas com desenvolvedores mas também com pessoas de produto, especialistas de processo e por aí vai. Como são pessoas de especialidades bem diferentes, as perguntas que eles fazem são bem diferentes, o que te ajuda a analisar o candidato por vários ângulos.

Vasculhe seu candidato na Internet

Olhar o Github do candidato, Bitbucket e afins é o mínimo que você deve fazer. Eu pessoalmente gosto de olhar o LinkedIn, Facebook e Twitter também, para ter uma idéia do que a pessoa gosta, quem ela segue, o que ela fala e como se comporta. Por exemplo, há não muito tempo um candidato que me mandou currículo tinha escrito no Twitter uma frase bem chata reclamando do seu chefe, do tipo “meu chefe é um idiota”. O que eu espero de um profissional sério é que ele vá conversar com o seu chefe e resolva seus problemas. E se ele não conseguir e o chefe for realmente um idiota, peça demissão e trabalhe em outro lugar. É bem melhor do que ter uma atitude idiota em um lugar público onde todo mundo pode ver – incluindo o seu (ex) futuro chefe.

E por falar em atitudes idiotas…

“No asshole rule”

Existe até um livro sobre isso. Se você quer ser feliz, evite ao extremo contratar “assholes”. Comportamentos do tipo “eu sou mais inteligente que todo mundo e não preciso de ninguém para fazer meu trabalho além de mim mesmo, porque eu sou um rockstar e ninguém tem nada a me acrescentar” podem levar seu time para o buraco (o quase-trocadilho com “asshole” não foi intencional).

Sabe aquele tipo de ambiente onde a fofoca rola solta, com conversinhas venenosas de corredor, onde todo mundo tenta queimar todo mundo? Ou aqueles times onde, se você der sua opinião, alguém vai contrariar só por contrariar para tentar aparecer? Ou então aquelas pessoas que arrumam confusão gratuitamente? Se você não quer ter esse tipo de problema na sua empresa (e eu acho que ninguém quer), o primeiro e melhor passo que você pode dar é tentar ao máximo possível não contratar “assholes”. Mesmo que o cara seja muito bom tecnicamente, na minha experiência é melhor ter um cara “menos bom” mas que trabalhe em equipe, seja construtivo, empolgado e confiável.

Se não for o candidato certo, não contrate

Se o candidato não é a pessoa 100% certa para o seu time, então não contrate. Em alguns casos você vai encontrar candidatos que são quase ideais e pode ser difícil resistir à tentação – porque em muitos casos são problemas que você acha que pode consertar. O problema é que às vezes (como já aconteceu comigo) as pessoas não estão dispostas a mudar e sua vida pode se tornar bem difícil. Hoje em dia prefiro entrevistar mais uma dezena de pessoas e demorar mais um mês para contratar (ou até não contratar) do que correr o risco de errar.

Uma pergunta interessante que você pode se fazer é: Se você estivesse contratando alguém para a SUA startup, você contrataria essa pessoa? Aliás, recomendo a leitura desse artigo do Steve Yegge na íntegra.

E você, o que aprendeu nos seus processos seletivos?

Tags: , , , , , , , , , ,

18 Responses to “Sobre entrevistas (parte 3)”

  1. Excelente post GC!

    Spot on em cada paragrafo!

  2. Do caralho GC.

    Outra coisa que é legal incentivar é fazer com o que o candidato se sinta a vontade para entrevistar os membros do time também. As dúvidas e questões que ele tem também são reveladoras ;)

    • É verdade, esse é um ponto importante. Em todas as etapas do processo sempre procuro perguntar se o candidato tem alguma dúvida, se tem algo sobre o nosso time, produto ou sobre o Yahoo! que ele gostaria de saber e por ai vai. Como vc falou, certamente dá para pescar algumas coisas sobre a pessoa pelas perguntas que ela faz.

  3. Fabio Massa says:

    Gostei muito do post.
    Esse começo de ano eu estava procurando um emprego novo, participei de algumas entrevistas mas nenhuma do nível que vc mencionou no post, ainda tem muita empresa que ti da um teste técnico no papel, acho isso muito chato, preferia que alguma pessoa do time técnico ficasse do meu lado e fizessemos um pair programming juntos; sem contar aquelas perguntar do tipo: “me diga 4 nomes de design patterns conhecidos e explique como elas funcionam, explique a diferença de herança e composição” é muito chato.
    Por outro lado, participei de 2 entrevistas legais, uma delas por telefone e por não ter o nível técnico desejado eu não avancei, mas gostei muito do bate papo que me acrescentou muito, enfim, é bom saber que algumas empresas estão mudando seus processos seletivos.
    Parabéns por compartilhar essas experiências e pelo post.

  4. Guilherme says:

    Também gostei muito do post e pretendo ler inteiro com mais calma.

    Estou começando a liderar pessoas e relatos como esses são muito bem vindas para trazer perspectivas de pessoas que já estiveram experiência com o assuntoo.

    Um abraço,
    Guilherme

  5. Mateus Bicalho says:

    Também já passei pela experiência de contratar sem olhar uma linha de código do candidato, o resultado foi terrível. Nunca mais.

    E uma frase que gosto muito é esta que você disse no final: ” Se você estivesse contratando alguém para a SUA startup, você contrataria essa pessoa? “. Uso esta pergunta para quase tudo, seja para contratar um novo empregado, seja para assinar com um novo fornecedor. Dê valor ao dinheiro dos outros como se fosse o seu – um dia será.

  6. Excelente post, Guilherme!
    Principalmente, a dica sobre manter o ambiente saudável. Na minha opinião, este é um dos pontos de maior prioridade, nos momentos de contratação: “Este profissional possui condições de manter o ambiente saudável?”
    Embora a experiência me diga que “ambiente saudável” nem sempre é possível, existem profissionais com posturas e culturas tão destrutivas que basta uma semana de convívio para perceber o tamanho da ameaça à sinergia do grupo.

    Grande abraço e parabéns!

  7. Luca Bastos says:

    Muito bom seu texto, aliás como sempre.

    Sempre fui adepto de filtrar os candidatos pelo telefone. Mas a escolha final era olho no olho. Muitas vezes apliquei testes e algumas vezes com pegadinha. A pegadinha teórica nem era para o candidato acertar mas para abrir brecha para discussão e avaliar o candidato.

    Só que hoje em dia está muito difícil contratar alguém. O mercado está aquecido demais. Não está fácil fazer as coisas pelo almanaque.

  8. GC,

    Post excelente, adorei as citações do Spolsky, ele possui boas dicas nessa área, realmente o telefonema de 15-30 minutos poupa gastos de ambos os lados e permite uma maior flexibilidade e ver o código é imprescindível, uma outra coisa que apareceu na minha timeline recentemente foi que nunca na história da Computação foi tão fácil colaborar com projetos livres, github e bitbucket estão aí pra comprovar.

  9. André Leite says:

    Guilherme,

    fico impressionado no nível de detalhes e organização que você leva em consideração em tudo que faz! Se todos os “Contratantes” levasse em consideração algumas de suas dicas, teríamos melhores profissionais na área.

    abs

  10. Felipe says:

    Para minha felicidade, o processo de entrevistas que minha equipe formulou usa quase tudo que você citou! :)

    A idéia da entrevista por telefone é uma boa, vou experimentar.

    Uma coisa que fizemos de diferente foi submeter o candidato a simulados de coisas que fazem parte do nosso processo de trabalho, por exemplo: elaborar um kanban, avaliar a prioridade de implementação de uma lista de casos de uso, etc. Isso nos permite avaliar necessidade de treinamento em Scrum e ver como o candidato se comporta discutindo assuntos dos projetos com os desenvolvedores.

    Também coletamos o feedback do candidato ao final da entrevista, fazendo uma mini retrospectiva, de forma que ele possa expor seus “starts”, “stops” e “continues”. O resultado tem sido bastante interessante e nos permite melhoria contínua do nosso processo.

    Abraços

  11. Robson says:

    Guilherme, gosto muito dos seus posts. Parabéns!
    Acho muito interessante os métodos de contratações, mas me conta uma coisa. Os profissionais que você vem contratando até o momento, corresponde com os objetivos da empresa? Eles estão satisfeitos hoje?

    Obs.: dependendo do seu reply continuo a desenvolver meu pensamento.

    Abraços

    • Sim, estão correspondendo. Alguns estão superando :) E sim, eles demonstram que estão satisfeitos.

      • Robson says:

        Opa, trabalhando até tarde heim? para responder a essas horas!!!
        É interessantíssimo, o meio de contratação que você e sua equipe vem aprimorando nestes últimos anos. Acompanho desde a primeira parte (Globo.com). Mas pensei no assunto, e fiquei com uma certa curiosidade.

        Com esse meio de recrutamento, você não exclui por descuido algum candidato com potencialidade a ser desenvolvida/lapidada? (Eu sei que acontece na maioria dos recrutamento de qualquer RH). Gostaria de saber como vocês tratam isso, ou vocês são rigorosos e ponto final?

        Gostaria de bater um papo contigo pessoalmente. Tem algum evento próximo que irá participar?

        • Não, isso não acontece. Já contratamos várias pessoas que tinham pouca (ou até nenhuma) experiência profissional, mas que tinham um potencial enorme e precisavam apenas ser lapidadas. Não existe um critério objetivo para saber se alguém se encaixa nessa categoria, então fazemos exatamente este mesmo processo seletivo com todos os candidatos (incluindo os menos experientes) de modo que possamos conhecê-los o máximo possível. Isso nos dá base para que possamos decidir se queremos apostar em determinada pessoa ou não.

          Sempre estou por aí nos eventos :) O próximo que participarei provavelmente será a QCon SP eu acho.

          [ ]s, gc

  12. tiago says:

    Boas dicas. Entrevista/contratação malfeita é péssimo até para o candidato. O cara fica empolgado com a facilidade que o contrataram e acha que se deu bem, mas depois percebe que não estava no nível ideal, e q

  13. tiago says:

    que só foi contratado por falta de critérios, a.k.a entrou numa furada, que devia ter sido avisado que não estava preparado.

    O problema é que em muitos casos você passa por vários estágios na seleção e no final não recebe retorno algum (”pois é, a vaga ficou com outro”) o que acaba não te ajudando a evoluir muito.

Leave a Reply