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 termina em conflito não falhou por falta de capacidade técnica. Falhou porque as expectativas de cada lado nunca foram formalizadas. O desenvolvedor entregou o que entendeu. O cliente esperava o que imaginou. Sem um contrato com desenvolvedor freelancer bem estruturado, essa distância entre o que foi dito e o que foi entendido vira litígio ou prejuízo.
Este guia cobre o que não pode faltar em um contrato de prestação de serviços de desenvolvimento, escrito para gestores e donos de empresa, não para advogados. Sem juridiquês, com exemplos diretos de cada cláusula e a explicação do por que ela existe.
A recomendação de ter um advogado revisando o contrato final continua válida, especialmente para projetos de valor alto. O que este artigo entrega é o entendimento do que precisa estar no documento para que a revisão jurídica tenha substância para trabalhar.
Um acordo por e-mail tem algum valor legal, mas é frágil por duas razões práticas. Primeiro, o escopo raramente está completamente definido em uma troca de e-mails, e o que não foi dito explicitamente vai ser interpretado por cada parte à sua maneira. Segundo, quando o conflito surge, reconstituir uma conversa fragmentada em dezenas de e-mails é lento, caro e produz resultado incerto.
Um contrato escrito e assinado força as duas partes a articular explicitamente o que estão acordando antes de qualquer trabalho começar. Esse processo de articulação por si só já resolve muitos conflitos potenciais, porque as divergências de expectativa aparecem durante a elaboração do documento, quando ainda é barato corrigi-las, não durante a execução, quando o custo de conflito é alto.
A legislação brasileira sobre prestação de serviços autônomos reconhece contratos de prestação de serviços entre pessoas físicas e jurídicas com validade plena, sem necessidade de registro em cartório para a maioria dos casos. Um documento bem elaborado, assinado digitalmente pelas partes, tem validade legal.
O contrato começa com a identificação completa de quem está contratando e quem está sendo contratado: nome completo ou razão social, CPF ou CNPJ, endereço e, no caso do desenvolvedor pessoa jurídica, o número de registro da empresa.
Se o desenvolvedor é MEI ou ME, o contrato deve ser com a pessoa jurídica, não com a pessoa física, para que a prestação de serviços seja feita em conformidade com a estrutura jurídica do profissional. A diferença entre MEI, ME e prestador de serviço segundo o Sebrae tem implicações fiscais que afetam tanto o desenvolvedor quanto a empresa contratante.
O objeto é a descrição do que está sendo contratado. Essa é a cláusula mais importante do contrato e a que mais frequentemente está mal escrita.
“Desenvolvimento de sistema web” não é objeto suficiente. Qualquer coisa pode ser chamada de sistema web.
O objeto precisa descrever o que será construído com especificidade suficiente para que qualquer pessoa lendo o contrato entenda o que está incluído. A forma mais prática de fazer isso é anexar o documento de escopo ao contrato e referenciá-lo explicitamente: “O objeto deste contrato é o desenvolvimento do sistema descrito no Documento de Escopo anexo, identificado como Anexo I e parte integrante deste instrumento.”
O documento de escopo deve listar as funcionalidades incluídas, os sistemas que serão integrados, os perfis de usuário e os critérios de aceite para cada entrega principal. Tudo que está no escopo está incluído no preço. Tudo que não está no escopo é trabalho adicional com orçamento separado.
O prazo total do projeto deve estar especificado, mas o que realmente protege as duas partes é a definição de marcos intermediários de entrega com datas e critérios de aceite para cada um.
Um contrato que diz apenas “entrega em 90 dias” não tem como ser executado com visibilidade real. O desenvolvedor pode trabalhar nos últimos 30 dias e entregar no prazo, e você não vai saber o que estava acontecendo nos 60 anteriores.
Marcos de entrega bem definidos têm três elementos: o que será entregue, quando será entregue e como a entrega será validada. Exemplo: “Marco 1 — Módulo de cadastro de clientes e autenticação: entrega até [data]. Aceite mediante funcionamento correto do fluxo de cadastro, login e recuperação de senha conforme especificado no Anexo I.”
O prazo de cada marco deve ter uma cláusula de aditivo: o que acontece se o marco atrasar? Se o atraso for causado por fatores dentro do controle do desenvolvedor, o contrato deve prever penalidade ou direito de rescisão. Se o atraso for causado por falta de aprovação ou feedback da parte contratante, o prazo é automaticamente estendido pelo tempo equivalente.
O valor total deve estar explícito, assim como a forma de pagamento atrelada aos marcos de entrega.
A estrutura mais comum e mais equilibrada para projetos com escopo definido é:
Essa estrutura protege as duas partes: o desenvolvedor não está trabalhando sem receber, e o contratante não pagou tudo antes de ter resultado.
O contrato deve especificar o prazo para pagamento após a aprovação de cada marco (geralmente cinco a dez dias úteis), a forma de pagamento aceita (transferência bancária, PIX) e o que acontece em caso de atraso no pagamento: juros e multa aplicáveis e prazo a partir do qual o desenvolvedor pode suspender o trabalho.
Essa é a cláusula que mais frequentemente está ausente nos contratos informais e que gera mais conflito quando está ausente.
Mudanças de escopo são qualquer adição, remoção ou alteração nas funcionalidades ou requisitos definidos no Anexo I de escopo. A cláusula deve definir o processo para tratar essas mudanças:
A parte contratante solicita a mudança por escrito (e-mail com confirmação de recebimento é suficiente). O desenvolvedor avalia o impacto no prazo e no custo e responde em até [X] dias úteis com uma proposta de aditivo. A mudança só é implementada após aprovação escrita do aditivo pela parte contratante.
Sem esse processo, qualquer pedido informal de ajuste durante uma reunião pode ser interpretado como dentro do escopo original pelo contratante e como trabalho adicional pelo desenvolvedor. Essa divergência de interpretação é a origem de boa parte dos conflitos de projeto.
Esta cláusula define quem é dono do que foi construído. A regra padrão que protege a parte contratante é clara: após o pagamento integral, todos os direitos sobre o código-fonte, banco de dados, documentação e quaisquer outros ativos desenvolvidos especificamente para o projeto são transferidos integralmente para a parte contratante.
O contrato deve especificar também o que acontece com componentes de terceiros utilizados no desenvolvimento: bibliotecas open source, frameworks, APIs pagas. Esses componentes têm licenças próprias que não são transferidas com o código. O desenvolvedor deve listar os componentes de terceiros utilizados e as licenças correspondentes como parte da documentação de entrega.
Uma situação comum que o contrato deve endereçar: o desenvolvedor reutiliza componentes que desenvolveu para outros projetos anteriores. Isso é prática legítima e pode acelerar o desenvolvimento, mas os dois lados precisam estar cientes de que esses componentes não são de propriedade exclusiva da parte contratante.
Se o projeto envolve informações sensíveis sobre o negócio, como dados de clientes, estratégias comerciais, processos proprietários ou qualquer informação que não deve ser divulgada a terceiros, a cláusula de confidencialidade é obrigatória.
A cláusula deve especificar o que é considerado informação confidencial, por quanto tempo a obrigação de confidencialidade se mantém após o encerramento do contrato (geralmente dois a cinco anos) e quais são as exceções: o desenvolvedor pode mencionar que trabalhou para a empresa como referência profissional, mas não pode revelar detalhes do que foi construído.
Todo software tem bugs que aparecem após o lançamento, em situações que os testes não cobriram. A cláusula de garantia define por quanto tempo o desenvolvedor se compromete a corrigir problemas identificados após a entrega final, sem custo adicional.
O período razoável de garantia para projetos de desenvolvimento customizado é de 30 a 90 dias após a entrega final aprovada. A cláusula deve especificar o que está coberto pela garantia: correção de comportamento que diverge do especificado no escopo. O que não está coberto: novas funcionalidades, mudanças de requisito, problemas causados por alterações feitas pela parte contratante após a entrega.
O contrato deve prever as condições sob as quais cada parte pode encerrá-lo antes da conclusão e o que acontece nesse caso.
Rescisão por parte do contratante: o desenvolvedor recebe pelo trabalho já realizado até a data de rescisão, proporcional ao escopo entregue e aprovado. Se a rescisão acontecer sem justa causa após o início do projeto, pode haver uma cláusula de indenização mínima equivalente a um percentual do valor total.
Rescisão por parte do desenvolvedor: possível em caso de inadimplência da parte contratante (pagamento em atraso além do prazo definido) ou de conduta que inviabilize o trabalho. O contrato deve definir o prazo de aviso prévio e o que acontece com o trabalho em andamento.
Rescisão por justa causa de qualquer parte: descumprimento grave das obrigações contratuais dá direito de rescisão imediata sem penalidade para a parte prejudicada.
Especifique em qual cidade e estado será resolvido qualquer litígio e que a legislação brasileira se aplica. Para contratos entre empresas de estados diferentes, o foro é especialmente importante para definir onde um eventual processo judicial seria conduzido.
Contratos digitais assinados por plataformas como DocuSign, ClickSign ou Assina Bem têm validade legal no Brasil desde a aprovação da MP 2.200-2/2001 e são aceitos em juízo. São mais práticos do que contratos em papel, eliminam o custo de reconhecimento de firma e criam um registro digital com data e hora de assinatura de cada parte.
O processo é simples: você cria o documento, envia para o e-mail do desenvolvedor pela plataforma, e os dois assinam digitalmente. O contrato assinado é arquivado pela plataforma e pode ser acessado por qualquer uma das partes a qualquer momento.
Não assine nenhum contrato em que você não tenha tido pelo menos 24 horas para ler com atenção. Contratos apresentados com urgência para assinatura imediata merecem desconfiança proporcional à pressão.
Sem contrato, qualquer conflito vai ser resolvido com base na interpretação de e-mails, mensagens de WhatsApp e memória de conversas. Esse processo é lento, caro e raramente satisfatório para qualquer uma das partes.
O cenário mais comum sem contrato é o seguinte: o projeto entrega algo diferente do esperado, as duas partes têm razão de acordo com o que cada uma entendeu do acordo verbal, e a resolução envolve uma negociação desgastante sobre o que foi ou não combinado, frequentemente com prejuízo financeiro para pelo menos um dos lados.
O contrato não impede conflitos. Impede que os conflitos não tenham resolução clara.
Antes de chegar ao contrato, o processo começa com o que perguntar antes de assinar qualquer coisa e com como documentar o escopo antes de assinar, porque um contrato bem feito sobre um escopo mal definido ainda vai gerar conflito. E para entender como funciona o processo de contratação na prática, ver como um profissional estruturado trabalha ajuda a calibrar o que esperar de um processo bem conduzido.
Se o projeto envolve contratação PJ, o artigo sobre como funciona a contratação PJ sem vínculo empregatício cobre a estrutura jurídica que o contrato precisa refletir.
Um contrato com desenvolvedor freelancer bem estruturado não é burocracia. É o documento que torna possível uma relação de trabalho clara, onde as duas partes sabem exatamente pelo que estão sendo responsáveis e o que esperar uma da outra.
As cláusulas que cobri aqui, escopo documentado como anexo, marcos de entrega com critérios de aceite, processo de mudança de escopo, propriedade do código, garantia e condições de rescisão, são o mínimo necessário para que o projeto tenha proteção real para os dois lados.
O tempo investido em elaborar esse documento antes do início do trabalho é o investimento que mais diretamente reduz o risco de um projeto de desenvolvimento. E um desenvolvedor sério não vai resistir a assinar um contrato que protege as duas partes. Vai reconhecer nele o sinal de um cliente que sabe o que está fazendo.