Wie verwalte ich ein Closed Source-Projekt mit hohem Risiko?

25

Ich plane derzeit die Entwicklung einer J2EE-Website und möchte 1 Entwickler und 1 Webdesigner hinzuziehen, um mich zu unterstützen. Das Projekt ist eine Finanz-App in einem Nischenmarkt.

Ich habe vor, die Quelle geschlossen zu halten. Ich befürchte jedoch, dass meine angehenden Mitarbeiter die Codebasis leicht kopieren und verwenden oder an Dritte verkaufen könnten. Die App-Entwicklung wird 4 bis 6 Monate dauern, möglicherweise auch länger, und ich kann zusätzliche Mitarbeiter einstellen, nachdem die App online geht.

Aber wie behalte ich die Quelle für mich? Gibt es Techniken, mit denen Unternehmen ihre Quelle schützen?

Ich habe vor, USB-Laufwerke und DVD-Brenner auf meinen Entwicklungsmaschinen zu deaktivieren, aber das Hochladen von Daten oder das Anhängen des Codes per E-Mail wäre weiterhin möglich.

Meine Frage ist unvollständig. Aber Programmierer, die in meiner Situation waren, raten bitte. Wie soll ich vorgehen? Aufbau eines Teams, Geheimhaltung des Codes usw.

Ich freue mich darauf, bei Bedarf auch mit den Mitarbeitern einen Geheimhaltungsvertrag abzuschließen. (Bitte relevante Tags hinzufügen)

Aktualisieren

Vielen Dank für alle Antworten. Ich werde jetzt bestimmt nicht alle USB-Anschlüsse und DVD-Brenner deaktivieren. Aber ich denke, ich sollte Aktivitäten protokollieren (wie genau sollte ich das tun?) Ich bin vorsichtig bei Scalper, die beitreten und dann mit dem vorhandenen Code davonlaufen würden. Ich habe keine getroffen, aber mir wurde geraten, vorsichtig mit ihnen umzugehen. Ich würde eine Geheimhaltungsklausel einschließen, aber da dies ein Startup mit fast keiner Finanzierung ist und ich mich in einer hart umkämpften Geschäftsnische mit größeren Akteuren auf dem Gebiet befinde, bezweifle ich, dass ich in der Lage wäre, Skalper aufzuspüren oder zu verfolgen.

Wie stelle ich Leute ein, denen ich vertraue, wenn ich sie nicht persönlich kenne? Ihr Lebenslauf wird hilfreich sein, aber ansonsten wird sich das Vertrauen erst mit der Zeit entwickeln.

Aber selbst wenn sie mit dem Code davonlaufen, ist es der Service, auf den es nach dem Verkauf ankommt. Ich mache mir also auf lange Sicht keine Sorgen.

abel
quelle
28
Ich weiß, dass ich (und kein anderer vernünftiger, kompetenter Entwickler) erwägen würde, unter den Bedingungen zu arbeiten, auf die Sie hingewiesen haben (deaktivierte Pendrives, DVD-Brenner…).
Jonathan Sterling
5
Einfach giftig.
Jonathan Sterling
53
Um ehrlich zu sein, wenn ich jemanden treffe, der sich weigert, Vertrauen zu schenken, denke ich immer, dass dies mehr über seine eigene Vertrauenswürdigkeit aussagt als über meine. nicht vertraut werden.
James McLeod
8
@abel: Wenn Sie einige Ihrer vorherigen Bemerkungen zusammenfassen, haben Sie keine Erfahrung mit professioneller Softwareentwicklung. Aber Sie versuchen, in eine "hart umkämpfte Geschäftsnische" einzusteigen und gegen "größere Spieler" erfolgreich zu sein, wenn Sie "fast keine Finanzierung" haben. Sie müssen viel größere Fische braten, als sich Sorgen um Programmierer zu machen, die mit Ihrem Code davonlaufen. Wenn ich Sie wäre, würde ich einen Geschäftsplan aufstellen und von Geschäftsleuten überprüfen lassen, die in Ihrem Zielgebiet bereits erfolgreich waren, und dann überlegen, ob Sie wirklich die Ressourcen haben, um erfolgreich zu sein.
Bob Murphy
37
@abel: Nach deinem Update ist deine Frage so. Sie haben nicht viel Geld und Sie haben noch nie in einem Restaurant gearbeitet, geschweige denn in einem. Aber Sie sind fest entschlossen, ein Restaurant zu eröffnen - und in San Francisco, wo bereits viele großartige Restaurants darum kämpfen, Gewinne zu erzielen. Sie gehen also zu einem Kochkongress und fragen, wie Sie einen Koch einstellen können, der das Essen nicht vergiftet. Und wenn sie Ihnen sagen, dass Köche kein Lebensmittel vergiften, geben Sie zu, dass niemand, den Sie jemals gekannt haben, vergiftet wurde, aber jemand hat Ihnen gesagt, dass Sie sich darum kümmern sollten, damit Sie sich trotzdem Sorgen machen.
Bob Murphy

Antworten:

77

Sie müssen Ihren Entwicklern vertrauen.

Praktisch alle professionellen Entwickler werden Ihre Quelle nicht stehlen. Wenn Sie für jemanden arbeiten, gehört der Code, den Sie schreiben, dem Arbeitgeber. Entwickler kopieren möglicherweise Code zu Referenzzwecken, es ist jedoch sehr unwahrscheinlich, dass sie ihn anderen zum Verkauf anbieten. Wenn sie es einem neuen Arbeitgeber zum Verkauf angeboten haben, ist es wahrscheinlich, dass ihnen die Tür gezeigt und möglicherweise sogar verhaftet wird (wie Bob Murphy in seinem Kommentar ausführt ). Erwischt zu werden ist das Risiko nicht wert.

Noch wichtiger ist, Misstrauen erzeugt Misstrauen. Das Deaktivieren von USB-Anschlüssen und DVD-Brennern führt zu Misstrauen, was paradoxerweise die Wahrscheinlichkeit erhöht, dass die Entwickler den Code kopieren.

Fügen Sie Ihrem Vertrag auf jeden Fall eine Geheimhaltungsklausel hinzu, aber es ist wahrscheinlich nicht erforderlich, sie als den wichtigsten Teil des Vertrags hervorzuheben.

ChrisF
quelle
2
Eine kurze Geheimhaltungsklausel ist in Entwicklungsverträgen und Arbeitsverträgen völlig normal - aber wie ChrisF sagte, übertreibe es nicht. Für jeden, der mehr als eine Handvoll Vertragsentwicklungsprojekte durchgeführt hat, bedeutet eine lange Geheimhaltungsvereinbarung mit schrecklichen Bedrohungen nur, dass Sie ein ahnungsloser Amateur sind. Es gibt Standardklauseln, die Sie online finden und die zwischen 6 und 20 Textzeilen umfassen. Das ist ausreichend, wenn Sie im Falle eines Verstoßes bereit sind, einen Anwalt zu beauftragen - und wenn nicht, ist eine Geheimhaltungsvereinbarung sinnlos.
Bob Murphy
46
Auch in der realen Welt wollen Dritte keinen gestohlenen Code. Das Risiko ist zu groß. Als Informix und Oracle es Mitte der 90er Jahre auf den Markt für relationale Unternehmensdatenbanken brachten, kündigte einer der Informix-Entwickler, um sich Oracle anzuschließen (was durchaus üblich war), und nahm eine Festplatte voller Informix-Quellen mit (was nicht war) 't). Er sagte es seinem neuen Chef bei Oracle und erwartete einen herzlichen Empfang, aber stattdessen bekam er ein Sicherheitsteam und eine Verhaftung. Dann rief Oracle Security Informix Security an und die Festplatte kehrte zu Informix zurück, ohne dass sich jemand von Oracle darum gekümmert hätte.
Bob Murphy
1
@ Bob Murphy Ich hoffe, jeder ist so aufrichtig, auch am Ende der Nahrungskette.
abel
1
Ich wollte gerade genau diese Antwort eingeben. Vertrauen ist tatsächlich entscheidend für den Erfolg des Projekts. Wie ChrisF sagte, wird durch das Deaktivieren von Komponenten der Entwicklercomputer nur die Beziehung beeinträchtigt, und die Entwickler werden darüber informiert, dass sie nicht vertrauenswürdig sind. Die einzige Möglichkeit, Ihren Code wirklich zu schützen, besteht darin, zu kontrollieren, wo die Entwickler schlafen, wo sie essen, mit wem sie sprechen usw. Stellen Sie einfach sicher, dass Sie einen gut geschriebenen Vertrag haben, der Ihnen die gesetzlich vorgeschriebene Munition gibt, die Sie zur Bestrafung von Verstößen benötigen.
TheBuzzSaw
2
Zwei Wörter: Edward Snowden ( en.wikipedia.org/wiki/Edward_Snowden ). Selbst die geheimsten Spaltungen innerhalb der US-Bundesregierung haben keine gute Lösung für dieses Problem. Was lässt Sie (das OP) glauben, dass Sie es besser machen können? Bauen Sie Ihre Lösung auf Vertrauen und angemessene Eindämmung, nicht auf oberflächlichen technologischen Einschränkungen!
Rinogo
74

Wenn diese Programmierer die Software überhaupt schreiben können, dann ...

SIE MÜSSEN ES NICHT STEHLEN.

Sie können es einfach in einem Bruchteil der Zeit umschreiben, die für die ursprüngliche Entwicklung erforderlich war. Ja, es stimmt, Entwickler sind keine völligen Idioten. Wenn sie erst einmal herausgefunden haben, wie etwas zu tun ist, können sie sich oft daran erinnern, wie sie es getan haben.

Ich schätze, Sie müssen ihnen einfach vertrauen oder die Software selbst schreiben .

GroßmeisterB
quelle
3
Ist das ein Argument für ein Wettbewerbsverbot? ;)
Tim
8
In der Tat: Ihre Programmierer haben Ihren Code bereits kopiert, weil sie dieses Wissen im Kopf haben.
Frank Shearar
Ich verstehe das. Ich möchte nicht, dass neu hinzugekommene Entwickler Code skalieren.
Abel
3
@abel, gestohlener Code ist nicht so nützlich, wie man denkt. Eine App kann auch ohne den Quellcode "geklont" werden. proprietäre Algorithmen , nun das ist , was Sie sicher halten wollen. Entwickler müssen keinen Code stehlen, um diese zu erlernen. Sie müssen ihn nur lesen und dann neu erstellen. Heck, nur mit dem Programm könnte ausreichen, um einen Algorithmus abzuleiten. Wie andere bereits gesagt haben, reicht ein einfaches Wettbewerbsverbot aus und ist so gut wie alles, was Sie tun können. Das physische Sichern des Codes ist nur eine Verschwendung Ihrer Zeit, da jeder Entwickler, der sein Geld wert ist, dies leicht umgehen kann.
GroßmeisterB
11
+1 für die Wahrheit ... und dafür, dass ich lachend aus meinem Stuhl gefallen bin. Kühe müssen keine Milch stehlen. 8D
TheBuzzSaw
22

Ich habe gehört, dass keine Idee für sich allein mehr als 20 US-Dollar wert ist (und das sind kanadische Dollar!). Die Idee hat nur dann einen Wert, wenn sie gut umgesetzt wird. Selbst wenn sie den Code stehlen und versuchen, es selbst zu versuchen, haben Sie wahrscheinlich eine bessere Vorstellung von den nächsten Schritten und haben mehr Kontakte zu potenziellen Käufern der Software.

Sie sollten auf jeden Fall nur Leute einstellen, denen Sie vertrauen, aber selbst wenn sie Ihren Code stehlen und versuchen, ihn zu verkaufen, werden sie wahrscheinlich nicht sehr weit kommen.

James McLeod
quelle
9
Das ist absolut richtig. Vergessen Sie, Ihre einzigartige Idee geheim zu halten, und konzentrieren Sie sich darauf, sie besser als alle anderen umzusetzen. Die meisten Ideen sind ein Produkt ihrer Zeit und kommen mehreren Menschen unabhängig voneinander in den Sinn. (Henri Poincaré arbeitete auch in den frühen 1900er Jahren an der Relativitätstheorie, aber Einstein hat ihn bis zur Veröffentlichung geschlagen.) Es besteht die Möglichkeit, dass in diesem Monat acht weitere Crews Ihre Idee zu den VCs auf der Sand Hill Road herumtrotten. Es sind diejenigen mit glaubwürdigen Geschäftsplänen und professionellen Teams, die finanziell unterstützt werden.
Bob Murphy
1
Siehe auch : sivers.org/multiply . Schlechte Ideen wären nicht einmal 2 Pence wert, aber gute Ideen können durchaus einen Wert von über 20 USD haben.
Pacerier
6

Die harte Wahrheit ist, dass niemand Ihren Code will. Sie denken vielleicht, Sie entwickeln eine Lösung, von der jeder wissen möchte, wie sie funktioniert. Aber meistens nicht.

Was würden Sie tun, wenn Sie den Quellcode Ihrer Konkurrenten übernehmen würden? Du kannst es nicht verbreiten. Sie können keine Teile davon in Ihr Projekt kopieren (auch wenn es nicht so schwierig war, Code von Drittanbietern in Ihre Codebasis zu integrieren). Was du tun kannst? Du kannst es studieren. Oft ist es jedoch schwieriger, den Code zu lesen, als ihn überhaupt zu schreiben.

Schauen Sie sich die Open Source Software an. Dies ist eine Analogie zu einem gestohlenen Quellcode. Es gibt eine Unmenge von Code, der nicht gepflegt ist. Ein großer Teil hat eine Lizenz, die nicht Ihren Bedürfnissen entspricht. Andere haben eine inkompatible Programmiersprache oder müssen auf Ihre Plattform portiert werden. Der Code, der Ihren Anforderungen entspricht, benötigt viel Zeit zum Lesen.

Es gibt viele Open-Source-Projekte mit einer Closed-Source-Mentalität. Dh sie akzeptieren keine Patches. Ihre Codeversion wird so schnell davon abweichen, dass es unmöglich ist, neue Versionen zusammenzuführen.

Sie sollten verstehen, dass das Wertvollste Ihr Team ist, das Ihren Code verwaltet und vorantreibt. Nicht der Code selbst.

Vanuan
quelle
5

Wenn dies eine Art Startup ist, müssen Sie zunächst ein Produkt bauen lassen. Sie brauchen gute Entwickler, die hart arbeiten und sich dem Projekt widmen.

Eine wirklich einfache Möglichkeit, sie loszuwerden oder zumindest ihre Moral und Hingabe zu beeinträchtigen, besteht darin, ihnen von vornherein zu zeigen, dass man ihnen nicht vertraut. Tatsächlich werden sie wahrscheinlich darüber nachdenken, wie sie den Code herausholen können (obwohl sie mit ziemlicher Sicherheit nicht durchkommen werden), und wenn sie einen Weg finden, werden sie Sie nicht nur für paranoid, sondern auch für dumm halten. (Es gibt Organisationen, bei denen diese Vorsicht geboten ist, und ein Start einer Finanzwebsite wird nicht als eine davon angesehen.)

Ein paar Klauseln im Vertrag darüber, wie die Software Ihr Eigentum ist, werden in Ordnung sein. Wenn jemand dagegen verstößt, verstößt er gegen eine strengere Sprache und fühlt sich wahrscheinlich gerechtfertigter. Wettbewerbsverbote, die nicht eng und zeitlich begrenzt sind, vertreiben nur die von Ihnen gewünschten Personen und sind möglicherweise in Ihrer Gerichtsbarkeit nicht legal (wenden Sie sich an einen Anwalt vor Ort, um dies herauszufinden).

Wenn Sie gute Leute einstellen, können diese die Software später neu schreiben. Wenn Sie Anfänger einstellen, wissen diese nicht, wie sie das, womit sie abspringen, weiterentwickeln sollen, und jeder, der darauf aufbaut, wird ernsthafte rechtliche Risiken eingehen, um mit einer minderwertigen Version dessen, was Sie haben, zu spät zu kommen.

Kurz gesagt, dies sollte weit hinter den Dingen zurückbleiben, um die Sie sich Sorgen machen. Wenn Sie schlechte Leute einstellen, sind Sie untergegangen, egal was passiert. Konzentrieren Sie sich darauf, gute Leute einzustellen, und lassen Sie dies abrutschen.

David Thornley
quelle
4

Warum sollten Ihre potenziellen Kunden Ihnen ihre Finanzen anvertrauen?

Immerhin dürfen Sie mit dem Geld davonlaufen.

Unternehmen wie Microsoft, Google und IBM beschäftigen Tausende von Mitarbeitern, um Unmengen von Closed-Source-Software zu schreiben. Urheberrechtsschutz und eine eindeutige Klausel "Jeder Code gehört zu Ihrem Arbeitgeber" im Arbeitsvertrag scheinen das zu regeln, und Gerichtsverfahren gegen ehemalige Mitarbeiter wegen Diebstahls von Code sind äußerst selten.

Sobald Sie Ihre Software für die breite Welt freigegeben haben, kann jedes kompetente Programmierteam Ihre Anwendung reproduzieren, ohne jemals den Quellcode zu sehen, es sei denn, es handelt sich um einen wirklich fortgeschrittenen mathematischen Kern.

James Anderson
quelle
3

Wie andere bereits erwähnt haben, scheint dies in erster Linie ein Anliegen des Volkes zu sein.

Es gibt jedoch eine Reihe wichtiger Sicherheitsanbieter, die Softwarelösungen auf Datenlecks vermarkten:

Ich kann mich nicht zu ihrer Wirksamkeit oder Angemessenheit äußern, da ich nur begrenzte Erfahrung mit diesen Lösungen habe, dachte aber nur, dass es hilfreich sein könnte, darauf hinzuweisen.

Cliff
quelle
3
Wie die Idee, ist die einzige Sorge, dass diese Produkte voll von Unternehmenssprache sind und nicht erklären, was sie tatsächlich tun :)
Mars Robertson
2

Ehrlich gesagt, wie alle anderen gesagt haben, müssen Sie nur Ihren Programmierern vertrauen.

Ich möchte jedoch hinzufügen, dass Sie wirklich bedenken sollten, dass Open Sourcing in Ihrem heutigen Umfeld Ihnen eher hilft als schadet, mit Ausnahme einiger weniger spezifischer Märkte. Nur offener für die Idee zu sein, macht Ihnen weniger Sorgen, dass Ihr Quellcode wächst und davonläuft, selbst wenn Sie es nicht selbst tun. Holen Sie sich alles Gute, was Sie können, und Sie werden meiner Meinung nach mit größerer Wahrscheinlichkeit Geld verdienen. Selbst wenn das Imperium die beste App der Welt angeboten hätte, hätte Luke Skywalker sie vermutlich nicht heruntergeladen, da die Ideale des Imperiums am falschen Ort waren.

coder543
quelle