Als ich als Freiberufler arbeitete, stieß ich auf viele Fälle, in denen Kunden ihre Ideen und den Quellcode ihrer Projekte (wie Webanwendungen) so gut wie möglich schützten, egal wie unwichtig, uninteressant und unoriginal die Projekte und Konzepte dahinter waren .
Ich habe bereits eine Frage zur Geheimhaltung der Ideen gestellt und viele gute Antworten erhalten. Jetzt geht es mir mehr um die Geheimhaltung des Quellcodes.
Nach meinen Beobachtungen von:
- Die Codebasen, an denen ich während meiner Karriere arbeiten musste,
- Meine eigene Bereitschaft, einen Teil meines eigenen Quellcodes geheim zu halten, und:
- Einige Artikel wie zum Beispiel " Offene Antwort auf Simon Stuart" des beliebten Programmers.SE-Mitarbeiters Mason Wheeler ,
Ich komme zu dem Schluss, dass der Quellcode hauptsächlich aus folgenden Gründen geheim gehalten wird:
Weil sich der Autor für den Code von solch schlechter Qualität schämt oder das Unternehmen befürchtet, den Ruf zu verlieren, wenn jemand eine so schlechte Codebasis sieht, oder weil die Codebasis aufgrund der geringen Qualität von Nutzen ist, wird es niemandem etwas Nützliches bringen, ihn als Open Source zu veröffentlichen: Selbst wenn jemand interessiert wäre, wäre er kaum in der Lage, die Lösung auszuführen (oder oft sogar zu kompilieren).
Da Teile des Codes gestohlen werden (hauptsächlich aus Open-Source-Projekten, für die eine Lizenz gilt, die die Verwendung in einer bestimmten Situation einschränkt),
Weil der Code auf Sicherheit durch Dunkelheit beruht und der Autor sich nicht um Kerckhoffs Prinzip kümmert .
Weil das Produkt so zerbrechlich ist, dass das Anzeigen des Codes zu viel Schaden anrichten würde: Wenn eine Closed-Source-App mit all diesen Sicherheitslücken einem Neuling-Hacker standhalten würde, hätte dieselbe Open-Source-App weitaus geringere Chancen, da selbst der Anfänger-Hacker dies tun würde Sie müssen nur den Code studieren, um alle Löcher zu entdecken.
Wenn nicht klar ist, wovon ich spreche, hier ein Beispiel:
if (credentials.password === 'masterPassword12345') { isLoggedIn = true currentUser = credentials.userName } else { authenticate(credentials) }
Weil der Autor den Quellcode (und seine eigenen Fähigkeiten und Fachkenntnisse) überschätzt hat. Beispiel: Zu glauben, dass ein hausgemachter kryptografischer Algorithmus (der von niemandem überprüft wurde) besser ist als jeder bekannte.
Weil der Autor glaubt, dass die Idee hinter dem Code großartig ist und gestohlen würde.
Wegen des "Es ist nicht perfekt genug" -Syndroms. Mit anderen Worten, der Entwickler ist bereit, den Quellcode für die Öffentlichkeit freizugeben, wenn der Code "gut genug" ist, aber Tag für Tag gibt es noch Verbesserungsmöglichkeiten, sodass der Code niemals veröffentlicht wird.
All diese Gründe vermitteln ein eher negatives Bild von Personen, die gegen die Veröffentlichung des Quellcodes sind.
Gibt es gültige Fälle, in denen der hochwertige Code, der dem Kerckhoffs-Prinzip folgt, nicht veröffentlicht wird?
quelle
Antworten:
Einige Leute und die meisten Unternehmen haben eine seltsame Vorstellung vom Wert von Code.
"Wir haben 100.000 US-Dollar für dieses Projekt ausgegeben, daher muss der Code das wert sein" und müssen ihn schützen.
In Wirklichkeit ähnelt der meiste Code eher Farbe. Sie geben 100 US-Dollar für Farbe und 200 US-Dollar für Farbe aus. Aber jetzt ist die Farbe nichts wert, Sie können sie nicht verkaufen, niemand will sie, und selbst wenn sie es tun, können Sie sie nicht von Ihrer Wand nehmen und an die Wand eines anderen hängen.
Es kann den Wert des Gebäudes steigern, aber Sie können dies nicht realisieren, ohne das Gebäude zu verkaufen.
Sie könnten die Codebasis von Amazons "stehlen" (das meiste davon ist in verschiedenen Open-Source-Projekten frei verfügbar) und eine Ammassons-Website einrichten, aber Sie würden nicht viel von Amazons Geschäft übernehmen.
Code ist ein notwendiger Bestandteil jeder modernen Unternehmensinfrastruktur, aber er hat nur Wert als Teil eines Prozesses und einer Kultur, allein ist er nichts wert.
Ich würde hinzufügen, dass es einige Situationen gibt, in denen der Code für das Unternehmen von entscheidender Bedeutung ist und für jeden Konkurrenten so wertvoll ist, dass er geheim gehalten werden sollte:
quelle
Weil es schwer zu schreiben und zu testen war . Und Design. Und spezifizieren. Und debuggen. Und ISO 9000. Und Dokument. Und Versionskontrolle. Und den spitzen Chef aus dem Weg räumen. Und was auch immer die Arbeit eines Software-Ingenieurs lohnt.
Und Sie möchten nicht, dass Ihre Konkurrenten einfach Ihren Quellcode kopieren und einfügen, anstatt so viel Zeit und Geld wie Sie in ihr Produkt zu stecken.
quelle
Ich denke, die naheliegendste Antwort von allen ist, dass die Software für viele Unternehmen einen wesentlichen Teil des Werts ausmacht, den die Unternehmenseinheit für die Kunden bringt. Wenn also jemand den Code einfach ändern und neu kompilieren oder wertvolle Teile davon wiederverwenden könnte, könnte er denselben Service oder Wert anbieten. Dies würde die Wettbewerbsinteressen der Unternehmenseinheit beeinträchtigen und möglicherweise dazu führen, dass sie Geld verlieren.
quelle
Geld wurde ausgegeben, um ein Problem oder eine bestimmte Reihe von Problemen zu lösen. Wenn der Wettbewerb dann die Antwort auf diese Probleme "kostenlos" erhält, wird das Unternehmen, das das Problem gelöst hat, finanziell benachteiligt - insbesondere dann, wenn es einem größeren Unternehmen möglich wäre, vor dem erstellenden Unternehmen "auf den Markt zu kommen", weil dies der Fall ist Infrastruktur vorhanden, oder wenn ein Wettbewerber das Geld ausgibt, das er für die Entwicklung des Marketings ausgegeben hätte.
Darüber hinaus ist es manchmal möglich, sich anhand dieser Dinge ein Bild von den Richtlinien und Prozessen eines Unternehmens zu machen. Auch diese Informationen können als stratgischer Vorteil genutzt werden. Dies ist oft das größere Problem ... Der Code enthüllt das Innenleben des Unternehmens.
quelle
Sie haben Recht, die meisten Unternehmen müssen keine großen Anstrengungen unternehmen, um ihren Code geheim zu halten, da er für niemanden anderen von Nutzen ist. Viele interne Lösungen sind als eine Art benutzerdefinierte ERP-Lösung eng mit anderen Anwendungen und Systemen verbunden.
Für einige Unternehmen ist der Wert der Software ein Teil des Werts ihres Unternehmens. Eine beschissene Codebasis, die für ihre Zwecke funktioniert, hat Wert und ist für einen nicht technischen Käufer kein Problem. Niemand möchte eine Firma mit Bedingungen kaufen. Der Käufer möchte eine klare Antwort darauf, wem der Code gehört, und kann er damit machen, was er will? Wer weiß, das neue Unternehmen möchte möglicherweise eine interne Anwendung nehmen und an andere in der Branche verkaufen und deren Kauf nutzen. Diese Gruppe bewertet eine schlechte Codebasis nicht so hoch wie eine solide Anwendung. Das Wissen, dass der Code geheim gehalten wurde (obwohl dies eine Illusion sein könnte) und es keine Open-Source-Lizenzen gibt, die umgangen werden könnten, trägt zum Verkauf des Unternehmens bei.
quelle
Sie geben den Quellcode nicht weiter, denn wenn Ihr Client Änderungen an einer von Ihnen erstellten Software benötigt, muss er mit Ihnen gehen und Sie können eine Prämie verlangen.
quelle