Como Contratar Desenvolvedor Sênior Sem Depender do TI
Saiba como contratar um desenvolvedor sênior sem ter um CTO interno: o que avaliar no portfólio, no processo de trabalho e na comunicação antes de fechar.
Quem já foi mal atendido por um freelancer tem uma memória muito específica de como a situação evoluiu: começou bem, a primeira entrega parecia promissora, e então as coisas foram desandando de forma gradual até o ponto onde você estava preso num projeto que não avançava, com dinheiro já pago e sem saída clara. A segunda contratação carrega o peso desse histórico, e a tendência é errar para o lado da desconfiança, o que também tem custo.
Validar a experiência real de um desenvolvedor sênior freelancer antes de contratar não exige que você saiba programar. Exige que você saiba o que evidência real de competência parece em contraste com evidência fabricada, e que você tenha as ferramentas certas para verificar uma da outra.
Este artigo é para quem já teve uma experiência ruim e não quer repetir, ou para quem está prestes a fazer uma contratação relevante e quer ter confiança no processo de avaliação.
Em uma contratação CLT para uma posição técnica, existe uma estrutura de verificação: entrevistas com o time técnico, testes práticos, verificação de referências com RH das empresas anteriores. O candidato passa por múltiplos filtros antes de começar.
Na contratação de um desenvolvedor freelancer, essa estrutura raramente existe. A conversa é entre você e o profissional, o portfólio é apresentado pelo próprio candidato e as referências são indicadas por ele. Cada elemento da avaliação pode ser curado para mostrar apenas o que favorece a contratação.
Isso não significa que freelancers são desonestos. Significa que o processo de validação precisa ser ativo, não passivo. Você não pode apenas receber o que o profissional apresenta. Precisa investigar o que ele não apresenta voluntariamente.
O portfólio é onde a maioria das avaliações começa e onde a maioria das avaliações deveria ir além da superfície.
A primeira distinção que importa é entre projetos que foram entregues e projetos que estão funcionando. Muitos portfólios mostram capturas de tela de projetos que foram desenvolvidos, lançados e depois abandonados, ou que existem apenas em ambiente de demonstração.
Pergunte para cada projeto apresentado: está em produção? Quantos usuários ativos tem? Posso acessar agora? Um projeto que está no ar e funcionando com usuários reais é uma evidência muito mais forte do que um projeto que foi entregue e engavetado.
Se o desenvolvedor tem perfil no GitHub, você tem acesso a uma das fontes de evidência mais difíceis de fabricar: o histórico real de contribuições de código.
Você não precisa entender o código para extrair informações úteis de um perfil no GitHub. Observe:
Frequência e consistência de atividade. Um desenvolvedor que trabalha ativamente tem um histórico de commits distribuído ao longo do tempo, não concentrado em poucos períodos. Atividade concentrada em blocos seguidos de longos silêncios pode indicar projetos esporádicos ou contribuições feitas especificamente para engordar o perfil antes de uma contratação.
Qualidade da documentação nos repositórios. Abra um ou dois repositórios e verifique se existe um arquivo README. O README é a documentação básica de um projeto: explica o que o projeto faz, como instalar e como usar. Um desenvolvedor que não documenta seus próprios projetos públicos provavelmente não vai documentar o seu.
Histórico de colaboração. Repositórios onde outros desenvolvedores contribuíram, fizeram perguntas ou abriram issues indicam projetos que existem além da bolha do autor. Projetos que nunca receberam contribuição externa podem ser projetos de estudo ou demonstração, não projetos reais.
Variedade de tecnologias e contextos. Um portfólio GitHub que mostra apenas uma tecnologia em contextos muito similares pode indicar especialização legítima ou pode indicar falta de versatilidade. Depende do que o seu projeto exige.
A participação no Stack Overflow como sinal de senioridade funciona de forma diferente do GitHub. No Stack Overflow, o profissional responde perguntas técnicas de outros desenvolvedores. Isso revela dois aspectos que o portfólio de projetos não mostra diretamente: a profundidade do conhecimento técnico e a capacidade de comunicar conceitos complexos de forma clara.
Um desenvolvedor com histórico de respostas bem avaliadas no Stack Overflow demonstrou que sabe o suficiente sobre um tema para explicar para outros que não sabem. Esse é um sinal de senioridade técnica que é muito difícil de fabricar.
Você não precisa entender as respostas para avaliar a recepção da comunidade. Observe a pontuação das respostas, o número de vezes que foram marcadas como úteis e a consistência do histórico ao longo do tempo.
Um portfólio bem curado mostra apenas os projetos que deram certo. O que você precisa descobrir é o que aconteceu nos que não deram.
“Me conte sobre um projeto que não foi como o planejado. O que aconteceu?”
Essa pergunta é a mais reveladora do conjunto. Qualquer profissional com experiência real tem histórias de projetos que saíram do trilho: prazo que estourou, requisito que mudou completamente no meio, integração que não funcionou como esperado, cliente que desapareceu com o projeto incompleto.
A qualidade da resposta revela mais do que o conteúdo. Um profissional maduro conta a história com honestidade sobre o papel dele no problema, o que aprendeu e o que faria diferente. Uma resposta evasiva, uma história em que todos os problemas foram causados pelo cliente, ou a afirmação de que nenhum projeto jamais saiu do planejado são sinais de alerta.
“Qual foi o projeto mais complexo tecnicamente que você já entregou? Me explica o problema que resolveu.”
A resposta a essa pergunta deve ter dois níveis claros: o problema de negócio que o projeto resolvia e a complexidade técnica específica que tornou a solução desafiadora. Um profissional que consegue explicar complexidade técnica em termos acessíveis demonstra que entende o que está fazendo, não apenas que sabe executar.
“Como funciona o projeto X que você apresentou no portfólio?”
Para cada projeto relevante que o desenvolvedor apresentar, peça uma explicação de como o sistema funciona por dentro. Não nos detalhes de código, mas na lógica: como os dados fluem, como os usuários interagem, onde estão as partes mais complexas.
Um profissional que construiu o projeto vai conseguir explicar isso com naturalidade e detalhe. Um profissional que apresentou um projeto de outra pessoa como seu vai travar ou dar respostas genéricas.
Referências indicadas pelo próprio candidato têm viés de seleção óbvio. Ninguém indica um cliente com quem teve um relacionamento ruim. O que você pode fazer para extrair valor mesmo de referências curadas:
Quando ligar ou escrever para a referência, não pergunte apenas “foi boa a experiência?”. Essa pergunta convida a uma resposta positiva genérica. Pergunte coisas específicas:
“O projeto foi entregue no prazo combinado originalmente, ou houve ajustes?” A resposta honesta aqui pode ser positiva mesmo com ajustes: “houve um atraso de duas semanas que foi comunicado com antecedência e justificado”. Isso é informação real.
“Houve alguma situação de conflito ou desentendimento durante o projeto? Como foi resolvida?” Projetos longos sempre têm momentos de tensão. Como foram gerenciados diz mais sobre o profissional do que os momentos tranquilos.
“Você contrataria novamente para um projeto similar?” E então, se a resposta for positiva, “já contratou novamente?” A segunda pergunta é a que separa a intenção da ação.
Se possível, tente encontrar clientes que o desenvolvedor não listou como referência. LinkedIn é o caminho mais direto: veja o histórico de experiências, identifique empresas onde trabalhou e tente contato com alguém da área técnica ou de produto dessas empresas.
Esses sinais, isolados, podem ter explicação. Combinados, formam um padrão que justifica encerrar a avaliação.
Portfólio que mostra apenas design mas não sistema funcionando. Capturas de tela de interfaces bonitas sem acesso ao sistema real ou ao código podem ser mock-ups, podem ser projetos de outra pessoa ou podem ser projetos que nunca foram além da interface. Peça acesso a pelo menos um projeto funcionando.
Incapacidade de explicar decisões técnicas em linguagem simples. Jargão técnico excessivo sem conteúdo prático costuma ser uma forma de obscurecer a falta de profundidade real. Um sênior consegue explicar por que escolheu uma tecnologia ou arquitetura em termos que qualquer pessoa inteligente consegue seguir.
Histórico de projetos todos com o mesmo cliente ou todos muito antigos. Um portfólio com dez projetos para o mesmo cliente pode indicar uma relação longa e de confiança, o que é positivo, ou pode indicar dificuldade em conquistar novos clientes por problemas de relacionamento ou reputação. Projetos todos com mais de três anos podem indicar estagnação técnica.
Resistência em fornecer acesso ao código-fonte de projetos anteriores para revisão técnica. Se você tem alguém de confiança com conhecimento técnico para fazer uma revisão rápida, peça acesso a um repositório. A resistência em fornecer, sem um motivo legítimo como NDA, é um sinal de alerta.
Preço muito abaixo do mercado sem justificativa clara. Um desenvolvedor sênior freelancer cobra dentro de uma faixa que reflete seu nível no mercado. Preço muito abaixo pode indicar profissional que se declara sênior mas tem experiência júnior, ou profissional com histórico de problemas de entrega que está precificando abaixo para compensar.
Demora excessiva ou respostas vagas para perguntas diretas sobre processo. A comunicação antes do projeto é o melhor indicador da comunicação durante o projeto. Se antes de ser contratado as respostas demoram dias e são vagas, depois de contratado a situação não vai melhorar.
Você não precisa fazer uma prova técnica para avaliar capacidade. Existem abordagens que revelam competência sem exigir que você entenda o resultado.
Peça uma análise técnica do seu projeto. Apresente o problema que precisa ser resolvido e peça ao desenvolvedor um documento escrito com a proposta de solução técnica: quais tecnologias usaria, como estruturaria o banco de dados, quais são os riscos técnicos identificados e como os mitigaria.
A qualidade desse documento diz muito. Um profissional sênior identifica riscos que você não havia considerado, propõe alternativas com justificativa clara e antecipa perguntas que você teria feito. Um profissional menos experiente lista tecnologias sem justificativa e não identifica riscos.
Peça uma estimativa detalhada por componente. Em vez de um valor total, peça que o desenvolvedor quebre a estimativa por funcionalidade ou por etapa de entrega. Uma estimativa detalhada que você pode questionar item a item revela o nível de planejamento do profissional e permite identificar onde as suposições estão sendo feitas.
Proponha um projeto pequeno pago antes do projeto principal. Para projetos grandes, uma das formas mais eficazes de validar é contratar uma etapa pequena e bem definida antes de comprometer o orçamento total. Você avalia a qualidade da entrega, o processo de comunicação e o cumprimento de prazo em um contexto de baixo risco.
Um desenvolvedor sênior com portfólio e histórico comprovados tem comportamentos específicos que aparecem desde a primeira conversa e que diferem do profissional que está exagerando a própria experiência.
Ele faz perguntas antes de estimar. Ele identifica riscos que você não havia considerado. Ele propõe alternativas mais simples para o mesmo problema quando existem. Ele comunica limitações antes que se tornem problemas. Ele tem processo claro de entrega e documentação. Ele tem referências que pode fornecer sem hesitação.
Entender o que um desenvolvedor web experiente domina na prática ajuda a calibrar o que esperar de cada etapa da avaliação. E quando chegar na etapa de negociação, saber as perguntas que revelam o nível real do profissional complementa a validação de portfólio com a avaliação de processo e comunicação.
Para quem está chegando nessa avaliação pela primeira vez, o artigo sobre como contratar sem depender do TI para avaliar cobre os critérios de senioridade que antecedem a validação específica de portfólio.
Validar a experiência real de um desenvolvedor sênior freelancer é um processo que qualquer gestor consegue conduzir com as ferramentas certas. Não exige conhecimento técnico. Exige investigação ativa, perguntas diretas e disposição para verificar além do que é apresentado voluntariamente.
O portfólio, os repositórios públicos, as referências verificadas e a qualidade das respostas durante a avaliação formam juntos um quadro muito mais confiável do que qualquer dessas fontes isoladas. Quem tem experiência real não tem dificuldade em demonstrá-la. Quem está exagerando a própria experiência vai travar exatamente nas perguntas que exigem especificidade.
A segunda contratação não precisa carregar o peso da primeira que deu errado. Com o processo de validação certo, você tem como distinguir o profissional que vai entregar do que vai criar os mesmos problemas com um rosto diferente.