Como gerenciar um projeto de alto risco de código fechado?

25

Atualmente, estou planejando desenvolver um site J2EE e desejo trazer 1 desenvolvedor e 1 web designer para me ajudar. O projeto é um aplicativo financeiro dentro de um nicho de mercado.

Eu pretendo manter a fonte fechada. No entanto, temo que meus futuros funcionários possam copiar facilmente a base de código e usá-la ou vendê-la a terceiros. O desenvolvimento do aplicativo levará de quatro a seis meses, talvez mais, e eu posso contratar mais funcionários depois que o aplicativo for lançado.

Mas como eu mantenho a fonte para mim mesmo. Existem técnicas que as empresas usam para proteger sua fonte?

Prevejo desativar as unidades USB e gravadores de DVD em minhas máquinas de desenvolvimento, mas ainda é possível carregar dados ou anexar o código no email.

Minha pergunta está incompleta. Mas programadores que estiveram na minha situação, por favor, aconselhem. Como devo fazer isso? Construindo uma equipe, mantendo sigilo de código, etc.

Estou ansioso para assinar um contrato de sigilo com os funcionários, se necessário também. (Adicione tags relevantes)

Atualizar

Obrigado por todas as respostas. Certamente não vou desativar todas as portas USB e gravadores de DVD agora. Mas acho que deveria estar registrando atividade (como exatamente devo fazer isso?) Desconfio de cambistas que ingressariam e depois fugissem com o código existente. Não conheci nenhum, mas fui aconselhado a desconfiar deles. Eu incluiria uma cláusula de sigilo, mas, como se trata de uma startup com quase nenhum financiamento e em um nicho de negócios altamente competitivo, com participantes maiores no campo, duvido que seja capaz de detectar ou perseguir qualquer cambista.

Como faço para contratar pessoas em quem confio quando não as conheço pessoalmente? Seu currículo será útil, mas, caso contrário, a confiança se desenvolverá apenas com o tempo.

Mas, finalmente, mesmo se eles fugirem com o código, é o serviço que importa depois que a venda é feita. Portanto, não estou realmente preocupado a longo prazo.

abel
fonte
28
Sei que eu (e nenhum outro desenvolvedor competente e sensato) consideraria trabalhar sob as condições que você sugeriu (pendrives desativados, gravadores de DVD ...).
Jonathan Sterling
5
Simplesmente venenoso.
Jonathan Sterling
53
Para ser sincero, quando encontro alguém que se recusa a estender qualquer confiança, sempre acho que isso diz mais sobre a própria confiabilidade do que a minha - ou seja, se você acha que não posso confiar, é porque você sabe que pode ' não seja confiável.
James McLeod
8
@abel: resumindo algumas de suas observações anteriores, você não tem nenhuma experiência no desenvolvimento de software profissional. Mas você está tentando entrar em um "nicho de negócios altamente competitivo" e ter sucesso contra "players maiores" quando não tem "quase nenhum financiamento". Você tem peixes muito maiores para fritar do que se preocupar com os programadores fugindo com o seu código. Se eu fosse você, escreveria um plano de negócios e o revisaria por empresários que já tiveram sucesso na sua área de destino e depois pensaria se você realmente tem os recursos para ter sucesso.
Bob Murphy
37
@abel: Após sua atualização, sua pergunta é assim. Você não tem muito dinheiro e nunca trabalhou em um restaurante, muito menos administra um. Mas você está determinado a abrir um restaurante de qualquer maneira - e em São Francisco, que já tem muitos bons restaurantes lutando para obter lucro. Então, você vai à convenção de um chef e pergunta como contratar um chef que não envenena a comida. E quando eles dizem que os chefs não envenenam comida, você admite que ninguém que você conheceu foi envenenado, mas alguém lhe disse que você deveria se preocupar com isso, para que assim você se preocupe.
Bob Murphy

Respostas:

77

Você precisa confiar em seus desenvolvedores.

Praticamente todos os desenvolvedores profissionais não roubam sua fonte. Entende-se que, se você trabalha para outra pessoa, é o empregador que possui o código que você escreve. Os desenvolvedores podem copiar o código para fins de referência, mas é altamente improvável que o ofereçam para venda a qualquer outra pessoa. Se eles o ofereceram para venda a um novo empregador, o resultado provável é que eles estão sendo mostrados à porta e possivelmente até presos (como Bob Murphy aponta em seu comentário ). Ser pego não vale o risco.

Mais importante, a desconfiança gera desconfiança. Desativar portas USB e gravadores de DVD gerará uma sensação de desconfiança que, paradoxalmente, aumentará a probabilidade de os desenvolvedores copiarem o código.

Adicione de qualquer maneira uma cláusula de sigilo ao seu contrato, mas provavelmente não será necessário destacá-la como a parte mais importante do contrato.

ChrisF
fonte
2
Uma breve cláusula de sigilo é perfeitamente normal em contratos de desenvolvimento e acordos de emprego - mas, como ChrisF disse, não exagere. Para quem já fez mais do que alguns projetos de desenvolvimento de contratos, um longo acordo de sigilo com ameaças terríveis apenas diz que você é um amador sem noção. Existem cláusulas padrão que você pode encontrar on-line que funcionam de 6 a 20 linhas de texto. Isso é suficiente se você estiver disposto a advogar em caso de violação - e se não estiver, qualquer acordo de sigilo é inútil.
Bob Murphy
46
Além disso, no mundo real, terceiros não querem código roubado. O risco e muito grande. Quando o Informix e a Oracle estavam disputando o mercado de banco de dados relacional da empresa em meados dos anos 90, um dos desenvolvedores do Informix deixou de se juntar à Oracle (o que era bastante comum) e levou um disco rígido cheio de fontes do Informix com ele (o que não era 't). Ele disse a seu novo chefe na Oracle, esperando uma recepção calorosa, mas conseguiu uma equipe de segurança e uma prisão. Em seguida, a segurança da Oracle chamou a segurança do Informix e o disco rígido voltou ao Informix sem que ninguém da Oracle tivesse examinado.
Bob Murphy
1
@ Bob Murphy Espero que todos sejam tão sinceros, mesmo na parte inferior da cadeia alimentar.
quer
1
Eu estava prestes a digitar esta resposta exata. A confiança é realmente crítica para o sucesso do projeto. Como ChrisF afirmou, desativar os componentes dos computadores dos desenvolvedores apenas azedará o relacionamento e informará aos desenvolvedores que eles não são confiáveis. A única maneira de proteger verdadeiramente seu código seria controlar onde os desenvolvedores dormem, onde comem, com quem conversam etc. Apenas verifique se você possui um contrato bem escrito para fornecer a munição legal necessária para punir os infratores.
TheBuzzSaw 28/10/12
2
Duas palavras: Edward Snowden ( en.wikipedia.org/wiki/Edward_Snowden ). Mesmo as divisões mais secretas do governo federal dos EUA não têm uma boa solução para esse problema. O que faz você (o OP) pensar que pode fazer melhor? Crie sua solução com confiança e contenção razoável, não com restrições tecnológicas superficiais!
Rinogo
74

Se esses programadores puderem escrever o software em primeiro lugar, então ...

Eles não precisam roubá-lo.

Eles podem simplesmente reescrevê-lo em uma fração do tempo necessário para desenvolvê-lo originalmente. Sim, é verdade, os desenvolvedores não são idiotas completos ... depois que descobrem como fazer algo, muitas vezes conseguem se lembrar de como fizeram isso.

Então, acho que você precisará confiar neles ou escrever o software por conta própria .

GrandmasterB
fonte
3
Isso é argumento para uma cláusula de não concorrência? ;)
Tim
8
De fato: seus programadores já copiaram seu código, em virtude de terem esse conhecimento em suas cabeças.
Frank Shearar
Eu entendi aquilo. Não quero que os desenvolvedores recém-ingressados ​​escalonem o código.
quer
3
@abel, o código roubado não é tão útil quanto parece. Um aplicativo pode ser 'clonado', mesmo sem o código-fonte. algoritmos proprietários , agora é isso que você deseja manter em segurança. Os desenvolvedores não precisam "roubar" o código para aprendê-los, basta ler e recriá-lo. Heck, apenas o uso do programa pode ser suficiente para deduzir um algoritmo. Então, como outros já disseram, uma simples cláusula de não concorrência fará o truque e é tudo o que você pode fazer. Proteger fisicamente o código é apenas uma perda de tempo, porque qualquer desenvolvedor que se preze pode facilmente ignorar isso.
GrandmasterB
11
+1 pela verdade ... e por me fazer cair da cadeira rindo. As vacas não precisam roubar leite. 8D
TheBuzzSaw 28/10/12
22

Ouvi dizer que nenhuma ideia por si só vale mais de US $ 20 (e isso é dólar canadense!). A idéia só tem valor se for executada bem. Mesmo que eles roubem o código e tentem fazê-lo por conta própria, é provável que você tenha uma idéia melhor dos próximos passos e tenha mais contatos com possíveis compradores do software.

Definitivamente, você deve contratar apenas pessoas em quem confia, mas mesmo que roubem seu código e tentem vendê-lo, é improvável que cheguem muito longe.

James McLeod
fonte
9
Isto é absolutamente verdade. Esqueça de manter sua Idéia Única super secreta e concentre-se em executá-la melhor do que qualquer outra pessoa. A maioria das idéias é um produto de seu tempo e ocorre para várias pessoas de forma independente. (Henri Poincaré também trabalhava com a relatividade no início dos anos 1900, mas Einstein o venceu até a publicação.) É provável que haja oito outras equipes enviando sua ideia aos VCs na Sand Hill Road este mês; são aqueles com planos de negócios credíveis e equipes profissionais que obterão financiamento.
Bob Murphy
1
Relacionado: sivers.org/multiply . As más idéias nem valem 2 centavos, mas boas podem valer mais de US $ 20.
Pacerier 04/10/2015
6

A dura verdade é que ninguém quer o seu código. Você pode pensar que desenvolve uma solução que todos desejam saber como funciona. Mas na maioria das vezes você não.

O que você faria se assumisse o código fonte de seus concorrentes? Você não pode distribuí-lo. Você não pode copiar nenhuma parte dele no seu projeto (mesmo que não tenha sido tão difícil integrar o código de terceiros na sua base de código). O que você pode fazer? Você pode estudá-lo. Mas muitas vezes é mais difícil ler o código do que escrevê-lo em primeiro lugar.

Veja o software de código aberto. É a analogia mais próxima de um código-fonte roubado. Existe uma grande quantidade de código não-pintado. Uma grande parte possui uma licença que não atende às suas necessidades. Outros possuem linguagem de programação incompatível ou precisam ser portados para sua plataforma. O código adequado às suas necessidades levará muito tempo para ser lido.

Existem muitos projetos de código aberto com uma mentalidade de código fechado. Ou seja, eles não aceitam patches. Em breve, sua versão do código se desviará tanto que seria impossível mesclar novas versões.

Você deve entender que o mais valioso é sua equipe que mantém seu código e o avança. Não é o código em si.

Vanuan
fonte
5

Se isso é algum tipo de inicialização, a primeira coisa que você precisa fazer é criar um produto. Você precisa de bons desenvolvedores que trabalhem duro e se dediquem ao projeto.

Uma maneira realmente fácil de se livrar deles, ou pelo menos minar seu moral e dedicação, é mostrar a eles que você não confia neles. Na verdade, é provável que eles comecem a pensar em maneiras de obter o código (embora quase certamente não sigam adiante) e, se conseguirem uma maneira, acharão que você não é apenas paranóico, mas estúpido. (Existem organizações em que esse nível de cautela é justificado e a inicialização de um site financeiro não será considerada uma delas.)

Algumas cláusulas do contrato sobre como o software é sua propriedade ficarão bem. Se alguém violar isso, violará qualquer linguagem mais severa que você tenha e provavelmente se sentirá mais justificado. As cláusulas de não concorrência que não são limitadas e limitadas no tempo apenas perseguem as pessoas que você deseja e, de fato, podem não ser legais em sua jurisdição (consulte um advogado local para descobrir).

Se você contratar pessoas boas, elas poderão reescrever o software mais tarde. Se você contratar iniciantes, eles não saberão como desenvolver o que querem, e qualquer pessoa com base nisso estará correndo sérios riscos legais para chegar tarde com uma versão inferior do que você tem.

Em suma, isso deve ser muito baixo nas coisas com que você se preocupa. Se você contrata pessoas más, está afundado, não importa o quê. Concentre-se em contratar pessoas boas e deixe isso passar.

David Thornley
fonte
4

Por que seus clientes em potencial devem confiar em você com as finanças?

Afinal, você pode fugir com o dinheiro.

Empresas como Microsoft, Google, IBM empregam milhares de pessoas para escrever resmas de software de código fechado e não estão indevidamente preocupadas com o fato de sua equipe sair com o código. A proteção de direitos autorais e uma cláusula clara de "qualquer código pertence ao seu empregador" no contrato de trabalho parecem cobri-lo e, processos judiciais contra ex-funcionários por roubo de código são extremamente raros.

Além disso, uma vez que você libera seu software para todo o mundo, a menos que o núcleo envolva matemática realmente avançada, qualquer equipe competente de programadores poderá reproduzir seu aplicativo sem nunca ver o código-fonte.

James Anderson
fonte
3

Como outros já mencionaram, isso parece ser principalmente uma preocupação do povo.

No entanto, existem vários fornecedores de segurança importantes que comercializam soluções de software para vazamentos de dados:

Não posso comentar sobre sua eficácia ou adequação, pois tenho experiência limitada com essas soluções, mas achei que poderia ser útil salientar isso.

Penhasco
fonte
3
Como a idéia, a única preocupação é que estes produtos estão cheios de linguagem corporativa e não explicar o que eles estão realmente fazendo :)
Mars Robertson
2

Honestamente, como todo mundo disse, você só precisa confiar em seus programadores.

No entanto, acrescentarei a isso dizendo que você realmente deve considerar que o código aberto do seu projeto no ambiente atual tem mais chances de ajudá-lo do que machucá-lo, com exceção de alguns mercados específicos. Apenas ser mais aberto à ideia o deixará menos preocupado com o código fonte aumentando pernas e fugindo, mesmo que você não faça isso sozinho. Consiga toda a boa vontade que puder e, na minha opinião, é mais provável que você ganhe dinheiro. Mesmo que o Empire oferecesse o melhor aplicativo do mundo, não acho que Luke Skywalker o teria baixado, porque os ideais do Empire estavam no lugar errado.

coder543
fonte