Ronaldo
Ronaldo Desenvolvedor, pai, cidadão do mundo.

Por que registrar código-fonte não faz sentido

Por que registrar código-fonte não faz sentido

De tempos em tempos eu vejo alguém defendendo a ideia de realizar registro de código-fonte. Os argumentos legais são empolgantes e bem fundamentados. Porém, registrar código-fonte não é uma boa ideia, principalmente do ponto-de-vista financeiro. É um investimento que, no fim das contas, não vale a pena. Trata-se de uma prática iniciada na época em que o código era considerado um ativo importante para as empresas.

Código-fonte é ativo, mas não o mais importante

O código-fonte é um ativo sim. Afinal, você investiu tempo e dinheiro para construí-lo. Porém, não é o ativo mais importante. O código-fonte é a expressão do estudo e conhecimento que você precisou adquirir para resolver determinado problema de forma automatizada.

O fato é que a engenharia reversa do seu código-fonte, ou seja, partir do código para chegar ao conhecimento, é tão complexa que torna-se economicamente inviável tentar obter o conhecimento através da solução de um problema de domínio específico.

O que quero dizer é que o ativo mais importante que você tem não é o código-fonte, mas o conhecimento e a técnica que você precisou aprender para escrever o código-fonte. Partir do código-fonte para chegar ao conhecimento, como disse, é economicamente inviável. Muitas vezes, passou-se por um processo longo, anos, para chegar àquele código-fonte — normalmente este é o argumento usado por quem defende o registro do código-fonte.

Porém, se alguém se apropriar do seu código-fonte, ele será capaz de mantê-lo? Provavelmente não. E é na manutenção do código-fonte que a coisa pega.

Quem mantém o buteco funcionando?

Somente quem detém o conhecimento é capaz de manter o barco andando. Assim, ser dono do código-fonte não quer dizer muita coisa. A possibilidade de quebrar completamente o que foi escrito é tão maior quanto maior é o desconhecimento da matéria sobre a qual o código-fonte foi escrito. Quer um exemplo?

Imagine que alguém desenvolveu um módulo de emissão de notas fiscais. Aí você coloca para dar manutenção neste código alguém que não faz a mais remota ideia do que é uma nota fiscal ou que não tem nenhum conhecimento do funcionamento tributário brasileiro. Qual é o resultado da implementação de uma nova feature ou do conserto de bugs neste código? Bug! Provavelmente o código final não será capaz de cumprir com as leis e o produto final será algo próximo do inútil para o cliente.

Conhecimento: o seu ativo mais importante

O seu ativo mais importante é o conhecimento e não o código-fonte. Tenha em mente que o código-fonte é a expressão do seu conhecimento. Assim, alguém ter simplesmente o seu código-fonte não quer dizer que ele tem o conhecimento para mantê-lo.

Hoje em dia o alvo da espionagem industrial não são os códigos escritos em determinada linguagem, mas os algoritmos que foram usados para resolver determinados problemas. Os algoritmos, estes sim, são o conhecimento que precisa ser protegido e não o seu código. Os documentos que você publicou internamente na sua empresa explicando cada passo de determinado processo são muito mais importantes do que aquele código C++ que implementa uma das infinitas possíveis soluções para o problema.

O código é dinâmico

O código-fonte, ao contrário do que se imagina, não é estático, mas dinâmico. Está sempre mudando. Afinal, você precisa consertar defeitos, melhorar performance, adicionar mais características. A ideia do registro do código parte da suposição de que o código, uma vez feito, não é mais alterado.

O primeiro refactoring do seu código pode mudar substancialmente a estrutura a ponto do mesmo ficar praticamente irreconhecível se comparado com a versão anterior. Ou seja, será necessário um adendo ao registro do código, o que financeiramente pode ser algo proibitivo.

A questão não é legal

A minha ótica aqui não é sobre a legalidade do registro do código, mas sobre a viabilidade financeira. O código muda tanto que o registro torna-se um custo elevado demais para o ciclo de vida de um software.

Essa ideia de que o ativo não é o código já é amplamente conhecida das grandes empresas. Empresas como a Apple, por exemplo, reconhecem isso. Por este motivo o Swift, a novíssima linguagem de programação da Apple, teve seu código recentemente publicado para quem quiser baixar, alterar e aprender com ele.

A Microsoft, também, tornou os códigos do compilador C# e do .NET Framework abertos. Você pode baixar o código e fazer o que bem entender. Sim, há licenças de uso que ajustam o uso do código. No entanto, é importante observar que o código, em si, não é o ativo mais importante, nem é mais o segredo industrial.

O segredo industrial é o algoritmo, a técnica que levou você a escrever determinado código. Se um dia você quiser patentear algo ou registrar algo, registre o algoritmo e não o seu código-fonte.