O contrato de desenvolvimento de software sob medida é uma modalidade contratual que exige especial atenção jurídica, dada a complexidade técnica do objeto, a dificuldade de prever todas as contingências e a importância estratégica do software para o contratante. A adequada estruturação desse contrato é fundamental para prevenir litígios e assegurar o sucesso do projeto.
Definição de Escopo e Especificações
A definição do escopo é o elemento mais crítico do contrato. Especificações vagas ou incompletas são a principal causa de disputas em projetos de desenvolvimento de software. Recomenda-se a elaboração de um documento de requisitos detalhado, que pode ser anexo ao contrato ou desenvolvido na fase inicial do projeto como entregável contratual.
Em projetos que utilizam metodologias ágeis, o escopo pode ser definido de forma iterativa. Nesse caso, o contrato deve prever mecanismos claros para aprovação de entregas parciais, gestão de mudanças e critérios de aceitação.
Propriedade Intelectual
A questão central em contratos de desenvolvimento é a titularidade do código-fonte produzido. A Lei de Software (Lei nº 9.609/98) e a Lei de Direitos Autorais (Lei nº 9.610/98) estabelecem que, salvo estipulação em contrário, os direitos sobre software desenvolvido em relação de emprego pertencem ao empregador. Contudo, em relações contratuais de prestação de serviço, a situação é diversa e deve ser expressamente regulada.
O contrato deve definir inequivocamente: se o código-fonte será de propriedade exclusiva do contratante; se o desenvolvedor retém direitos de reutilização de componentes genéricos; se bibliotecas de terceiros e código open source estão sendo utilizados, com identificação das respectivas licenças; e a obrigação de entrega do código-fonte e documentação técnica.
Metodologia e Entregas
O contrato deve especificar a metodologia de desenvolvimento adotada (waterfall, ágil, híbrida), o cronograma de entregas, os marcos de pagamento e os critérios de aceitação. Em projetos ágeis, é comum a contratação por sprints, com entregas incrementais e pagamentos vinculados à aceitação de cada iteração.
Garantia e Manutenção
Deve-se distinguir entre o período de garantia (correção de defeitos do desenvolvimento original) e os serviços de manutenção evolutiva (novas funcionalidades e adaptações). O período de garantia é uma obrigação típica do desenvolvedor, enquanto a manutenção evolutiva é objeto de contratação adicional.
Confidencialidade e Não Concorrência
O desenvolvedor terá acesso a informações estratégicas do contratante durante o projeto. Cláusulas de confidencialidade robustas são essenciais, assim como eventuais restrições de não concorrência, que devem ser limitadas em escopo e duração para serem válidas.
A estruturação cuidadosa desses elementos contratuais é investimento que se justifica pela prevenção de litígios e pela proteção dos interesses de ambas as partes ao longo do projeto.
Alessandro Casoretti Lavorante
Prof. Me. pela USP
Advogado especializado em Direito Digital, IA e Startups. Mestre em Direito Civil pela USP. Autor do livro "Responsabilidade Civil por Inteligência Artificial".