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?
fonte
Respostas:
Algumas pessoas e a maioria das empresas têm uma estranha percepção sobre o valor do código.
"Gastamos US $ 100.000 nesse projeto, portanto, o código deve valer a pena" e sentimos a necessidade de protegê-lo.
Na realidade, a maioria dos códigos é mais parecida com tinta. Você gasta US $ 100 em tinta e US $ 200 para aplicá-lo em suas paredes. Mas agora a tinta não vale nada, você não pode vendê-la, ninguém a quer, e mesmo que o fizessem, você não pode tirá-la da parede e colocá-la na parede de outra pessoa.
Pode aumentar o valor do edifício, mas você não pode perceber isso sem vender o edifício.
Você pode "roubar" a base de código da Amazônia (a maioria está disponível gratuitamente em vários projetos de código aberto) e criar um site da Ammassons, mas você não assumirá muitos negócios da Amazônia.
O código é uma parte necessária de qualquer infraestrutura empresarial moderna, mas só tem valor como parte de um processo e cultura, por si só não vale nada.
Eu acrescentaria que há algumas situações em que o código é vital para os negócios e seria valioso o suficiente para qualquer concorrente para que fosse mantido em segredo:
fonte
Porque era difícil escrever e testar . E design. E especifique. E depurar. E ISO 9000. E documento. E controle de versão. E tire o chefe de cabelos pontudos do caminho. E o que faz valer a pena o trabalho de um engenheiro de software.
E você não quer que seus concorrentes copiem e colem seu código-fonte em vez de colocar tanto tempo e dinheiro quanto você em seus produtos.
fonte
A resposta mais óbvia de todas, eu acho, é que o software é, para muitas empresas, uma parte substancial do valor que a entidade corporativa agrega aos clientes. Portanto, se alguém pudesse simplesmente modificar e recompilar o código ou reutilizar partes valiosas dele, poderia oferecer o mesmo serviço ou valor. Isso prejudicaria os interesses competitivos da entidade corporativa e possivelmente causaria a perda de dinheiro.
fonte
Foi gasto dinheiro para resolver um problema ou um conjunto específico de problemas. Se a concorrência obtiver a resposta para esses problemas de forma "gratuita", isso colocará a empresa que resolveu o problema em desvantagem financeira - especialmente se seria possível para uma empresa maior "chegar ao mercado" antes da empresa criadora porque infraestrutura instalada ou se um concorrente gasta o dinheiro que gastaria no desenvolvimento de marketing.
Além disso, às vezes é possível ter uma idéia das políticas e processos de uma empresa observando essas coisas. Novamente, essas informações podem ser usadas como uma vantagem estratégica. Geralmente, esse é o problema maior ... o código revela o funcionamento interno da empresa.
fonte
Você está certo, a maioria das empresas não precisa se esforçar muito para manter seu código secreto, porque não serve para mais ninguém. Muitas soluções internas estão intimamente ligadas a outros aplicativos e sistemas como um tipo de solução ERP personalizada.
Para algumas empresas, o valor do software faz parte do valor da empresa. Uma base de código ruim que funciona para seus propósitos tem valor e não será motivo de preocupação para um comprador não técnico. Ninguém quer comprar uma empresa com amarras. O comprador quer uma resposta detalhada sobre quem é o proprietário do código e está livre para fazer o que bem entender? Quem sabe, a nova empresa pode querer pegar um aplicativo interno e vendê-lo a outras pessoas do setor e alavancar sua compra. Este grupo não valorizará uma base de código inválida tão alta quanto um aplicativo sólido. Saber que o código foi mantido em segredo (embora isso possa ser uma ilusão) e que não há licenças de código aberto para contornar agrega valor à venda do negócio.
fonte
Você não distribui o código-fonte porque, quando seu cliente precisar de modificações em um software que você construiu, ele precisará acompanhá-lo e você poderá cobrar um prêmio.
fonte