Contrato de desenvolvimento de software
O Contrato de Desenvolvimento de Software é um dos principais instrumentos na relação entre empresas ou startups e desenvolvedores ou software houses.

O que você encontrará nesse guia:
Clique no índice para navegar pelo conteúdo
Questões essenciais do contrato de desenvolvimento de software
O Contrato de Desenvolvimento de Software é um dos principais instrumentos na relação entre empresas ou startups e desenvolvedores ou software houses.
A digitalização é fato real nos mais diferentes mercados e alcança os mais diferentes modelos de negócios. Mesmo assim, muitas empresas que almejam se inserir no mundo digital não pretendem ter em sua equipe um núcleo de desenvolvimento de software próprio.
Em função disto, a contratação de empresas terceiras, também chamadas de “Software House“, ou profissionais para o desenvolvimento de softwares é uma realidade para muitos negócios no Brasil.
Porém, este contrato pode ser feito de muitas formas diferentes, e é essencial que um bom contrato disponha sobre as expectativas das partes e esclareça os termos da relação, garantindo segurança jurídica ao processo como um todo.
A fim de evitar dor de cabeça ao longo do desenvolvimento e, também, a não entrega do software de acordo com o prometido ou do não pagamento pelo serviço solicitado, indica-se que as partes busquem a ajuda de um advogado especialista para ajudar na construção e elaboração do contrato de desenvolvimento de software.
Existe uma série de cláusulas importantes e boas práticas que ajudam na elaboração do contrato de desenvolvimento de software e visam resguardar os direitos e possibilitar garantias para ambas as partes da relação.
A Request for Proposal (RFP) para desenvolvimento de software
O Request for Proposal (RFP) é um documento que introduz inicialmente as necessidades e os objetivos do contratante.
Ele serve como ponte para que o desenvolvedor ou software house, antes mesmo da definição do contrato, possa apresentar ao contratante suas propostas e seus planos.
O documento não necessita ser complexo, porém deve ser completo nas suas informações.
Tem que conter essencialmente quem é o contratante, qual o ramo em que atua, identidade da empresa, assim como um descritivo dos objetivos gerais do projeto, funcionalidades que precisa ter, resultados esperados, prazos, previsões de valor que espera gastar, entre outras.
É a partir do RFP que as partes verificam se o negócio vale a pena, e com ela o contratante e os desenvolvedores chegam na fase de montar o contrato de desenvolvimento com expectativas minimamente alinhadas.
Alinhamento dos objetivos para elaboração do contrato
Esclarecer os objetivos das partes em relação ao contrato e ao software a ser desenvolvido é a primeira coisa a ser feita para um bom contrato de desenvolvimento de software.
Com esse alinhamento, a modalidade de contratação e o escopo do trabalho a ser entregue são questões que restam esclarecidas.
Em relação a forma de contratação, o contrato de desenvolvimento de software poderá ser feito por hora ou em como um contrato de escopo fechado.
A contratação por hora apresenta as características:
- Valor/hora fixo para o trabalho dos desenvolvedores.
- Maior flexibilidade em relação às necessidades do projeto, podendo ocorrer direcionamentos quanto ao produto final ao longo do processo.
- Exige um acompanhamento de proximidade de resultados e de metas.
- Atrasos no projeto podem elevar o custo final, trazendo indisposições para as partes
Os contratos de escopo fechado, tem como características:
- Definição do resultado final esperado já no início do projeto
- Maior segurança para o contratante, já que não abre oportunidade para aumento de custos no caso de atrasos ou imprevistos
- Menor flexibilidade em relação às necessidades do projeto, ligando as partes aos termos já estabelecidos.
O software como produto gera uma relação mais rápida e direta entre as partes. É um processo simplificado que finda com a entrega do software que condiz com as expectativas do projeto.
Já o software como serviço (SaaS) disponibiliza um serviço constante, no qual a relação entre o contratante e os desenvolvedores se mantém após a entrega do software. Isso é seguido de planos de desenvolvimento e melhorias constantes no produto entregue.
A prática mencionada possibilita um produto em constante atualização e evita que grandes investimentos necessitem ser feitos para renovar o software todo de uma vez.
Além disso, o contrato tem que deixar claros os objetivos, estipulando prazos, funcionalidades desejadas, com uma descrição completa do produto final que se espera.
O texto do contrato deve apresentar considerações iniciais que permitam, por exemplo, que o juiz compreenda a intenção das partes com o processo, para além das cláusulas específicas que regulam os detalhes do contrato.
Cláusula de proteção da propriedade intelectual
A Lei de Software (lei n. 9.609/1998) estipula que, exceto disposição por escrito afirmando o contrário, os direitos autorais sobre o desenvolvimento do software são de propriedade da contratante.
Da mesma forma, é importante que o contrato elucide quem detém a propriedade intelectual dos resultados do contrato, expondo sobre a capacidade de licenciar, adaptar ou vender o software.
A fim de proteger o contratante no caso de, por exemplo, a contratada sair do mercado ou deixar de prestar serviços, uma opção é a adoção de uma cláusula de escrow.
A referida cláusula esclarece que o código-fonte e a sua documentação técnica estarão sob a guarda de um terceiro de boa-fé. Isso possibilita que o contratante siga usufruindo do produto independente de quaisquer fatos que possam acontecer em relação aos desenvolvedores.
Nesta mesma linha, é positiva a inserção de cláusula obrigando que os desenvolvedores mantenham a documentação do software atualizada.
Cláusula de segurança da informação
É fundamental que o contrato estabeleça a observação de normas de segurança da informação, assim como códigos de conduta.
São ações que visam prevenir qualquer possível comprometimento de ativos de informação do contratante, a exemplo da perda ou modificações de dados não autorizados.
Da mesma forma, instituem formas de acompanhar, prevenir e auditar quaisquer problemas que possam ocorrer.
Prazos e cronogramas de trabalho
Não importa o modelo de contratação escolhido, é fundamental a existência de cronogramas de trabalhos claros que permitam a análise do estágio do desenvolvimento.
Eles também antecipam o diagnóstico de eventuais atrasos e também, caso necessário, apontam o inadimplemento contratual da parte que não está cumprindo os prazos acordados.
Uma opção é a de incluir multas no contrato relacionadas ao descumprimento dos prazos, estabelecendo limites máximos que, no caso de descumprimento, justifiquem além da multa a rescisão do contrato.
Cláusulas de substituição de profissionais
Quando se contrata toda uma equipe é fundamental estabelecer cláusulas que evitem que problemas com um determinado profissional minem o contrato como um todo.
As hipóteses e o procedimento que são necessários para permitir a substituição de profissional na equipe deve estar clara no contrato. Isso é preciso a fim de evitar desgastes entre as partes caso problemas relacionados a estas situações ocorram.
O contrato deve prever situações como atrasos decorrentes de substituição de pessoal ou custos de retrabalho e esforço adicional.
Cláusulas de obrigação de confidencialidade
A cláusula de sigilo e confidencialidade é fundamental para amparar o contratante, que deve oferecer constantes e extensas informações sobre seu negócio, assim como possíveis informações a respeito de clientes aos desenvolvedores ao longo do processo.
A referida cláusula deve até mesmo estar disposta já no RTF, uma vez que muitas vezes este documento já traz informações confidenciais ou de grande valor para o contratante e para terceiros.
Cláusulas de especificação de manutenção e de Service Level Agreement (SLA)
A fim de evitar problemas oriundos de falhas de serviço, dois pontos fundamentais que precisam estar presentes no contrato são a especificação da manutenção contemplada pelo contrato e o Service Level Agreement (SLA).
O contrato necessita esclarecer se a manutenção do software será corretiva, preventiva, adaptativa, evolutiva, entre outras. Também precisa abarcar os horários de atendimento e prazos para respostas e manutenção.
O Service Level Agreement (SLA) é um instrumento de muita utilidade para ambas as partes do contrato. Ele traz os níveis de atendimento e de funcionamento que devem ser esperados do produto entregue, normalmente contendo informações como:
- porcentagem máxima de tempo (mensal) esperado que o produto fique fora do ar no caso de problemas.
- prazos para resposta e solução de problemas conforme o tipo e a gravidade do problema.
- multas ou descontos em razão do não atingimento dos padrões dispostos no SLA.
Cláusula de proteção de dados pessoais em atenção à LGPD e GDPR
Ao longo do processo de desenvolvimento de software é parte fundamental do processo o compartilhamento de informações destacadas do contratante para os desenvolvedores.
Isso acontece para que o produto final esteja de acordo com as necessidades deste. Dessa forma, é fundamental que tais compartilhamentos estejam em conformidade com a LGPD e GDPR, conforme o caso.
Ter uma cláusula de compromisso das partes em observar a LGPD, assim como outras leis vigentes no território alcançado pelo tratamento de dados do contratante é cada vez mais importante.
É fundamental que no contrato fique bem claro quem terá o papel de controlador dos dados pessoais e quem será o operador. Da mesma forma, deve incluir o cumprimento das exigências legais sobre a base legal que justifica o compartilhamento dos dados.
Também é preciso que o contrato respeite os princípios da proteção de dados pessoais, como o princípio da finalidade e o da necessidade, que limitam o compartilhamento dos dados ao mínimo necessário para que seja atingida a finalidade proposta no contrato.
A assessoria jurídica de um advogado especialista em proteção de dados é sugerida para aplicação da metodologia Privacy by Design, ou ainda, Privacidade desde a Concepção do software, destacada, pela LGPD, como uma boa prática a ser adotada pelas empresas.
Melhores práticas
Para conseguir um resultado ótimo tanto no papel quanto na prática, é fundamental que o contrato esteja conforme as necessidades de ambas as partes envolvidas.
Se o contratante estabelecer o contrato em conjunto com o desenvolvedor ou software house, será maior o alinhamento das partes sobre suas respectivas responsabilidades, objetivos, prazos, assim como será possível que se adiantem e evitem problemas antes mesmo de estes ocorrerem.
Se forem mais alinhadas às expectativas e definidas as responsabilidades, menor será o risco de surgimento de problemas ou indisposições entre as partes, e maior a chance de qualquer problema eventual ser solucionado amigavelmente entre contratante e desenvolvedor, conforme as discussões tidas no momento de redigir o contrato conjuntamente.
Perguntas frequentes
O que compreende um contrato de software?
É necessário citar o nome completo das partes, inscrição no Cadastro Nacional de Pessoa Jurídica (CNPJ), endereço, entre outras informações importantes. Na sequência, deve ser citado o objetivo do contrato, com a descrição do produto que está sendo vendido.
O que é um contrato de software?
O contrato de desenvolvimento de software é um dos importantes documentos na relação entre empresas ou startups e desenvolvedores de software ou software houses. A digitalização é uma realidade nos mais diferentes mercados e abarca os mais diferentes modelos de negócios.
O que é desenvolvimento de software?
Desenvolvimento de softwares é a ação de criar programas de computação, executada por um desenvolvedor ou grupo de desenvolvedores.
Qual é o objetivo do desenvolvimento de software?
O processo de desenvolvimento de softwares é uma prática que exige muita organização e planejamento. Se o objetivo é oferecer um produto de qualidade sem ter gastos exorbitantes em sua criação, é fundamental definir estratégias para otimizar o processo do início ao fim.
Qual é o papel do desenvolvedor de software?
O desenvolvedor de software (ou programador) é o responsável pela programação, que é o processo de escrita, teste e manutenção de um programa de computador. Usa como subsídio o levantamento de requisitos e as análises feitas pelo analista de sistemas.
Quais são as etapas de um desenvolvimento de software?
- Fase de diagnóstico
- Concepção
- Levantamento e análise de requisitos
- Fase de desenvolvimento
- Etapa de manutenção.
Como é o processo de desenvolvimento de software?
O desenvolvimento de software é um trabalho detalhado em etapas, com a proposta de tornar o trabalho mais fluido e organizado. Ao aplicar essa técnica se garante o entendimento do que o cliente deseja, da garantia de que isso estará no projeto e também detalhes como o custo do software.
Quais as principais atividades do processo de desenvolvimento de software?
São muitos os processos de desenvolvimento de software, porém há algumas atividades básicas comuns à grande parte dos processos existentes.
O que são metodologias de desenvolvimento de software?
As metodologias de desenvolvimento de software são um conjunto de abordagens que podem ser usadas para a criação de sistemas de processamento de dados. O sucesso de qualquer projeto relacionado à elaboração de software está diretamente ligado à escolha da metodologia mais adequada.