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.
A maioria dos projetos de desenvolvimento que fracassam não fracassa por falta de capacidade técnica. Fracassa por escopo mal definido. O desenvolvedor entendeu uma coisa, o cliente queria outra, e quando o resultado aparece, nenhum dos dois está errado, mas os dois estão insatisfeitos.
Definir o escopo de um projeto com clareza antes de começar é o que separa um projeto que entrega o resultado esperado de um que entrega o que foi pedido. Não é a mesma coisa.
Este guia é para gestores e donos de empresa que precisam contratar um desenvolvedor mas não têm background técnico para escrever um documento de requisitos formal. Não vou pedir que você aprenda a linguagem de especificação de software. Vou te mostrar como estruturar o que você sabe sobre o seu negócio de um jeito que o desenvolvedor consegue trabalhar.
Escopo é a definição clara do que está incluído em um projeto e do que não está. O PMI define escopo de projeto como o trabalho que precisa ser realizado para entregar um produto, serviço ou resultado com as características e funções especificadas.
Na prática, escopo é a resposta para: o que exatamente vai ser construído, para quem, com quais funcionalidades, dentro de quais limites.
O escopo falha por quatro razões recorrentes:
Requisitos descritos em termos de solução, não de problema. “Preciso de um botão que exporta para PDF” é uma solução. “Minha equipe precisa enviar relatórios para clientes em um formato que eles consigam abrir sem ter acesso ao sistema” é um problema. A diferença importa porque o desenvolvedor pode ter uma solução melhor do que o botão de PDF, mas só vai propô-la se entender o problema real.
Funcionalidades assumidas mas não documentadas. “O sistema envia e-mail de confirmação automaticamente” parece óbvio para você. Não estava no briefing. O desenvolvedor não implementou. Isso é escopo não documentado que vira conflito.
Critérios de aceite ausentes. Como você vai saber se o que foi entregue está correto? Sem critérios claros de aceite, a avaliação fica subjetiva e qualquer resultado pode ser contestado por qualquer uma das partes.
Mudanças de ideia tratadas como refinamento de requisito. Você pediu A, depois pediu B, depois voltou para A com elementos de B. Para você, está apenas ajustando. Para o desenvolvedor, são três escopos diferentes. Sem processo para tratar mudanças, o trabalho cresce enquanto o orçamento fica igual.
Você não precisa saber programar para escrever um briefing que o desenvolvedor consegue usar. Precisa conseguir responder a seis perguntas sobre o seu negócio.
Descreva em uma ou duas frases o problema que existe hoje e como o projeto vai resolvê-lo. Fique no nível do negócio, não da solução técnica.
Exemplos ruins:
Exemplos bons:
O problema bem descrito já diz ao desenvolvedor qual é a criticidade, quem são os usuários e qual é o critério de sucesso implícito.
Liste os perfis de usuário com uma frase de contexto para cada um. Não o cargo no organograma, mas o comportamento em relação ao sistema.
Exemplo: “O sistema vai ser usado por três perfis: o gestor, que precisa aprovar orçamentos e ver relatórios de desempenho; o atendente, que cadastra clientes e cria orçamentos; e o cliente, que acessa apenas para ver o status do seu pedido e fazer o pagamento.”
Essa informação define quantos níveis de acesso o sistema precisa ter, quais funcionalidades cada perfil precisa ver e qual é a complexidade de autenticação necessária.
Faça duas listas. A primeira: o que o sistema precisa ter para ser útil desde o primeiro dia de uso. A segunda: o que seria bom ter mas não impede o lançamento.
Essa distinção é o que permite lançar uma primeira versão funcional em menos tempo e validar o produto antes de construir tudo. É também o que permite tomar decisões de priorização quando o prazo aperta.
Exemplo de lista essencial: cadastro de clientes, criação de orçamentos, fluxo de aprovação com notificação por e-mail, exportação de orçamento aprovado em PDF.
Exemplo de lista desejável: histórico de versões do orçamento, integração com o sistema financeiro, relatório de conversão por atendente, app mobile.
Liste todos os sistemas externos com os quais o novo projeto precisa se comunicar: e-mail marketing, CRM, gateway de pagamento, sistema de estoque, ERP, ferramentas de comunicação interna. Para cada um, informe se é integração de leitura (o sistema busca dados de lá), de escrita (o sistema manda dados para lá) ou bidirecional.
Integrações são uma das principais fontes de escopo subestimado. Cada integração pode dobrar o tempo de desenvolvimento dependendo da qualidade da API do sistema com o qual você está integrando. Quanto mais claro isso estiver no briefing, mais precisa vai ser a estimativa.
Prazo fixo com motivo de negócio (evento, temporada, prazo contratual), orçamento máximo, tecnologia obrigatória por exigência de infraestrutura já existente, requisito regulatório ou de segurança: tudo isso precisa estar no briefing.
Restrições não comunicadas no início viram surpresas no meio. Um prazo fixo que o desenvolvedor descobre na metade do projeto muda completamente o planejamento e a dinâmica de trabalho.
Essa é a pergunta que a maioria dos briefings ignora e que gera os maiores conflitos na entrega. Sem critérios de aceite claros, o desenvolvedor entrega o que implementou e você avalia com base no que esperava. Se as expectativas não foram alinhadas, qualquer entrega vai parecer incompleta.
Critérios de aceite são declarações verificáveis de comportamento esperado. Não “o sistema precisa ser rápido”, mas “a lista de orçamentos deve carregar em menos de dois segundos com até mil registros”. Não “o fluxo de aprovação deve ser simples”, mas “o gestor deve conseguir aprovar ou reprovar um orçamento com no máximo três cliques a partir da notificação por e-mail”.
Se você nunca fez isso antes, use essa estrutura como ponto de partida. Preencha cada bloco com o que você sabe sobre o seu projeto:
Contexto do problema: [Descreva em duas frases o que existe hoje e qual dor o projeto vai resolver]
Usuários do sistema: [Liste os perfis com uma linha de contexto para cada um]
Funcionalidades essenciais: [Liste o que precisa existir no primeiro dia de uso, uma por linha]
Funcionalidades desejáveis: [Liste o que seria bom ter mas não bloqueia o lançamento]
Integrações necessárias: [Liste os sistemas externos com o tipo de integração para cada um]
Restrições: [Prazo, orçamento, tecnologia obrigatória, requisitos regulatórios]
Critérios de aceite: [Para as funcionalidades principais, descreva como o comportamento correto se parece na prática]
Esse documento não precisa ser longo. Duas a quatro páginas bem preenchidas são mais úteis do que vinte páginas de especificação vaga. O Notion é uma ferramenta eficaz para documentar requisitos de forma colaborativa e permite que o desenvolvedor faça anotações e perguntas diretamente no documento.
Vale ser direto sobre as consequências práticas de um escopo mal definido, porque entender o custo ajuda a justificar o tempo investido na definição.
Estimativas imprecisas. Sem escopo claro, o desenvolvedor estima com base em suposições. Se as suposições estiverem erradas, a estimativa vai estar errada. Você vai descobrir a diferença quando o projeto já estiver em andamento e a negociação vai acontecer em posição de desvantagem para os dois lados.
Entregas que não correspondem ao esperado. O desenvolvedor entregou exatamente o que foi especificado. Você queria algo diferente do que foi especificado. Os dois estão certos e os dois estão insatisfeitos. Esse conflito tem solução, mas custa tempo e dinheiro que não estavam no orçamento.
Escopo creep. Cada “pequena mudança” no meio do projeto adiciona trabalho não estimado. Individualmente, cada mudança parece razoável. Acumuladas, elas podem dobrar o tempo de desenvolvimento sem que ninguém tenha consciência de quando isso aconteceu.
Dependência do desenvolvedor original. Código construído sem documentação e sem processo claro fica refém do desenvolvedor que o construiu. Se ele sair do projeto, qualquer outro profissional vai precisar de semanas para entender o que foi feito antes de conseguir dar continuidade.
Existem situações legítimas em que você sabe o resultado que quer mas não consegue especificar o caminho para chegar lá. Isso é mais comum do que parece e tem solução.
A abordagem mais eficiente é descrever exemplos concretos de comportamento esperado em vez de tentar especificar a regra abstrata. Em vez de “o sistema deve calcular o desconto automaticamente”, descreva: “quando o pedido tem mais de dez itens, o desconto de 5% deve ser aplicado automaticamente. Quando o cliente é cadastrado como VIP, o desconto é de 10%. Os dois descontos não se acumulam, o maior prevalece.”
Exemplos concretos são muito mais fáceis de implementar corretamente do que regras abstratas, porque eliminam a interpretação. O desenvolvedor não precisa adivinhar o que “automaticamente” significa nesse contexto.
Para funcionalidades que você não consegue especificar nem com exemplos, a abordagem correta é admitir isso no briefing e propor uma fase de descoberta antes da estimativa: uma ou duas horas de conversa com o desenvolvedor para mapear juntos o que precisa ser construído. Um profissional sênior consegue extrair os requisitos de uma conversa sobre o negócio mesmo quando você não sabe como formalizá-los.
Mudanças de escopo são inevitáveis. O objetivo não é eliminar mudanças, é ter um processo para avaliá-las e implementá-las sem destruir o planejamento.
O processo básico tem três passos: a mudança é documentada por escrito antes de qualquer implementação, o desenvolvedor avalia o impacto no prazo e no custo e comunica antes de começar, e você aprova ou rejeita com base nessa avaliação.
Nenhuma mudança deve ser simplesmente absorvida sem análise, e nenhuma deve ser cobrada como surpresa no final. O processo protege os dois lados: você sabe o que está pedindo e qual é o custo, o desenvolvedor sabe o que foi aprovado antes de implementar.
O que define se uma mudança está dentro ou fora do escopo original é a interpretação do briefing inicial. Quando há ambiguidade, o benefício da dúvida deve ser analisado caso a caso, não resolvido por uma regra única. Projetos com boa relação desenvolvedor-cliente costumam resolver essas ambiguidades com mais flexibilidade do que projetos onde a confiança já foi desgastada.
Escopo bem definido é o fundamento de um contrato que protege o projeto. Sem escopo documentado, o contrato não tem como especificar o que está sendo entregue, e as cláusulas de prazo e pagamento ficam suspensas em um vácuo de interpretação.
O escopo documentado no briefing deve ser anexado ao contrato e referenciado explicitamente. Qualquer mudança de escopo aprovada durante o projeto deve ser documentada como aditivo ao contrato original, mesmo que seja informal, mesmo que seja pequena.
Isso não é burocracia. É o que garante que os dois lados tenham a mesma memória sobre o que foi acordado quando surgir uma divergência. E divergências surgem em projetos longos, mesmo entre as melhores partes.
Quando o projeto envolve automação de processos internos, o escopo tem uma camada adicional de complexidade: é preciso mapear os processos que serão automatizados com a mesma precisão com que se especificam as funcionalidades do sistema. Cada exceção ao processo padrão que não estiver documentada vai aparecer como requisito não previsto no meio da implementação.
Um bom desenvolvedor não é apenas o executor do escopo que você definiu. É um parceiro na definição.
Um profissional sênior vai identificar inconsistências no briefing que você não percebeu, vai apontar funcionalidades que parecem simples mas têm implicações técnicas importantes, e vai sugerir alternativas mais simples para resolver o mesmo problema com menos custo.
Para isso acontecer, você precisa apresentar o problema antes de apresentar a solução. Se você chega com um documento de 30 páginas especificando cada detalhe de implementação, o desenvolvedor vai implementar o que foi especificado. Se você chega com o problema bem descrito, ele vai contribuir com a solução.
Para entender o que um projeto de desenvolvimento web envolve antes de começar a especificar, ter esse contexto técnico básico ajuda a fazer as perguntas certas e a entender as respostas que o desenvolvedor vai dar.
O desenvolvedor que traduz requisito de negócio em solução técnica é exatamente o tipo de profissional que torna a definição de escopo um processo colaborativo em vez de um jogo de adivinhação. E antes de chegar à conversa de escopo, saber as perguntas certas para fazer antes de fechar garante que você está avaliando o profissional certo para conduzir esse processo.
Depois que o escopo estiver definido e o projeto em andamento, entender como garantir visibilidade durante a execução é o próximo passo para manter o projeto nos trilhos sem precisar de acompanhamento diário.
Definir escopo não é uma habilidade técnica. É uma habilidade de comunicação sobre o seu próprio negócio. Você conhece o problema que precisa resolver melhor do que qualquer desenvolvedor vai conhecer. O trabalho de definição de escopo é traduzir esse conhecimento em uma linguagem que permita ao desenvolvedor fazer o trabalho certo.
O investimento de algumas horas na definição clara do escopo antes de qualquer linha de código ser escrita é o que determina se o projeto vai entregar o resultado que você precisa ou o resultado que foi pedido. Em projetos de desenvolvimento, essa diferença pode custar meses de retrabalho.
Comece pelo problema. Defina os usuários. Liste o que é essencial. Documente as restrições. Especifique os critérios de aceite. Apresente ao desenvolvedor e itere. Esse processo não é complicado. É apenas disciplinado, e é o que faz a diferença entre projetos que entregam e projetos que frustram.