Quando trabalhei como freelancer, encontrei muitos casos em que os clientes estavam protegendo suas idéias e código-fonte de seus projetos (como aplicativos da Web) o máximo possível, não importando o quão sem importância, desinteressante e sem originalidade eram os projetos e os conceitos por trás deles. .
Eu já postei uma pergunta sobre como manter as idéias em segredo e recebi muitas ótimas respostas. Agora, minha preocupação é mais com o sigilo do código fonte.
De acordo com minhas observações de:
- As bases de código em que tive que trabalhar durante minha carreira,
- Minha vontade de manter em segredo parte do meu código-fonte e:
- Alguns artigos, como, por exemplo, Resposta aberta a Simon Stuart pelo popular colaborador Programmers.SE Mason Wheeler ,
Concluo que o código fonte é mantido em segredo principalmente por esses motivos:
Como o autor tem vergonha do código de uma qualidade tão ruim ou a empresa teme perder a reputação se alguém vê uma base de código tão ruim, ou que, dada a baixa qualidade da base de código, isso não trará nada útil a ninguém para abrir o código: mesmo se alguém estivesse interessado, dificilmente seria capaz de executar a solução (ou, muitas vezes, até compilar).
Como partes do código são roubadas (principalmente de projetos de código aberto cobertos por uma licença que restringe seu uso em uma determinada situação),
Porque o código depende da segurança pela obscuridade e o autor não se importa com o princípio de Kerckhoffs .
Como o produto é tão frágil que exibir o código causaria muitos danos: se um aplicativo de código-fonte fechado com todos esses vazamentos de segurança suportasse um hacker iniciante, o mesmo aplicativo de código aberto teria chances muito menores, porque mesmo o hacker iniciante só preciso estudar o código para descobrir todos os buracos.
Se não estiver claro do que estou falando, aqui está um exemplo:
if (credentials.password === 'masterPassword12345') { isLoggedIn = true currentUser = credentials.userName } else { authenticate(credentials) }
Porque o autor superestimou o código fonte (e suas próprias habilidades e conhecimentos). Exemplo: acreditar que um algoritmo caseiro relacionado à criptografia (que nunca foi revisado por ninguém) é melhor do que qualquer um conhecido.
Porque o autor acredita que a idéia por trás do código é ótima e que seria roubada.
Por causa da síndrome "Não é perfeito o suficiente". Em outras palavras, o desenvolvedor está disposto a liberar o código fonte para o público quando o código for "bom o suficiente", mas dia após dia ainda há coisas a melhorar, para que o código nunca seja lançado.
Todas essas razões dão uma imagem bastante negativa das pessoas que são contra a publicação do código fonte.
Existem casos válidos para não divulgar ao público o código de alta qualidade que segue o princípio de Kerckhoffs?