Depois de começar a procurar um desenvolvedor freelancer para colaborar, você perceberá que estão em toda parte. Mercados freelance on-line estão cheios até a borda com candidatos qualificados. Além disso, você encontrará pelo menos uma ou duas centenas na cidade mais próxima.

Agora, você fica com a difícil tarefa de restringir esse conjunto de talentos àquele que funcionará de forma mais eficaz com você. É assustador mesmo se você tiver alguma perspicácia técnica, mas pode parecer quase impossível se você não tiver. Por outro lado, é fácil pensar que considerações técnicas são as únicas que importam. Qualquer um que tenha contratado um gênio com quem é impossível trabalhar, pode dizer o quão errado pode ser.

Neste artigo, vamos nos concentrar em algumas maneiras de ter certeza de que você está obtendo o parceiro mais compatível.

Confira seu trabalho

Peça para ver alguns dos trabalhos concluídos do desenvolvedor. Antes de começar a avaliar, certifique-se de entender as partes em que sua perspectiva trabalhou. Passe algum tempo para explorar seu projeto. Faça anotações do que você gosta e não gosta. Talvez eles tenham criado um aplicativo da Web que seja realmente rápido, mas coloca algumas restrições estranhas na senha do usuário. Pergunte a eles o que os levou a tomar essas decisões.

Qualquer tipo de desenvolvimento de software, seja na web, em aplicativos móveis ou na área de trabalho, é um jogo para encontrar os melhores compromissos. Ouvir os vários trade-offs que um desenvolvedor enfrentou e sua abordagem para resolver o problema é extremamente valiosa para avaliar como eles abordarão os problemas que o seu projeto encontrará.

Se você souber um pouco sobre o código, poderá acessar a conta do desenvolvedor no GitHub para ver o que eles escreveram e para quais projetos eles contribuíram. Ver o código deles ajudará você a entender se eles são adequados para uma perspectiva técnica. Isso dá a você uma ideia mais concreta do que essa lista de realizações de desenvolvedores realmente significa em termos de habilidade.

Aqui estão alguns aspectos do GitHub do freelancer que podem não ser óbvios no começo, mas você deve prestar atenção especial a:  

  • Idiomas: o freelancer se atém a um ou dois idiomas favoritos, ou eles se interessam por diferentes idiomas? Encontrar um especialista nas tecnologias que você precisa para o seu projeto pode avançar rapidamente, mas um freelancer com uma vasta experiência pode oferecer sugestões sobre outros tipos de ferramentas mais adequadas ao seu trabalho.
  • Comentários e Documentação: quão bem o código é documentado? A natureza do freelancer significa que você pode ter outras pessoas trabalhando no código em algum momento. O código deste freelancer será fácil de trabalhar? Se não, isso significa que você pode estar se comprometendo com eles mais do que deseja. Alguns desenvolvedores acreditam que o código de auto-documentação significa que eles não precisam de nenhum comentário. Se você não vir comentários, quão legível você encontra o código?
  • Eles contribuem para outros projetos? Por mais que isso possa parecer contra-intuitivo, muitas vezes é mais difícil contribuir com outros projetos de código aberto do que construir o seu próprio. O código de outras pessoas pode ser difícil de entender, mas isso é uma habilidade necessária. Isso é particularmente importante se você está trazendo um desenvolvedor para trabalhar em uma base de código existente. Se eles contribuíram para o código-fonte aberto, é mais provável que escrevam códigos que outros possam manter mais tarde, desde que compreendam os desafios de fazê-lo.

Descubra como (e o que) eles aprendem

Desde as melhores práticas até a tecnologia atual usada, o desenvolvimento de software muda a um ritmo acelerado. Se você acabar com um desenvolvedor que está preso nas práticas e na tecnologia de 10 anos atrás, perderá ferramentas e técnicas que poderiam tornar seu projeto melhor, mais rápido e mais fácil de manter.

Pergunte aos prospects como eles aprendem coisas novas e qual é a coisa mais recente que aprenderam que os ajuda em seu desenvolvimento. O que eles ganharam aprendendo isso? Qual é a próxima coisa que eles gostariam de aprender e por quê?

Mesmo que você não esteja familiarizado com as especificidades de suas respostas, você pode ter uma ideia do quanto esse desenvolvedor é curioso. Muita curiosidade pode levar a que projetos sejam construídos em bases experimentais e não comprovadas, mas, em geral, um desenvolvedor curioso pode trazer mais para o seu projeto.

Encontre um comunicador compatível

A comunicação pode fazer ou quebrar um projeto. Certifique-se de que os desenvolvedores com os quais você trabalha estejam dispostos e sejam capazes de se comunicar de uma maneira e com uma freqüência com a qual você possa conviver. A maioria dos desenvolvedores possui ferramentas de comunicação que usam com colegas. Olhe para aqueles e veja se eles vão trabalhar para você. Se não, descubra se o desenvolvedor está bem usando as ferramentas alternativas que você sugere.

Este também é um ótimo momento para descobrir com que frequência você estará ouvindo do desenvolvedor. Se a resposta for "Uma vez no final de cada marco", você provavelmente ficará infeliz. Quais são as chances de o desenvolvedor entender seu projeto exatamente da maneira que você pretende da primeira vez? Quais são as chances de que cada peça distinta que compõe um marco completo esteja perfeitamente no lugar exatamente como você imaginou?

Check-ins regulares (pelo menos uma vez por semana) podem corrigir pequenos mal-entendidos antes de se tornarem grandes.

Teste-os com um projeto

Você aprenderá mais com esse método do que com todos os outros combinados. Fazer perguntas investigativas e espiar seu código só pode lhe dar vislumbres do que é trabalhar com uma pessoa. A melhor maneira de entender como é trabalhar com eles é fazê-lo. Um teste também é sua melhor oportunidade para passar pelo material técnico e para as coisas que realmente importam: Será que vamos nos sentir infelizes ao tentar trabalhar com essa pessoa?

Se possível, interrompa um pequeno pedaço do seu projeto e trabalhe com o cliente em potencial para concluí-lo. Se possível, pague-os para fazê-lo. Isso faz algumas coisas legais para você:  

  • ele oferece uma maneira de baixo risco de testar o trabalho com o desenvolvedor;
  • deixa você com um resultado útil mesmo se o relacionamento não der certo;
  • se você puder pagar uma taxa justa, é mutuamente benéfico tanto para você quanto para o desenvolvedor.

Menciono este último ponto porque às vezes as empresas são tentadas a pedir aos desenvolvedores que construam um pequeno projeto de teste gratuitamente para fins de avaliação e estilo de trabalho. Esta não é uma boa maneira de começar um relacionamento com seu desenvolvedor. Se eles podem construir algo que será útil para você - mesmo que, no começo, não seja o projeto inteiro que você quer construir - não vale a pena pagar por isso?

Provavelmente, é melhor que você não apresente isso ao desenvolvedor como um projeto de teste. Você não precisa mentir ou enganá-los de qualquer forma, mas apresentar isso como o projeto. Na verdade, é o projeto por enquanto. Se tudo der certo, você terá outro projeto para oferecer, mas não faça isso. Isso afetará negativamente a dinâmica de relacionamento. Ninguém quer ser objeto de experimentação. Se tudo correr bem, o desenvolvedor vai querer trabalhar com você em projetos futuros; você não precisa usar isso no começo para mantê-los no gancho.

Durante este compromisso, mantenha os olhos abertos para bandeiras vermelhas. Pense cuidadosamente sobre os tipos de comportamento que você não pode resolver.

A avaliação cuidadosa compensa

Se a sua linha do tempo para a conclusão do projeto estiver se aproximando e você não tiver tempo para executar todas essas etapas, faça pelo menos o projeto de teste. Faça com que o seu cliente potencial construa uma parte do projeto maior, assim seu risco é baixo e não se perde tempo. É uma ferramenta extremamente valiosa para garantir que esta é uma relação que você deseja ter. Mesmo se falhar e você tiver que encontrar outra pessoa, isso vai custar menos tempo e dinheiro do que se comprometer com um parceiro de desenvolvimento para construir o projeto inteiro apenas para que ele caia.

É muito mais fácil no começo escolher alguém de quem você gosta e esperar o melhor. Às vezes isso pode funcionar, mas, para o bem do seu projeto, você deve entrar em relacionamentos com os olhos abertos, tanto quanto possível.

Imagem em destaque, imagem do trabalho em equipe via Shutterstock.