Impacto das Patentes de Software no Processo de Desenvolvimento de Software
Sistema actual
- Desenvolver um programa.
- Comercializar o programa.
Sistema proposto (caso seja aprovada a proposta actual de directiva)
- Procurar possíveis patentes que cubram um programa que ainda não fiz mas no qual estou a pensar.
- Tentar negociar as licenças das patentes encontradas (assumindo que não desisti por o meu concorrente ser o detentor da patente).
- Desenvolver o programa.
- Fazer uma nova procura pelas patentes para ver a implementação real do programa não é coberta por mais nenhuma patente.
- Tentar negociar as licenças de patentes encontradas.
- Acomodar mudanças no software para o caso de não conseguir licenças para as patentes.
- Repetir os dois passos anteriores até ter sucesso.
- Comercializar o programa.
(Repetir os passos 4, 5, 6 e 7 para todos os países em que eu queira vender o programa). Qualquer falha nos passos 2 e 5 implicam a não comercialização do programa (legalmente).
A acomodação da mudança num processo de desenvolvimento tem graves reflexos sobre os custos e complexidade do software.
A complexidade do software aumenta os custos, bem como a dificuldade de manutenção e por tanto os custos de manutenção. O problema agrava-se quanto mais tarde no processo de engenharia de software for necessário acomodar a mudança.
O problema da acomodação da mudança e da complexidade do software, pode agravar-se á medida que se entra em outros mercados, pois podem haver em alguns países patentes que não haviam em outros e por tanto requerer ainda mais mudanças no software.
Durante todo o processo de desenvolvimento pode surgir o problema de ter uma equipa de desenvolvimento sem fazer nada (e no entanto a ser paga) à espera da resolução de problemas legais (que são resolvidos por advogados e outro pessoal que também têm que ser pagos), aumentando assim o periodo de desenvolvimento e os custos de desenvolvimento.
Em qualquer caso nunca há a garantia de conseguir obter as licenças necessárias para cumprir a lei. Tornando o processo de desenvolvimento de software algo demasiado arriscado para ser realizado por empresas que não tenham a garantia financeira e a capacidade negocial necessária.