Esta é uma das situações em que você está procurando uma solução técnica para um problema social .
Um problema social deve exigir uma solução social, que, nesse caso, leva dois formulários complementares e uma solução organizacional adicional que pode ajudar:
-
Confiança. Se você não confia em desenvolvedores, não os contrate. Trabalhar com pessoas em quem você não confia é sinônimo de falha. Relações baseadas em desconfiança exigem muito formalismo, o que pode afetar severamente não apenas a produtividade de seus funcionários, mas também o número de pessoas prontas para trabalhar com você. As chances são de que os melhores desenvolvedores evitem sua empresa a todo custo.
-
NDA. Confiar em alguém não significa que você não deva tomar precauções legais. Essas precauções podem assumir a forma de um contrato ou uma cláusula NDA com consequências graves para o funcionário em caso de divulgação.
Quão severas são as conseqüências depende de quem você é. Organizações governamentais, terroristas ou máfia podem permitir alguns impedimentos. As empresas ordinárias podem ser limitadas, por lei, apenas às financeiras.
-
Fatiar. Confiança e contratos são um bom começo, mas podemos fazer melhor. Se a parte sensível da base de código puder ser dividida para que duas ou mais partes sejam necessárias para o produto funcionar, certifique-se de que o desenvolvedor do departamento 1 nunca veja o código-fonte desenvolvido no departamento 2 e vice-versa.
As pessoas de um departamento não devem poder conhecer pessoas de outros departamentos e, idealmente, não devem nem conseguir adivinhar o que os outros departamentos estão fazendo nem quantos departamentos há. Cada pessoa conhece apenas uma pequena parte, o que não é suficiente para ter uma imagem completa (e reconstruir um produto inteiro fora da organização).
Essas foram medidas sociais e organizacionais.
Agora, falando tecnicamente , não há nada que você possa fazer.
Você pode tentar:
-
Força os desenvolvedores a trabalhar em uma sala fechada em uma máquina que não esteja conectada à internet e não tenha portas USB.
-
Instale câmeras que monitoram tudo o que acontece na sala, com vários agentes de segurança observando constantemente os desenvolvedores trabalhando.
-
Pesquise os desenvolvedores a cada vez que ele sai da sala para ter certeza de que ele não tem nenhum dispositivo eletrônico que possa conter o código.
-
Exigir que todo desenvolvedor tenha um monitor de tornozelo. O dispositivo escutará o que eles dizem, registrará sua posição e tentará detectar qualquer dispositivo eletrônico nas proximidades. Se o desenvolvedor estiver perto de um dispositivo que não esteja identificado e não tiver seu software de rastreamento instalado, os investigadores e hackers privados poderão tentar verificar se o desenvolvedor não estava usando o dispositivo para vazar informações.
-
Proibir os desenvolvedores de deixar seus edifícios, a menos que estejam sob vigilância pesada, e interagir de qualquer maneira com o mundo exterior.
Algumas ou todas essas medidas são ilegais em muitos países (a menos que você represente algumas agências governamentais ), mas a pior parte é que, mesmo com todas essas medidas, os desenvolvedores poderão obter código, por exemplo, escrevendo-o discretamente em sua pele ou em um pedaço de papel e escondendo-o em suas roupas, ou simplesmente memorizando-o se tiverem Memória eidética .
Ou eles podem apenas memorizar globalmente as estruturas de dados e os algoritmos - essa é a única coisa importante em que a propriedade intelectual é importante - e criar seu próprio produto inspirado por essas duas coisas.