Sollten Sie eine Kopie des gesamten Codes aufbewahren, den Sie schreiben? [geschlossen]


197

Ich weiß, dass die Firma, für die Sie arbeiten, den Code besitzt, und offensichtlich werden Sie verhaftet, wenn Sie versuchen, ihn zu verkaufen. Aber ist es ungewöhnlich, dass Entwickler eine persönliche Kopie des von ihnen geschriebenen Codes aufbewahren (als zukünftige Referenz)?

Anscheinend wurde dieser Mann ins Gefängnis geschickt, weil er den Quellcode kopiert hatte.


13
Es könnte ein ernstes rechtliches Problem sein, wenn Sie es an die Konkurrenzfirma verkaufen / wiederverwenden.
EL Yusubov

19
Beachten Sie, dass es sich bei dem verlinkten Artikel um einen ziemlich speziellen Fall handelt, da er Code wegging, der höchstwahrscheinlich von NDAs abgedeckt wurde (unter Berücksichtigung des Clients), und selbst wenn dies nicht der Fall wäre, bin ich mir nicht sicher, ob ich das Risiko eingehen würde mit Code davonzugehen , der für die verdammte Federal Reserve Bank entwickelt wurde ! Sie müssen nicht alles dabei haben, wenn Sie glauben, dass damit nichts schief gehen kann und dass es nicht wenige einflussreiche Leute gibt, die diese Idee überhaupt nicht mögen, wenn sie jemals gehört haben, dass Sie den Code mitgenommen haben .
Haylem

10
Angenommen, es handelte sich um eine Leiharbeit, und Ihr ehemaliger Arbeitgeber besitzt daher das Urheberrecht für den Code, den Sie für ihn geschrieben haben, und hat ihn nicht als Open Source-Version veröffentlicht Kopien des Codes, den Ihre Mitarbeiter geschrieben haben.
Keith Thompson

37
@DavidPeterman - warum sollte ein Arbeitgeber, der Sie eingestellt hat, nicht alles besitzen, was Sie für sie tun? Denken Sie, dass ein Teil Ihres Hauses dem Schreiner gehört, der die Rahmung vorgenommen hat?
Reactgular

10
@MathewFoscarini Ich verstehe, was Sie sagen, aber ich spreche über die Algorithmen. Das wäre, als würde man sagen, der Schreiner besitzt nicht die Schritte, die er unternimmt, um das Haus zu bauen
David Peterman

Antworten:


303

Aber ist es ungewöhnlich, dass Entwickler eine persönliche Kopie des von ihnen geschriebenen Codes aufbewahren (als zukünftige Referenz)?

Ich weiß nicht, wie häufig es ist, aber häufig oder nicht, es ist immer noch eine schlechte Idee.

Programmierer denken oft, dass es Zeitverschwendung ist, dasselbe Problem zweimal zu lösen. Wir versuchen, unseren Code so zu gestalten, dass er (manchmal) wiederverwendbar ist. Wir erstellen Bibliotheken mit Klassen und Funktionen, die zu einem späteren Zeitpunkt wiederverwendet werden können. Manchmal geben wir sogar unseren Code weiter, damit niemand anders Code schreiben muss, um das gleiche Problem zu lösen, das wir gerade gemacht haben. Es kann daher verständlich sein, "Ihren" Code mitzunehmen, wenn Sie von einem Job zu einem anderen wechseln. Aber Sie sollten es aus folgenden Gründen immer noch nicht tun:

  1. Es ist nicht dein Code zu nehmen.

  2. Der Code, den Sie für Ihren früheren Arbeitgeber geschrieben haben, ist Teil des Geschäfts, das sie aufgebaut haben. Ihr Code ist Teil ihres Wettbewerbsvorteils. Sicher, Konkurrenten könnten ihren eigenen Code schreiben, um das gleiche Problem zu lösen, aber sie sollten nicht den Vorteil haben, auf der Arbeit aufzubauen, für die Ihr Arbeitgeber bezahlt, die er besitzt und die Sie nicht autorisiert hat.

  3. Wenn sie überhaupt einen Sinn haben, möchte Ihr neuer Arbeitgeber keinen Teil des Codes, den Sie von Ihrem früheren Arbeitgeber übernommen haben. Je mehr Sie sich auf eine Arbeit "beziehen", die Sie für einen früheren Arbeitgeber geleistet haben, desto mehr gefährden Sie Ihren neuen Arbeitgeber.

  4. Wenn Sie bei New Employer jemals versehentlich feststellen, dass Sie noch eine Kopie der Dinge haben, die Sie für Old Employer getan haben, wird Ihr Chef bei New wahrscheinlich feststellen, dass Sie eine Kopie seines Codes nehmen, wenn Sie zu einem anderen wechseln Job. Das passt vielleicht nicht zu ihm oder ihr.

  5. Selbst wenn ich Abschreiben Sie keine echten Linien oder nur vage Vorstellungen von Ihren alten Sachen einfach Ihre alte Sachen in Ihrem Besitz mit Verdacht erwecken könnte , dass Sie könnte es für etwas verwenden. Stellen Sie sich vor, der alte Arbeitgeber verklagt den neuen Arbeitgeber, und als einer von wenigen Arbeitnehmern, die von Alt zu Neu gewechselt sind, stellen Sie plötzlich fest, dass Sie eine Kaution hinterlegen. Keiner von Ihnen hat den Code von Old tatsächlich in das Produkt von New kopiert, aber der Anwalt vor Ihnen fragt: "Mr. SuperFoo, haben Sie jetzt oder zu irgendeinem Zeitpunkt, seit Sie Old Employer verlassen haben, eine Kopie eines Codes in Ihrem Besitz, den Sie oder hat noch jemand bei Old Employer geschrieben? "

  6. Sie brauchen den Code, den Sie letzten Monat, vor einem Jahr oder länger geschrieben haben, nicht. Sie haben das Problem einmal gelöst, und jetzt wissen Sie, wie Sie das Problem erneut lösen können. Oder Sie wissen möglicherweise, wie Sie das Problem nicht lösen können - Ihre neue Implementierung ist besser, weil Sie Erfahrung haben.

  7. Es gibt bessere Wege. Es ist schwierig, etwas Nützliches zu lernen, indem man alten Code aus dem Kontext liest. Ein Tagebuch oder Tagebuch, in dem beschrieben wird, was Sie lernen, welche Ideen Sie haben usw., ist später weitaus nützlicher.

  8. Auch wenn Old Employer weiß, dass Sie ihren Code haben und damit einverstanden sind, möchten Sie ihn trotzdem nicht! Das Einzige, was daraus entstehen kann, ist ein Anruf um 3 Uhr morgens: „Hey, SuperFoo? Wie geht es dir? System, und wir haben es auf ein paar Dateien eingegrenzt, die Sie geschrieben haben und die unser neuer Typ einfach nicht versteht. Ich weiß, dass es spät ist, aber könnten Sie ihn durch SuperDuper.pl führen? "

Vergiss es. Du brauchst es nicht.


7
Wenn die Medien, auf denen Sie die Inhalte aufbewahren, verloren gehen oder gestohlen werden, ist dies außerdem eine Menge Ärger. Um ehrlich zu sein, bevorzuge ich es, wenn möglich, jegliche Art von VPN-Konnektivität oder -Quellen auf meinen PCs zu vermeiden. Ihr PC könnte ein Teil des Botnetzes sein, ohne dass Sie es überhaupt wissen. Warum sollten Sie es riskieren?
Coder

8
Hervorragende Antwort! Beim Verlassen meines alten Arbeitgebers wurde mir tatsächlich eine Kopie des Codes (oder ein fortgesetzter Zugriff) angeboten. Genau aus Gründen, die nahe an Nummer 8 lagen, lehnte ich ab. Schließlich gab es einen Grund, von ihnen zurückzutreten. Wenn ich immer noch nach ihnen
suchen

79
+1: Du brauchst es nicht Der schwierige Teil besteht darin, herauszufinden, was zu schreiben ist, und es nicht wirklich zu schreiben. Wenn Sie es ein zweites Mal schreiben, wird es wahrscheinlich noch besser sein.
Kevin Cline

6
Wenn ich ein Problem mit meinem Code löse, neige ich dazu, die Lösung für ein Blog zu schreiben. Kein Quellcode aus meiner Arbeit, sondern generischer Code, der dem gleichen Muster folgt (einfache Zeile oder ein paar Zeilen, um das Ziel zu erreichen - keine Unmengen an Code). Ich finde, dass dies eine großartige Methode ist, um das zu speichern, was ich in früheren Jobs gelernt habe. +1 für Kugel # 7!
Gaʀʀʏ

11
Sollte es nicht einen Schwellenwert für die Menge an Code geben, die für diesen Zweck geeignet ist? Wenn ich for (int i=0; i < N; ++i)in meinem Code verwende, ist es sicherlich nicht illegal, ihn bei einer anderen Firma zu verwenden ...
vsz

159

Ich behalte immer eine Kopie des Codes, den ich schreibe, und bringe ihn zwischen den Jobs. Nachfolgende Arbeitgeber können den Code nie sehen / ausführen, aber ich verwende ihn zu Hause als Referenz: "Ah ja, habe ich nicht etwas Ähnliches für Project X getan?".

Ist das legal? Hängt von der Gerichtsbarkeit und den Umständen ab, ist aber ziemlich häufig. In moralischer Hinsicht habe ich kein Problem damit, vorausgesetzt, Sie geben neuen Arbeitgebern nicht einfach einen Code ... Es ist eine Erinnerung und eine Demonstration Ihrer Aktivitäten, anstatt eine kostenlose Ressource für Ihren Arbeitgeber.

[Die Kehrseite davon ist die unvermeidliche Schande, die entsteht, wenn man sich älteren Code ansieht: 'Was habe ich gedacht? Warum um alles in der Welt habe ich das so gemacht?


35
+1 Und es ist nicht einmal relevant, ob es legal ist. Viele von uns machen es trotzdem. Es schadet Ihrem früheren Arbeitgeber nicht (Sie verkaufen den Code nicht an einen Konkurrenten), und es kann sowieso nicht geregelt werden. In gewisser Weise "erinnerst" du dich, wie du ein Problem für einen früheren Arbeitgeber gelöst hast, und stiehlst "dieses Geheimnis" für sie - auf eine Weise, die nicht reguliert werden kann, bis sie die Gedankenkontrolle erfinden;)
Andres F.

89
@AndresF. Das ist nichts anderes als eine Rationalisierung. Der Code ist Eigentum Ihres alten Arbeitgebers, Ihre Erinnerungen sind es nicht. Wenn Sie sich daran erinnern, wie Sie ein Problem gelöst haben, brauchen Sie den Code nicht. Wozu also?
Caleb

10
+1 für das moralische Argument. Persönlich folge ich dem, hauptsächlich, weil der Großteil meines Codes nicht domänenspezifisch ist. Ich erinnere mich, wie ich etwas gelöst habe, aber nicht unbedingt die Nuancen davon.
Telastyn

46
Im Falle eines Unternehmensvorwurfs des Diebstahls von geistigem Eigentum wirkt sich eine Kopie des Codes als schwerwiegender Faktor gegen Sie aus. Die Erinnerung daran zu haben, ist es nicht. Das ist der unterschied
Oleksi

13
@Caleb Unabhängig davon nehmen viele Entwickler Codestücke, nachdem sie das Programm verlassen haben. Dies ist eine völlig andere Aktion als die Verwendung dieses Codes, um gegen Ihren alten Arbeitgeber anzutreten oder ihn zu verletzen. Sie wird normalerweise nur als Referenz herangezogen Sie wollen, aber es ist immer noch weit verbreitet und verletzt niemanden. Sie können Ihre kollektiven Köpfe in den Sand stecken oder behaupten, dass es falsch ist, aber es passiert immer noch passieren, Sie sind in für eine Überraschung!
Andres F.

51

Das ist eine sehr schlechte Idee. Dieser Code gehört Ihnen (rechtlich gesehen) nicht und sein Besitz kann Sie in große Schwierigkeiten bringen. Dies gilt umso mehr, wenn Sie zu einem neuen Job wechseln und den Quellcode trotzdem beibehalten. Noch schlimmer, wenn es ein Konkurrent ist. Ihre Firma würde sich nicht freuen, wenn Sie Zugriff auf ihren Quellcode hätten, wenn Sie nicht mehr für sie arbeiten.

Es geht darum, Ihr Risiko zu managen. Es wird natürlich erwartet, dass Sie Dinge von einem früheren Arbeitgeber behalten, die Sie woanders verwenden können. Dies ist der Grund, warum Ihre Unterschriften zu Wettbewerbsverboten gemacht werden, die X Monate / Jahre nach dem Verlassen der Unterschriften bestehen. Wenn Sie jedoch über den Code verfügen, sind Sie anfälliger für jemanden, der Sie beschuldigt, den Unternehmenscode unverblümt kopiert zu haben (auch wenn Sie dies nicht getan haben). und nur die gleichen Ideen verwendet). Lohnt es sich, den Code zu haben, um dieses Risiko zu managen?

Sicherlich ist das nützliche Zeug, das Sie durch das Schreiben des Codes erhalten haben, nicht die exakte Syntax. es ist das Wissen, das Sie gewonnen haben. Es lohnt sich wahrscheinlich nicht, mit all diesen rechtlichen Dingen umzugehen.


9
Es ist keine schlechte Idee, es sei denn, in Ihrem Büro werden strenge Sicherheitskontrollen durchgeführt (z. B. das Verbieten von E-Mails und Pendrives). Es wird sowieso niemand Ihren Heimcomputer durchsuchen, und es versteht sich, dass Entwickler Wissen aus ihren früheren Jobs entfernen. Sie können das nicht verhindern, und es wäre unvernünftig, dies zu tun, unabhängig davon, ob der Code "gespeichert" oder wörtlich kopiert wird. Was Sie als Arbeitgeber tun können , ist, keine Wettbewerbsklauseln, NDAs oder andere gesetzliche Mechanismen in Ihrem Land durchzusetzen.
Andres F.

14
@Malfist Nein, das tust du nicht. IANAL, aber es ist ziemlich sicher, dass zumindest in den USA die Arbeitsprodukte, für deren Herstellung Sie jemand bezahlt, ihr Eigentum sind und nicht Ihr Eigentum. Siehe Arbeit zum Mieten in Wikipedia.
Caleb

5
@Malfist Wieder nein. Siehe den Link in meinem vorherigen Kommentar.
Caleb

4
@Malfist: "Wenn Sie der einzige Entwickler sind und das Urheberrecht nicht aufgegeben wurde, können Sie den Code beim Verlassen des Programms mitnehmen (das tue ich immer)." Sie sind sich nicht sicher, ob Ihre Verträge den Großteil der Realität widerspiegeln. In den meisten Verträgen für das Mieten von Software ist ausdrücklich festgelegt, dass Sie alle Quell- und Binärdateien bereitstellen und das Eigentum und Urheberrecht an diese übertragen müssen. Das ist ziemlich normal für Freiberufler. Sie können das aushandeln, aber ich erwarte, dass es so ziemlich De-facto-Klauseln in Verträgen gibt (sowohl für interne als auch für freiberufliche Verträge).
Haylem

5
Betrachten wir hypotetisch einen Entwickler, der sich an jede einzelne Zeile erinnert, die er während seiner Karriere geschrieben hat. Wäre es illegal, wenn er diesen Speicher bei der Arbeit an zukünftigen Projekten verwenden würde? Warum unterscheiden Sie zwischen dem Speichern Ihres Codes und dem Speichern einer Kopie in Ihrer privaten Festplatte? Wenn Sie ein Beispiel aus Ihrer Erfahrung nehmen dürfen, sollten Sie es auch dann tun, wenn es in Ihrem Notizbuch geschrieben ist, anstatt es in Ihrem Gehirn zu speichern. Und wenn Sie Ihren alten Code, den Sie auf Ihrem PC gespeichert haben, nicht noch einmal lesen dürfen, sollten Sie ihn auch nicht "erinnern" dürfen, was offensichtlich keinen Sinn ergibt.
Nadir Sampaoli

36

Das ist nicht ungewöhnlich.

Ich habe eine Kopie von fast 1 für jeden Code, den ich professionell geschrieben habe, und mit Sicherheit den gesamten Code aus meinen aktuellen Projekten, unabhängig davon, wer ihn geschrieben hat 2 . Zusammen mit dem Code habe ich eine Menge Papierkram, der klar definiert, was ich damit machen kann und was nicht. Nur den Code zu haben, ist nicht das Gleiche wie zu versuchen, vom Code zu profitieren.

Das heißt, es ist eine rechtliche Frage, und rechtliche Fragen sind in der Regel äußerst kompliziert und lokalisiert. Im Zweifelsfall müssen Sie unbedingt mit einem Anwalt sprechen. Ich kann meinen Code behalten, aber ich bin zu 99% sicher, dass ich dafür keine Probleme bekomme.

1 Was fehlt, ist meistens das, was ich nicht archivieren wollte. Aus rechtlichen Gründen fehlt nur ein kleiner Projektcode.
2 Die Natur der Projekte und meine Rolle in ihnen, ich bin einer der Leute, die zumindest eine Vorstellung davon haben müssen, was wohin geht, auch wenn ich nicht an der Erstellung eines bestimmten Moduls beteiligt war.


4
@ Haylem Ich bin nie in den Räumlichkeiten des Unternehmens;)
Yannis

3
Dennoch bin ich sicher, dass Sie wissen, was ich meinte, und dass es wahrscheinlich nicht wichtig ist, wo Sie physisch sind :)
Haylem

3
Ich hörte einen Entwickler auf einer WordPress-Konferenz sprechen und er sagte etwas wie: "Wenn ich Auftragsarbeiten für Sie erledige, stelle ich sicher, dass Sie den Code besitzen, den ich für Sie schreibe, aber das bedeutet nicht, dass ich nichts gelernt habe neu, indem Sie Ihren Code schreiben. "
Programmierer

3
@Caleb Die richtige Dokumentation zu haben, mag ungewöhnlich sein (ich weiß es nicht), aber ich denke nicht, dass es sinnvoll ist, Kopien des Codes aufzubewahren. Ich habe einfach beides;)
yannis

2
@Krelp, Verschlüsselungsschlüssel, wie Schlüssel für Safes, können über eine Vorladung erzwungen werden.
Malfist

29

Ich sehe Ihren festgenommenen Chinesen und erhebe Sie mit einem "Code ist kein Eigentum, daher kann er nicht gestohlen werden".

Ref .: Code "kein physisches Eigentum", Gerichtsurteil im Spionagefall Goldman Sachs

Nachdem das gesagt worden ist.

  • Behalte ich Code, den ich schreibe? Absolut.
  • Behalte ich volle Projekte? Absolut.
  • Vergewissere ich mich, dass ich meinen Code von meinem Arbeits-PC auf einen Heimcomputer schreibe? Darauf kannst du wetten!
  • Verwende ich diesen Code jemals in einem anderen Unternehmen oder in einem persönlichen Projekt? Nee.
  • Schaue ich mir oft alten Code an und gehe zu WtF !? Die ganze Zeit.

14
+1 Hehe, eine nette, ehrliche Antwort. Das Beste daran ist, dass Sie tatsächlich nie wieder zu altem Code zurückkehren. Sie fühlen sich einfach sicherer, wenn Sie es mitnehmen und es in Ihrem Leben nie wieder anschauen!
Andres F.

War dies nicht auch ein großes Problem im aktuellen Fall von Oracle gegen Google?
Robertc

1
Ich stimme dir vollkommen zu. Ich mache das selbe Es ist eine sehr gute Referenz.
Andrea Girardi

2
Code ist kein Eigentum, daher kann er nicht gestohlen werden. Dies ist eine schreckliche Zusammenfassung des Falles von Goldman Sachs. Der Russe wurde freigesprochen, nicht weil er nichts Falsches getan hatte, sondern weil sein Diebstahl nicht den gesetzlichen Bestimmungen entsprach, die der Staatsanwalt gegen ihn verhängt hatte. Das bedeutete nicht, dass er nicht gegen seinen Vertrag mit GS verstieß oder gegen die IP-Gesetze verstieß. Bitte lesen Sie den Artikel genauer durch und nehmen Sie möglicherweise einige der folgenden Kommentare auf.
Nate

In Verbindung stehender Artikel: Hat Goldman Sachs es übertrieben, seinen Ex-Programmierer strafrechtlich zu belasten? . Dies ist auch ein gutes Beispiel dafür, dass selbst wenn Sie am Ende gewinnen, der Rechtsstreit selbst sehr weh tun kann.
CodesInChaos

10

Hier ist eine einfache Frage für Sie. Gehen Sie zu Ihrem Chef und sagen Sie ihm: "Ich habe eine Kopie des gesamten Codes, den ich während meiner Arbeit hier geschrieben habe. Nur den Code, den ich geschrieben habe, nicht andere Leute. Dies dient meiner eigenen Ausbildung und ich werde ihn niemals herausgeben."

Ihre nächsten Handlungen werden diktieren (ja, dieses Wort gibt es in Nordamerika / der Welt), ob Sie in ihren Augen falsch oder richtig liegen.

Unabhängig von Ihrer eigenen "Ethik" arbeiten Sie für einen Arbeitgeber. Wenn sie der Meinung sind, dass das, was Sie tun, falsch ist, dann ist es aufgrund ihrer Ethik falsch. Wenn sie dich bezahlen und du bei ihnen angestellt bist, ist es an deinem Gericht, ihnen entweder zuzustimmen oder nicht zuzustimmen, was dich entlassen könnte.

Jetzt geht es um Integrität. Ich habe es einem früheren Mitarbeiter überlassen, einen Teil unseres Codes zu übernehmen, aber ich habe alles zuerst überprüft.

Nur weil Sie glauben, im Recht zu sein, sind Sie nicht im Recht. Normalerweise unterzeichnen Softwareentwickler Verträge, wenn sie angestellt sind. Wenn Sie eine unterschrieben haben, müssen Sie nach Ihrem Wort leben.


"Während ich hier gearbeitet habe" impliziert, dass die betreffende Person nicht mehr Ihr Chef ist. Wenn es Ihr ehemaliger Chef ist, warum möchten Sie ihn dann fragen?
Alexander

Warum? Verträge? Integrität?
Ryan Ternier

Sie können Code, den Sie geschrieben haben, behalten, während Sie ihn für nichts verwenden, und gleichzeitig Ihre Verträge einhalten und Ihre Integrität bewahren.
Alexander

2
Wenn Sie einen Vertrag unterzeichnen, in dem angegeben ist, dass der gesamte Code Eigentum Ihres Arbeitgebers ist, verstößt er gegen diesen Vertrag, wenn er nicht weiß, dass Sie ihn haben oder Ihnen die Erlaubnis dazu erteilt hat. Es ist effektiv Diebstahl. Ja, es ist "Code", digitale Nullen und Einsen, aber in den meisten Fällen ist es schwarz und weiß.
Ryan Ternier

Es ist die klassische "Piraterie ist Diebstahl" -Diskussion.
Alexander

8

ist es ungewöhnlich, dass Entwickler eine persönliche Kopie des von ihnen geschriebenen Codes aufbewahren

Die Beantwortung der Frage direkt werde, sage ich in meiner Erfahrungen dies ist ungewöhnlich. Die Ausnahme , die ich gesehen habe, sind Leute, die viel freiberuflich tätig sind und den Code für die zukünftigen Wartungs- und Verbesserungsprojekte ihrer Kunden parat haben die Gewohnheit, die Verträge meiner Freunde zu überprüfen (wer weiß). Menschen, die ich kenne und die in größeren Unternehmen arbeiten, haben nie zugegeben , dass sie Code von früheren Arbeitgebern behalten.

Ich weiß, dass ich es nicht tun würde, weil ich mir keine einzige Situation vorstellen kann, in der es nützlich wäre (ganz zu schweigen davon, dass mein aktueller Arbeitgeber solche Dinge verbietet - ich müsste nur die Dokumente nachschlagen, um sicherzugehen ). Der Code, den ich geschrieben / korrigiert habe, ist normalerweise so spezifisch für eine bestimmte Geschäftsanforderung, dass ich mir nicht vorstellen kann, dass er in Zukunft jemals wieder so auftaucht, dass es einfacher wäre, den alten Code wiederzuverwenden, als neuen zu schreiben Code.


3
Als Freiberufler werde ich den gesamten Code behalten. Eine Wiederverwendung ist äußerst unwahrscheinlich, aber eine eventuelle Behebung wird von mir übernommen (zum Beispiel, wenn der Arbeitgeber jemanden anstellt, der den Code vermasselt, und mich erneut anstellt, um ihn zu reparieren).
Camilo Martin

1
In meiner freiberuflichen Tätigkeit finde ich eine Menge Code, der häufig wiederverwendet wird. Wie oft schreibe ich denselben Benutzeranmeldungscode, bevor ich ihn wieder verwende? Während ich Code für die Wartung verwahre, werden die allgemeinen Codebereiche normalerweise kopiert. Wenn ich einen Code gefunden habe, der zwischen zwei Projekten im Wesentlichen identisch ist, erstelle ich eine verallgemeinerte Kopie davon und kopiere ihn nach Bedarf in andere Projekte.
Chris

8

Früher war es üblich, dass Entwickler ihre persönliche Bibliothek mit Routinen hatten, mit denen sie Probleme im aktuellen Job lösen konnten. Die Quelle würde zurückbleiben, wenn der Entwickler ging, aber alle Verbesserungen gingen auch mit ihm.

Dies führte zu einer Win-Win-Situation. Es war auch nur eine Teilmenge des gesamten geschriebenen Codes.

Natürlich würde das meiste, was sich in persönlichen Bibliotheken befand, heute in Standardbibliotheken sein.


In einigen Umgebungen gibt es eine klare Abgrenzung zwischen Bibliotheks- oder Komponentencode oder Klassen, die ausdrücklich für die Wiederverwendung vorgesehen sind (Parser usw.) und solchen, die spezifisch für die Problemdomäne sind. Der Code, der für die jeweilige Problemdomäne spezifisch ist (XWares wichtigste Inhouse-App oder kommerzielle Entität), ist möglicherweise außerhalb dieses Bereichs nicht nützlich, aber die Low-Level- oder wiederverwendbaren Komponenten / Bibliotheken können in der Tat sehr nützlich sein.
Warren P

6

In den meisten Teilen Nordamerikas ist es im Rahmen einer Beziehung zwischen Arbeitgebern und Arbeitnehmern illegal, digitales Material (dh Quellcode) von den Geräten Ihres Arbeitgebers ohne vorherige gesetzliche Genehmigung des Arbeitgebers zu übertragen oder zu übertragen.

Zu den gesetzlichen Bestimmungen bezüglich der Definition eines Arbeitnehmers am Arbeitsplatz gehört die Beschreibung, dass der Arbeitnehmer keine eigenen Arbeitsmittel zur Verfügung stellt, sofern im Arbeitsvertrag nichts anderes bestimmt ist, mit Ausnahme von Geschäften, bei denen der Arbeitnehmer zum Kauf verpflichtet ist ihre eigene Ausrüstung (dh Bauarbeiter).

Die meisten Arbeitsgesetze in Nordamerika definieren den Arbeitgeber als den Hauptrisikoträger in einem Verhältnis von Arbeitnehmer zu Arbeitgeber. Der Arbeitnehmer wird für seine / ihre Zeit bezahlt, während der Arbeitgeber Materialien und Ausrüstung zur Verfügung stellt und die arbeitsbezogenen Tätigkeiten des Arbeitnehmers kontrolliert.

Zu welchem ​​Zeitpunkt in dieser Beziehung ist es in Ordnung, dem Arbeitgeber wertvolles Material zu stehlen, der für die Erstellung dieses Materials bezahlt hat und Risiken eingegangen ist?

Das Hauptproblem dabei war die Frage "Quellcode, den Sie geschrieben haben?". Nein, Sir, Sie haben es nicht geschrieben. Unter Anleitung Ihres Arbeitgebers haben sie es geschrieben. Sie sind nur die angeheuerte Hand, die es abgetippt hat. In Nordamerika gibt es kein Gericht, das Ihnen zur Seite steht, wenn Ihr Arbeitgeber rechtliche Schritte unternimmt, um sein Eigentum zu sichern. Durch einfaches Kopieren des Quellcodes auf einen USB-Stick gelangen Sie in heißes Wasser.

Wenn ein Arbeitgeber Ihnen erlaubt, Ihre eigene Ausrüstung (z. B. einen Laptop) zu verwenden oder das Material zu übermitteln, ist dies eine andere Sache. Der Arbeitgeber muss Sie bei Kündigung darüber informieren, dass Material zurückgegeben / vernichtet werden muss.

Ich dachte nur, ich würde diese Antwort posten, weil es so scheint, als ob einige Leute dachten, dies sei eine Grauzone. Ich glaube wirklich nicht, dass Sie als Entwickler über das Internet posten sollten, dass Sie Kopien der Materialien des Arbeitgebers aufbewahren. Ich meine, Sie kannten die Antwort auf diese Frage eindeutig schon, weil Sie ein neues Mitgliedskonto erstellt haben, nur um diese Frage zu stellen. ;)


Der Arbeitgeber muss Sie bei Kündigung darüber informieren, dass Material zurückgegeben / vernichtet werden muss. Ist das wirklich wahr? Ist der Arbeitgeber dazu gesetzlich und / oder vertraglich verpflichtet?
Radu Murzea

Der Arbeitgeber ist hierzu nicht gesetzlich verpflichtet, kann jedoch jederzeit die Rückgabe von ihm gehörenden Materialien von einem Mitarbeiter verlangen, es sei denn, es besteht eine Vereinbarung zwischen dem Arbeitgeber und dem Mitarbeiter, die es dem Mitarbeiter ermöglicht, diese Materialien aufzubewahren.
Reactgular

5

Ich habe das in der Vergangenheit vor ein paar Jobs gemacht.

Ich bin jedoch noch nie zurückgegangen und habe es mir angesehen. Ich habe gelegentlich Ideen und Dinge, die ich gelernt habe, wiederverwendet, aber ich habe keinen Grund gefunden, zurück zu gehen und mir den Code anzusehen.

Also würde ich mich nicht mehr darum kümmern. Es ist rechtlich zweifelhaft, und ich habe es in der Praxis noch nie für nützlich befunden.


4

Sicher. Ich mag es, eine Kopie aller meiner Arbeiten aufzubewahren - ob es sich um Code handelt oder nicht. Nennen Sie es ein Sammelalbum, wenn Sie möchten. Die Regeln brechen? Vielleicht.

Die Kommentare zum Wettbewerbsvorteil sind irrelevant, es sei denn, Ihr nächster Arbeitgeber ist ein direkter Wettbewerber. Wenn Sie von einer Telefongesellschaft zu einem Softwarehaus oder von einem Spieleentwickler zu einem Datenbankentwickler wechseln, spielt dies keine Rolle. Wenn Sie tatsächlich vorhaben, Code wiederzuverwenden, ist das eine andere Geschichte.

Interessanterweise erfahren Sie oft, dass Webentwickler eine "Kiste mit Werkzeugen" mit einem Standardsatz von JavaScript- Bibliotheken und CSS- Stylesheets mitbringen. Aber ich habe das hier nicht gesehen.


3

Ich habe kürzlich den alten Code gelöscht, den ich von meinem vorherigen Arbeitgeber behalten habe. Ich habe nur Code-Teile aufbewahrt, die ich für die Zukunft für nützlich hielt. Ich habe tatsächlich festgestellt, dass ich erheblich weitergezogen bin, seit ich gegangen bin, und ich habe nie auf den alten Code verwiesen. Ich habe viel bessere Wege gefunden / entdeckt / gelernt, um dieselben Probleme zu lösen.

Es war eine schöne kleine Reise in die Vergangenheit :)


2

Ich denke, es muss eine Unterscheidung zwischen einem Entwurfsmuster und tatsächlichem Code geben (zeilenweises Kopieren).

Etwas Pseudocode aufzuschreiben, ist eine gute Möglichkeit, X in Y zu laden. Den ganzen Code aufzuschreiben ist etwas anderes.


1

Mit Erlaubnis Ihres Arbeitgebers veröffentlichen Sie den sauber wiederverwendbaren Code als Open-Source-Projekte, die andere Personen verwenden können. Dann kann Ihr Arbeitgeber auch von Beiträgen anderer Personen zu diesem Kodex profitieren.

Auf diese Weise können Sie den Code legal aufbewahren, ein öffentliches Portfolio von Code aufbauen, das Sie geschrieben haben, und der Code kann anderen Menschen zugute kommen.


1

Aus einer anderen Anzahl von Gründen, zum Beispiel wenn Sie von zu Hause aus arbeiten, haben Sie möglicherweise bereits eine Kopie, und ich würde diese nach einem Job nicht löschen. Warum tun Sie das? Es geht nicht gegen meine Überzeugungen oder so.

Aber in Bezug auf die Verwendung ist es nicht so nützlich wie ein Blog-Beitrag!

Fazit: Schreiben Sie Ihren Code, bloggen Sie über die Probleme, mit denen Sie konfrontiert waren, und wie Sie sie gelöst haben (insbesondere wenn es sich um allgemeine und umfassende Dinge handelt), und stellen Sie sicher, dass Sie ein (möglicherweise verschlüsseltes) Souvenir aus dem letzten Job behalten.


1

In der Finanzabteilung befasst sich das CFA mit diesem Problem. Es ist Ihnen nicht gestattet, Informationen in Bezug auf Kunden oder Ihre Arbeit für das Unternehmen (in diesem Fall Code) zu übernehmen. Aber nichts hindert Sie daran, sich zu merken, was Sie können, und es später aufzuschreiben.

Ich bin mir nicht sicher, wie legitim das ist, aber ich denke, Ihre beste Wette ist es, Ihren Quellcode zu verlassen, aber Ihre Ideen aufzuschreiben und wie Sie es getan haben, sobald Sie nach Hause gekommen sind. Stehlen ist Stehlen und vor Gericht versuchen sie nur herauszufinden, ob Sie den Code kopiert haben oder nicht.


Denken Sie daran, dass einige Arbeitgeber ihr Bestes geben werden, um Sie daran zu hindern, "Ihre Ideen aufzuschreiben", wenn Sie nach Hause kommen. Das Verlustszenario für sie ist kein kopierter Code, sondern Wettbewerb gegen sie - und dafür sind Ideen weitaus besser. Ich bin mir nicht sicher, ob es durchsetzbar ist, aber einige versuchen, Sie dazu zu bringen, zu glauben, dass sie Ideen haben, die Sie möglicherweise während der Arbeitszeit haben.
Andres F.

1
@AndresF. Ich habe einmal bei einem Hedgefonds gearbeitet, der versucht hat, dies zu verhindern. Sie konnten es ehrlich gesagt nicht verhindern, also ließen sie die Leute Wettbewerbsverbote unterzeichnen und bezahlten sie, damit sie 1-2 Jahre nach ihrem Rücktritt nicht arbeiteten. Obwohl extrem teuer (Sie zahlen 2 Jahre Gehalt an jemanden, der nicht für Sie arbeitet), macht es Ihr Wissen abgestanden, wenn Sie gehen und als Wettbewerbsbedrohung nutzlos.
Lostsoul

+1 nur für Ideen und nicht für den Code. War an einer Firma beteiligt, die einen Ex-Programmierer verklagte, weil er Code gestohlen und ein ähnliches Produkt verkauft hatte. Der Richter entschied, dass er den Code gestohlen haben muss, da die Bugs identisch waren.
JQA

Ich habe gesehen, dass viele Arbeitgeber von einem neuen Mitarbeiter die schriftliche Zustimmung verlangen, dass sie keine anderen geschäftlichen Tätigkeiten ausüben, während sie beim Arbeitgeber beschäftigt sind, und dass alle anderen Projekte, die der Arbeitnehmer nebenbei ausführt, ebenfalls Eigentum des Arbeitgebers sind. Ich denke, dieses Thema an sich ist ein ganz anderes Thema, aber diese Vereinbarungen gibt es in den meisten Arbeitsverträgen.
Reactgular

@MathewFoscarini Ich stimme zu. In meiner Firma benötigen wir eine schriftliche Genehmigung der Mitarbeiter, bevor sie sich für etwas engagieren, von dem sie einen Vorteil erhalten (einschließlich Nebenprojekte, Wohltätigkeitsarbeit usw.). Wenn Sie das Auto Ihres Nachbarn reparieren und er Ihnen ein Bier kauft, würde es Qualität haben, obwohl die Mitarbeiter erkennen, dass wir es höchstwahrscheinlich nicht weiterverfolgen würden.
Lostsoul

1

Wenn Sie Ihren Code mit dem Ziel speichern, ihn später wiederzuverwenden, treten zwei Probleme auf:

  • Wenn der Code domänenspezifisch ist, ist er wahrscheinlich auch proprietär. Wie auch immer, keine zwei Unternehmen oder Probleme sind genau gleich und der Versuch, ein Problem mit der Lösung für ein anderes zu beheben, ist kein gutes Muster.

  • Wenn der Code, den Sie speichern, ein häufiges Problem löst, sollten Sie Ihren Ansatz in Frage stellen. Warum unternehmen Sie große Anstrengungen, um ein häufiges Problem zu lösen, wenn es sich wahrscheinlich um vorhandene (und bessere) Open-Source-Lösungen handelt?

    Wenn Sie der Meinung sind, dass Sie die beste Lösung für ein häufiges Problem haben, sollten Sie versuchen, Ihren Code öffentlich in einem öffentlichen Repository und / oder einem Code-Blog zu veröffentlichen, wenn Sie ihn schreiben, und nicht für sich behalten. Ihr Chef sollte keine Einwände gegen die Freigabe einer allgemeinen Bibliothek erheben oder Sie zwingen, das Rad neu zu erfinden (wenn er dies tut, einen neuen Job zu finden).

Wenn Sie Ihren Code speichern, weil Sie ihn einem potenziellen Arbeitgeber zeigen oder Ihre Fähigkeiten verbessern möchten, empfehle ich Ihnen, stattdessen zu einem Open-Source-Projekt beizutragen.


1
Der zweite Punkt geht davon aus, dass es eine Open-Source-Lösung geben würde, die alles andere als sicher ist. Vor allem aber ist ein Teil des Codes, den ich beibehalten habe, Code, der zeigt, wie ich Komponenten / Dienste von Drittanbietern verwendet habe. Wenn ich beispielsweise eine Lösung für anständige Zahlungen entwickle, die sich in Paypal integrieren lässt, nehme ich den Code, auf den ich später Bezug nehme, damit ich das Rad beim nächsten Mal nicht neu erfinden muss.
cjmUK

0

Ich habe noch keinen Code für Arbeitgeber gespeichert. Freiberufliche Mitarbeiter (es kann schwierig sein, einen Kunden zu unterstützen, wenn ich meinen Code verliere).

Ich überlege jedoch, den Code, den ich für diesen Arbeitgeber erstellt habe, beizubehalten. Der Grund ist, dass ich ein Webentwickler bin und viele clientseitige Dinge entwickelt habe, die ziemlich hübsch aussehen. Ich habe sie nicht entworfen, aber ich habe sie umgesetzt und bin oft auf die Idee gekommen. Ich möchte eine Kopie dieses Materials behalten, um ein Online-Portfolio aufzubauen. Wie wir alle wissen, halten Websites nicht ewig, sodass ich nicht realistisch davon ausgehen kann, dass meine Arbeit online bleibt. Wenn ich eine Sicherungskopie habe, kann ich ein Portfolio online haben.

Ich weiß, dass Designer oft Kopien ihrer Arbeiten (auch wenn es sich um Leiharbeiten handelte) für Portfoliozwecke aufbewahren.

Ich bin mir nicht sicher, wie rechtmäßig dies ist (es wird in meinem Vertrag nicht ausdrücklich erwähnt).


4
but what are your thoughts on this?Bitte laden Sie zu Ihrer Antwort nicht offen ein, indem Sie eine weitere Frage stellen. Sie teilen uns mit, ob wir eine Kopie des gesamten Codes behalten sollen, den wir schreiben. Sie können die Antwort verbessern, indem Sie sie bearbeiten.
maple_shaft

1
Ich denke, es gibt einen Unterschied, ob Sie die ursprünglichen Quelldateien (in Ihrem Fall Grafikdateien wie .ai oder .psd) beibehalten oder einen Screenshot des Endprodukts für Ihr Portfolio haben. Sie sollten immer noch Ihren Arbeitgeber um Erlaubnis bitten, aber dieser sollte dem letzteren mehr zustimmen.
Sarel Botha

Da die Arbeit oft interaktiver Natur ist, wird ein Screenshot nicht für ein Portfolio zugeschnitten. Das würde nur das Design zeigen (was meistens nicht meins ist). Ich könnte mit der fraglichen Arbeit einen Screencast von mir machen, aber das vermittelt immer noch keine Informationen über Latenz, Leistung und browserübergreifende Kompatibilität.
Xandor Schiefer

0

Nun, für die Entwicklung der Geschäftslogik für mein Unternehmen kann ich den Code nicht behalten, da er illegal und persönliches Eigentum des Unternehmens ist. Als Entwickler weiß ich, wie man diese Logik entwickelt, damit ich diese Logik im Kopf behalten kann. Grundsätzlich ist es standardmäßig in Ihrem Kopf gespeichert, und wenn Sie es das nächste Mal benötigen, sollten Sie automatisch die Logik / bessere Logik als die vorherige implementieren. Es ist die menschliche Natur und Intelligenz. :)

Das Problem entsteht jedoch, wenn Sie eine Utility-Logik entwickeln. Diese ist wiederverwendbar und immer wichtig. Sie wird möglicherweise häufig in verschiedenen Projekten benötigt. Also solltest du es bei dir behalten wollen.

Ich habe eine alternative Lösung dafür. Erstellen Sie einfach eine JAR- Datei ohne Quelle / Dokumentation, und fügen Sie sie als externe JAR- Datei eines Drittanbieters in Ihr Projekt ein. Wahrscheinlich können Sie dadurch Ihre Verantwortung sowie Ihre Selbstzufriedenheit bestätigen, dass Sie den Code haben ;)


1
Der andere Ansatz ist, dass ich nach Hause gehe und einen Blog-Beitrag über die bestimmte API oder Technik schreibe, die mich interessiert, wenn ich auf ein nützliches / wiederverwendbares Stück Code stoße, das ich "mitnehmen" möchte mich. Dieser Blog-Beitrag bezieht sich natürlich weder auf meinen Arbeitgeber, noch verwendet er zeilenweise den Code, der auf den Cent meines Arbeitgebers geschrieben ist.
Joel Martinez

Wenn es Regeln gibt, muss es sich um eine Anti-Regel handeln. Was Sie zu Ihren Gunsten nutzen können. Es gibt verschiedene Techniken, um dies zu erreichen. Das Wichtigste ist, den Job klar zu halten.
Soumyadip Das am

0

Ich behalte keinen Code aus einem einfachen Grund: Die Firma hat mich dafür bezahlt, den Code für sie zu schreiben. Ich gebe ihnen meinen Code und sie geben mir meinen Gehaltsscheck. Der Typ, der mein Mittagessen gemacht hat, kann einen Teil davon nicht für sich behalten. Warum sollte Code anders sein?

Wie bereits erwähnt, habe ich keine Arbeit mehr, all diese Kopfschmerzen bleiben bestehen, neue Arbeit, neuer Start, aber mit ein bisschen mehr Erfahrung und Verständnis für die Arten von Problemen in der Domäne dieses alten Jobs.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.