O Contrato de Desenvolvimento de Software é um dos principais documentos na relação entre empresas ou startups e desenvolvedores ou software houses. A digitalização já uma realidade nos mais diferentes mercados e abarca os mais diferentes modelos de negócios. Ainda assim, muitas empresas que desejam adentrar o mundo digital não pretendem ter em sua equipe um núcleo de desenvolvimento de software próprio.
A partir disto, a contratação de empresas terceiras, também chamadas de “Software House“, ou profissionais para o desenvolvimento de softwares passa a ser uma realidade para muitos negócios no Brasil. Ainda assim, este tipo de contrato pode ser efetuado de diversas maneiras diferentes, e é importante que um bom contrato alinhe as expectativas das partes e esclareça os termos da relação, trazendo maior segurança jurídica ao processo como um todo.
Para evitar dor de cabeça ao longo do desenvolvimento e, até mesmo, a não entrega do software conforme o prometido ou do não pagamento pelo serviço solicitado, sugere-se que as partes busquem o auxílio de um advgodado especialista para auxiliar na construção e elaboração do contrato de desenvolvimento de software.
A seguir, destacamos uma série de cláusulas essenciais e boas práticas que auxiliam na elaboração do contrato de desenvolvimento de software e objetivam resguardar os direitos e viabilizar garantias para ambas as partes da relação.
O que é Request for Proposal (RFP) para desenvolvimento de Software?
A Request for Proposal (RFP) consiste de um documento que apresenta inicialmente as necessidades e os objetivos do contratante, e 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 para colocar em prática os objetivos deste, demonstrando de que maneiras pode suprir as necessidades do cliente com seu produto final.
Este documento não precisa ser complexo, mas deve ser completo nas suas informações. Deve conter minimamente quem é o contratante, qual o ramo em que atua, identidade da empresa, bem como um descritivo dos objetivos gerais do projeto, funcionalidades que precisa ter, resultados esperados, prazos, previsões de valor que espera gastar, etc.
É a partir do RFP que as partes analisam se o negócio vale a pena, e com ela o contratante e os desenvolvedores já chegam na fase de construir o contrato de desenvolvimento com expectativas minimamente alinhadas.
Alinhamento dos objetivos para elaboração do Contrato de Desenvolvimento de Software
A primeira prática essencial para um bom contrato de desenvolvimento de software consiste no esclarecimento dos objetivos das partes para com o contrato e com o software a ser desenvolvido.
Dentro deste alinhamento, algumas das questões a serem esclarecidas são a modalidade de contratação e o escopo do trabalho a ser entregue.
Quanto à modalidade de contratação, o contrato de desenvolvimento de software pode ser feito em um contrato por hora ou em um contrato de escopo fechado (contrato por projeto).
A contratação por hora tem como características:
- Valor/hora fixo para o trabalho dos desenvolvedores
- Maior flexibilidade quanto às necessidades do projeto, podendo ocorrer direcionamentos quanto ao produto final ao longo do processo
- Exige um acompanhamento próximo de resultados e de metas
- Atrasos no projeto podem aumentar o custo final, trazendo indisposições para as partes
Os contratos de escopo fechado, por outro lado, tem como características:
- Definição do resultado final esperado já no início do projeto
- Maior segurança para o contratante, uma vez que não abre brecha para aumento de custos no caso de atrasos ou imprevistos
- Menor flexibilidade quanto às necessidades do projeto, prendendo as partes aos termos já estabelecidos.
Outra distinção importante de ser feita nesta etapa consiste da escolha entre o contrato de software como produto ou software como serviço. Enquanto o software como produto costuma gerar uma relação mais rápida e direta entre as partes, em um processo simplificado que termina com a entrega do software condizente com as expectativas do projeto, o software como serviço (SaaS) oferece um serviço constante, no qual a relação entre o contratante e os desenvolvedores se mantém após a entrega do software, seguindo planos de desenvolvimento e melhorias constantes no produto entregado. Esta prática permite um produto constantemente atualizado e evita que grandes investimentos precisem ser feitos para renovar o software todo de uma vez.
Além destes pontos, o contrato deve deixar claros os objetivos do contrato, prevendo prazos, funcionalidades almejadas, com uma descrição completa do produto final que se espera.
Pensando no texto do contrato, é importante que este apresente considerações iniciais que permitam, por exemplo, ao juiz entender a intenção das partes com o processo, para além das cláusulas específicas que regem os detalhes do contrato.
Contrato de Desenvolvimento de Software: Cláusula de Proteção da Propriedade Intelectual
A Lei de Software brasileira (lei n. 9.609/1998) define que, salvo disposição por escrito afirmando o contrário, os direitos autorais sobre o desenvolvimento do software são de propriedade da contratante.
Ainda assim, é importante que o contrato esclareça quem detém a propriedade intelectual dos resultados do contrato, dispondo sobre a capacidade de licenciar, adaptar ou vender o software.
Para proteger o contratante no caso de, por exemplo, a contratada sair do mercado ou deixar de prestar serviços, uma alternativa interessante é a adoção de uma cláusula de escrow, que dispõe que o código-fonte e a sua documentação técnica estarão sob a guarda de um terceiro de boa-fé, permitindo que o contratante continue usufruindo do produto independente de quaisquer fatos que possam vir a ocorrer em relação aos desenvolvedores. Neste mesmo sentido, é positiva a inclusão de cláusula obrigando que os desenvolvedores mantenham a documentação do software atualizada.
Contrato de Desenvolvimento de Software: Cláusula de Segurança da Informação
É importante que o contrato estipule a observação de normas de segurança da informação bem como códigos de conduta para prevenir qualquer possível comprometimento de ativos de informação do contratante, como a perda ou modificação de dados não autorizados, instituindo maneiras de acompanhar, previnir e auditar quaisquer problemas que possam vir a ocorrer.
Contrato de Desenvolvimento de Software: Prazos e cronogramas de trabalho
Independente do modelo de contratação escolhido, é essencial que existam cronogramas de trabalho claros que possibilitem a verificação do estágio do desenvolvimento, bem como o diagnóstico de eventuais atrasos e até mesmo, se necessário, apontar o inadimplemento contratual da parte que não está cumprindo os prazos acordados.
Uma possibilidade é a de incluir multas no contrato atreladas ao descumprimento dos prazos, estipulando limites máximos que, caso descumpridos, justifiquem além da multa a rescisão do contrato.
Contrato de Desenvolvimento de Software: Cláusulas de substituição de profissionais
No caso em que se contrata toda uma equipe, é importante prever cláusulas que evitem que problemas com um profissional específico minem o contrato como um todo.
As hipóteses e o procedimento necessário para permitir a substituição de profissional na equipe deve estar clara no contrato, para evitar desgastes entre as partes caso problemas relacionados a estas situações ocorram. O contrato precisa prever situações como atrasos decorrentes de substituição de pessoal ou custos de retrabalho e esforço adicional.
Contrato de Desenvolvimento de Software: Cláusulas de obrigação de Confidencialidade
A cláusula de sigilo e confidencialidade é essencial para proteger o contratante, que deve fornecer constantes e extensas informações sobre seu negócio, bem como possíveis informações sobre clientes, etc. aos desenvolvedores ao longo do processo.
Esta cláusula deve até mesmo estar disposta já no RTF, já que muitas vezes este documento já apresenta informações confidenciais ou de grande valor para o contratante e para terceiros.
Contrato de Desenvolvimento de Software: Cláusulas de especificação de manutenção e de Service Level Agreement (SLA)
Para evitar problemas decorrentes de falhas de serviço, dois pontos essencias de estarem presentes no contrato são a especificação da manutenção contemplada pelo contrato e o Service Level Agreement (SLA).
O contrato precisa especificar se a manutenção do software será corretiva, preventiva, adaptativa, evolutiva, etc. Também deve abraanger os horários de atendimento e prazos para respostas e manutenção.
Neste sentido, o Service Level Agreement (SLA) é um instrumento muito útil para ambas as partes do contrato. Este instrumento apresenta os níveis de atendimento e de funcionamento que devem ser esperados do produto entregue, geralmente contendo informações como:
- porcentagem máxima de tempo (mensal) que se pode esperar que o produto fique fora do ar no caso de problemas;
- prazos para resposta e solução de problemas de acordo com o tipo e a gravidade do problema;
- multas ou descontos decorrentes do não atingimento dos padrões dispostos no SLA.
Contrato de Desenvolvimento de Software: Cláusula de Proteção de Dados Pessoais em atenção à LGPD e GDPR
Como já comentamos, durante o processo de desenvolvimento de software é parte essencial do processo o compartilhamento de informações relevantes do contratante para os desenvolvedores para que o produto final esteja de acordo com as necessidades deste. Assim, é essencial que tais compartilhamentos estejam de acordo com a LGPD e GDPR, conforme o caso.
Uma cláusula afirmando o compromisso de ambas as partes do contrato de observar e estar de acordo com a Lei Geral de Proteção de Dados (Lei n. 13.709/2018), bem como de outras leis vigentes no território abarcado pelo tratamento de dados do contratante, se tornam cada vez mais importantes nos contratos que dispõem sobre qualquer tipo de compartilhamento de dados.
É importante que no contrato fique claro quem terá o papel de controlador dos dados pessoais e quem será operador, bem como incluir o cumprimento das exigências legais sobre a base legal que justifica o compartilhamento dos dados, e garantir 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 neste momento é 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 um Contrato de Desenvolvimento de Software
Para obter um resultado ótimo tanto no papel quanto na prática, é importante que o contrato esteja de acordo com as necessidades de ambas as partes envolvidas. Desenvolvendo o contrato de desenvolvimento de software à quatro mãos, ou seja, o contratante desenvolvendo o contrato em conjunto com o desenvolvedor ou software house, é maior o alinhamento das partes sobre suas respectivas responsabilidades, objetivos, prazos, bem como já permite que se adiantem e evitem problemas antes mesmo de estes ocorrerem.
Quanto mais alinhadas as expectativas e definidas as responsabilidades, menor é o risco de que surjam problemas ou indisposições entre as partes, e maior a chance de qualquer problema eventual ser solucionado amigavelmente entre contratante e desenvolvedor, de acordo com as discussões tidas no momento de redigir o contrato conjuntamente.
Referências – Contrato de Desenvolvimento de Software
PINHEIRO, Patricia Peck , WEBER, Sandra Tomazi e NETO, Antonio Alves de Oliveira. Fundamentos dos Negócios e Contratos Digitais. Thomson Reuters: Revista dos Tribunais. 2019.
Este artigo “Contrato de Desenvolvimento de Software: Conheça as melhores práticas e cláusulas essenciais para sua elaboração“ foi escrito Por Rodrigo Glasmeyer e revisado por MSc. Graziela Brandão.