Ist es falsch, Code, den Sie bei der Arbeit erstellt haben, für persönliche Projekte zu verwenden?

31

An all meinen verschiedenen Arbeitsplätzen habe ich immer Code geschrieben, der mir den Eindruck gab, dass dies in anderen Situationen wirklich nützlich wäre. In der Tat schreibe ich absichtlich Code, auch wenn ich länger schreibe, von dem ich weiß, dass er mir in Zukunft helfen wird (z SubString(). B. benutzerdefinierte Funktionen). Ein guter Kandidat für diese Schnipsel sind verschiedene 'Helper'-Klassen.

Ich bin mir sicher, dass diese Snippets online woanders zu finden sind. Der springende Punkt ist jedoch, dass ich sie geschrieben habe und sie später in anderen Jobs oder für persönliche Projekte wiederverwenden werde. Derzeit unterhalte ich keine persönliche Codebibliothek, aber die Frage ist, ob es falsch ist, Code, den Sie bei der Arbeit erstellt haben, zu nehmen und ihn ( a ) für persönliche Projekte und ( b ) für andere Jobs wiederzuverwenden.

Arj
quelle
Mögliches Duplikat: programmers.stackexchange.com/questions/111434/…
ein Lebenslauf vom
2
@Michael Ähnlich, aber kein genaues Duplikat. Die Antworten sind sehr ähnlich, aber es handelt sich tatsächlich um zwei verschiedene Anliegen. Hier geht es um kleine Codeausschnitte - ein paar Klassen, eine Methode oder zwei. Bei der anderen handelt es sich um die Reproduktion eines gesamten Projekts.
Thomas Owens
Das Lustige ist, dass ich den Fluss immer in die andere Richtung finde . Normalerweise finde ich in meinen Hobbyprojekten die wirklich interessanten Codestücke, in denen ich mehr experimentiere. Sicherlich beklagt sich niemand, wenn diese erfolgreichen Ideen in meine bezahlte Arbeit gelangen. :-)
DaveGauer

Antworten:

25

Ich habe dieses Problem immer gelöst, indem ich ein persönliches Projekt hatte, in dem ich all meine verrückten Ideen und generischen Sachen unter die BSD-Lizenz gestellt habe, mit der die Leute es wiederverwenden, ändern, umbenennen, schließen und Geld dafür verlangen können es. Auf diese Weise behalte ich das Urheberrecht, kann den Code jedoch nach Belieben für diesen und jenen Arbeitgeber weiterverwenden, sodass ich das Urheberrecht am Original behalte, während der Arbeitgeber das Urheberrecht an der wiederverwendeten Instanz behält. Ich denke, wenn sie ein Problem damit hätten, müssten sie mich einfach bezahlen, um es in der Arbeitszeit umzuschreiben, was aus ihrer Sicht keinen Sinn ergibt. Darüber hinaus verwenden Unternehmen ständig BSD-Code, da es die Idee von BSD ist, Menschen und Unternehmen so ziemlich alles zu ermöglichen, was sie wollen, einschließlich der Umbenennung und des Verkaufs von BSD-Code.

Wenn der Code am Arbeitsplatz ergänzt wird, kann ich ihn natürlich nicht an anderer Stelle wiederverwenden, ohne ihn in eigener Regie neu zu schreiben. Das ist in Ordnung, da generisches Material in der Regel relativ klein ist, es sei denn, es ist ein Idee, die ohnehin erheblichen Freizeitaufwand rechtfertigt.

Schreiben Sie es auf Ihrem eigenen Zeit und die Lizenzierung der Code unter einer BSD-artigen Lizenz sollte ermöglichen es Ihnen , eine Bibliothek für sich selbst zu erhalten , die Sie so ziemlich überall verwenden können , die Sie wollen.

Was nun Verträge angeht, die behaupten, die Urheberrechte aller Ihrer persönlichen Projekte zu vernichten, so unterscheidet sich dies wahrscheinlich radikal zwischen den Gerichtsbarkeiten, aber zumindest in einigen westlichen Gerichtsbarkeiten ist es meines Erachtens so, dass ein Vertrag das nicht kann. Der Vertrag kann dies bestätigen, würde aber nicht gerichtlich durchgesetzt werden, da das Urheberrecht ausdrücklich übertragen werden muss, im Gegensatz zu einem "all your base are own us" -Deal, das niemals eingehalten werden würde die Gerichtsbarkeit, aus der ich sowieso komme). Es gibt eine Reihe von Einschränkungen für die vertragliche Aufrechterhaltung durch ein Gericht, weshalb normalerweise (und hoffentlich) eine Klausel angezeigt wird, die besagt, dass ein Teil des Vertrags nicht rechtsgültig ist Der Rest des Vertrages gilt noch.

Konsultieren Sie jedoch wie immer einen Anwalt, bevor Sie dies als genaue Rechtsberatung interpretieren. Ich wurde noch nie vor Gericht gestellt, daher kenne ich keines dieser Dinge als anwaltssichere Tatsachen. :)

Teekin
quelle
31

Das hängt von Ihrem Arbeitsvertrag ab. Heutzutage ist die wahrscheinlichste Antwort (a) Ja, das ist falsch und (b) Ja, das ist wirklich falsch. In fast allen Verträgen, die Entwicklern heute angeboten werden, ist festgelegt, dass jeder Code, den Sie während Ihrer Beschäftigung im Unternehmen schreiben (unabhängig davon, ob Sie zu Bürozeiten arbeiten oder nicht), ihnen gehört und Sie Ihr Urheberrecht automatisch auf sie übertragen. Sofern Sie nicht ausdrücklich dagegen verhandelt haben, gilt dies vermutlich für Sie.

Wie immer jedoch:

Glauben Sie uns nicht! Konsultieren Sie einen Anwalt, bevor Sie etwas möglicherweise Gefährliches tun.

Kilian Foth
quelle
7
+10 (wenn ich könnte) für "Glauben Sie uns nicht! Konsultieren Sie einen Anwalt, bevor Sie etwas möglicherweise Gefährliches tun." Beste. Beraten. Je.
Sardathrion
2
Haben Sie eine Quelle für die Aussage, dass "fast alle Verträge, die Entwicklern angeboten werden", besagen, dass "jeder Code, den Sie schreiben, während Sie im Unternehmen beschäftigt sind (ob während der Bürozeiten oder nicht)", dem Arbeitgeber gehört?
ein Lebenslauf vom
3
Diese Begriffe sind Routine in einer Weise, in der sich der Arbeitgeber zu sehr und nicht zu wenig deckt, und in vielen Fällen gibt es Raum für gesunden Menschenverstand. Das heißt, (1) Sie müssen sicher sein, dass Ihre Sichtweise des gesunden Menschenverstands mit der ihrer übereinstimmt, und (2) es ist ein großes Risiko. Ein paar Jahre später können sich die Meinungen ändern - vor allem, wenn Sie viel Geld verdienen oder wenn sie glauben, dass etwas, das Sie geschrieben haben, ihre Verkäufe schädigen könnte. Bei einer Bibliothek mit kleinen allgemeinen Hilfsprogrammen ist es wahrscheinlich einfacher, sie neu zu schreiben, ohne sich Sorgen zu machen. Etwas Wesentlicheres und du bist auf sehr gefährlichem Boden.
Steve314
4
@ MichaelKjörling. Die Quelle, nach der Sie suchen, ist Joel Spolskys ausgezeichnete Antwort zu diesem Thema in Start Ups .
TRiG
22
Eigentlich finde ich es nervig und unrealistisch, immer einen Anwalt zu fragen. Erstens, weil es normal ist, dass Sie sich irren. Wenn Sie Ratschläge zur Behebung einer kritischen Sicherheitslücke in SO geben, sagen Sie nicht "Fragen Sie einen Programmierer!". jedes Mal. Zweitanwälte sind teuer; Ehrlich gesagt, wie viele Leute werden Ihrer Meinung nach tatsächlich einen Anwalt einstellen, der eine - normalerweise - triviale Frage / Neugier stellt? Haben Sie jemals einen Anwalt engagiert, der so etwas fragt?
Thomas Bonini
9

Schreiben Sie den Code einfach nach Bedarf neu . Es vermeidet das Problem für ein paar Minuten Codierung vollständig.

Die Chancen stehen gut, dass Sie in der Zwischenzeit mehr gelernt und etwas besseres geschrieben haben. Das Umschreiben von Code macht ihn im Allgemeinen auch eleganter.

Tom Squires
quelle
Einverstanden, aber wie sieht es mit Unterbibliotheken aus, die nicht nur ein paar Minuten Code enthalten? Klassen für den Zugriff auf Datenbanken, das Erstellen von Dateien usw.? Es stimmt, dass das Umschreiben den Code verbessert
Arj
3
Es ist nicht so einfach. Jede Neuimplementierung muss sich vollständig vom ursprünglichen Code unterscheiden. Sogar das Umschreiben könnte schlecht sein. Eine bessere Version von existierenden Sachen zu machen ist definitiv schlecht. Es ist besser, es vollständig getrennt zu halten.
tp1
Wenn Sie einen proprietären Algorithmus für jemanden entwickeln, würden Sie (wahrscheinlich) in Schwierigkeiten geraten, wenn Sie ihn für einen anderen erneut schreiben würden. Es ist ein wenig lückenhaft. Wenn es sich nur um Kesselcode handelt, ist das einfach genug, um eine neue Sammlung zu beginnen.
Tim Post
@ tp1 Halt, was ist, wenn das Ziel der Funktion x()so spezifisch und nützlich ist, dass es nicht so viele Möglichkeiten gibt, es zu schreiben? Wie können Sie in diesem Fall eine Trennung vornehmen, wenn die Implementierung so ähnlich ist?
Arj
@ a12jun, na ja, deshalb muss es für jede Situation separat betrachtet werden. Das Konzept des Sortierens basiert wahrscheinlich auf der Erfahrung des Programmierers in der Informatik, und das Schreiben ist in Ordnung. Aber wenn es sich um etwas Spezifisches handelt, das selten oder spezifisch für irgendeine Art von Software ist, dann wird es schlecht.
tp1
6

Abhängig von Ihren Beschäftigungsbedingungen kann es sein. Wenden Sie sich an Ihren Vorgesetzten, die Personalabteilung, die Rechtsabteilung und / oder die Ethikabteilung, um herauszufinden, was Ihrem Unternehmen gehört und was Ihnen gehört, und wie die Beantragung von Rechten zur Nutzung oder zum Eigentum an Dingen abläuft dass Sie bei der Arbeit produzieren.

Nahezu jeder Ort, an dem ich gearbeitet habe, gehört dem Unternehmen, was in Projekte fließt. Ich habe jedoch die Erlaubnis eingeholt, Dinge für persönliche Projekte von Fall zu Fall herauszubringen, wobei in der Regel zu erklären ist, was ich will damit zu tun und wie es für die Organisation nicht schädlich wäre, es loszulassen.

Thomas Owens
quelle
Ich stimme dem zu; Das Gespräch mit Menschen in Ihrem eigenen Unternehmen ist ein guter Ausgangspunkt (vorausgesetzt, Sie haben eine einigermaßen gute Beziehung zu ihnen). Es ist nicht unwahrscheinlich, dass sie einfach sagen: "Sicher, mach, was du willst, solange es nicht in engem Zusammenhang mit unserem Geschäft steht."
Keith Thompson
Ja, es ist eine gute Idee, um Erlaubnis zu bitten: Der Vertrag könnte lauten: "Ihre gesamte Basis gehört uns", aber dies ist im Allgemeinen nur für CYA-Zwecke und sie könnten durchaus bereit sein, Dinge zuzulassen, die Ihr Vertrag nicht garantiert . (Aber vielleicht möchten Sie sicherstellen, dass Sie es schriftlich erhalten, nur für den Fall.)
SamB
4

Ich hatte einige (nicht vollständige) Erfolge damit, meine Arbeitgeber dazu zu bringen, unter einer Open-Source-Lizenz einen Teil meines Codes freizugeben, der während meiner Arbeit für sie geschrieben wurde. Meistens Code, den ich in meiner Freizeit geschrieben habe, aber manchmal nicht. Es ist alles Code, der für keine Branche spezifisch ist.

Ich begann das Ganze, indem ich einige Bibliotheken schrieb, während ich arbeitslos war, und sie dann unter der MIT-Lizenz veröffentlichte. Während des Einstellungsprozesses bei späteren Jobs würde ich es erwähnen und sagen, dass ich diesen Code verwenden würde, um ihnen zu helfen, wenn es könnte, aber es würde ihnen etwas ausmachen, wenn ich Dinge hinzufüge, die ich während der Arbeit für sie geschrieben habe, aber nur Dinge, die nicht waren spezifisch für ihr Geschäft und nur mit ihrer Zustimmung.

Die Ergebnisse waren unterschiedlich, aber ich konnte meine Bibliothek im Laufe der Zeit aufbauen. Und es gab Fälle, in denen die Bibliothek die Entwicklungszeit meiner Arbeitgeber verkürzt hat.

bA
quelle
4

Ich bin überrascht, dass die am häufigsten gewählte Antwort hier "Ja" ist. Als Entwickler war die Antwort immer "absolut nicht", außer in Situationen, in denen der Code entweder:

  1. Eine bisher komponierte Bibliothek, die ich unabhängig vom aktuellen und allen bisherigen Projekten entwickelt habe, oder
  2. Eine Bibliothek, die zu diesem Zweck zur Verfügung gestellt wurde, z. B. Open Source-Artikel.

Jemand hat dich dafür bezahlt, den Code zu schreiben. Abgesehen von einem anderen Verständnis und einer anderen Vereinbarung, die in Ordnung ist, ist es nicht richtig, dass jemand anders von den DIREKTEN Vorteilen profitiert.

Nun - das Wort DIREKT. Wenn Sie am Ende eines Projekts etwas Interessantes gelernt und damit etwas Nützliches geschaffen haben, das nicht direkt mit dem geistigen Eigentum des Kunden zusammenhängt, nehmen Sie sich etwas Zeit und erstellen Sie sich eine Bibliothek dafür. Noch besser - STARTEN SIE EIN OPEN-SOURCE-PROJEKT MIT IHM, damit jeder für sich reicher wird. Ich denke, es ist absolut 100% ethisch rein wie der gefahrene Schnee, und in der Tat habe ich es selbst gemacht.

Kurzfristig kann die Wiederverwendung von Code, für den Sie bezahlt haben, rechtliche Probleme verursachen. Auf lange Sicht wird es Charakter Kopfschmerzen verursachen.

Chris B. Behrens
quelle
1
Bravo für die ethische und nicht rechtliche Antwort. Denken Sie daran: Die gesamte Moral ist nicht gesetzlich verankert. Zumindest in den USA hat sich das Gesetz von der Realität und der Gesellschaft gelöst. Das Gesetz und die Anwälte scheinen aktiv gegen das Allgemeinwohl vorzugehen.
Bruce Ediger
Gute und gute Antwort, aber nichts mit dem Gesetz zu tun. Rechtlich ist diese Antwort in den meisten westlichen Ländern in der Tat wackelig.
quick_now
2

Ich bin mir sicher, dass dies eine rechtliche Angelegenheit ist, die davon abhängt, wo Sie wohnen / arbeiten und was mit Ihnen vereinbart wurde.

Wenn ich in meiner Freizeit alle von mir bezahlten Ausgaben (Computer, Internetzugang, Software usw.) selbstständig lerne, möchten sie dann nicht, dass ich sie in meinem Job verwende? Sie finden einen regulären Ausdruck für ein persönliches Projekt und beschließen, ihn per E-Mail an Ihr Arbeitskonto zu senden, da Sie ihn möglicherweise verwenden könnten. Es wäre ein bisschen albern, die Zeit der Firma damit zu verbringen, so zu tun, als würde sie wieder im Internet danach suchen. Natürlich bemühen wir uns, unser Handwerk zu verbessern. Das wird von Programmierern erwartet, bla, bla, bla, aber was wäre, wenn es in einem Bereich außerhalb des Programmierens oder sogar der IT wäre? Ich kann mich zurückhalten, wenn sie dieses Spiel spielen wollen.

Das Unternehmen kann versuchen, den von mir erstellten Code fest im Griff zu behalten. Es ist nur eine schlechte Grundlage, um eine Beziehung aufzubauen. Wenn ihnen ein paar Codezeilen so wichtig sind, kann ich mir nicht vorstellen, inwieweit sie meine Zeit dominieren werden. das ist viel mehr wert.

JeffO
quelle
1

Ich hatte in der Vergangenheit auch die gleichen Gedanken. Leider denke ich, dass alles, was Sie direkt für Ihren Job schreiben, technisch durch Ihren Arbeitgeber urheberrechtlich geschützt ist. Sie müssen um Erlaubnis bitten, diesen Code in anderen, nicht firmenbezogenen Arbeiten wiederzuverwenden.

Wenn Sie andererseits in Ihrer Freizeit Code für eines Ihrer eigenen Projekte geschrieben haben, können Sie Ihren Code mit einer Art Urheberrecht schützen und dann Ihrem Arbeitgeber anbieten, diesen Code zur Verwendung zu geben.

In jedem Fall muss eine klare Kommunikation zu diesem Thema stattfinden.

Natürlich IANAL.

Mike Cellini
quelle
1

Ihre Frage ist der folgenden Frage sehr ähnlich: " Open Source - Ist es legal, ein Programm, das Sie zuvor für ein anderes Unternehmen erstellt haben, neu zu erstellen / zu öffnen? "

Ich würde sagen, Sie sind aus rechtlichen Gründen unsicher, da die Unternehmen, für die Sie gearbeitet haben, wahrscheinlich den Code besitzen, den Sie für sie geschrieben haben. Es wäre besser, die Routinen von Grund auf neu zu programmieren, aber selbst dann könnten Fragen auftauchen, wenn Sie noch Kopien des anderen Codes hätten.

[Ich bin kein Anwalt, also erwarte nicht, dass mein Rat dir vor Gericht hilft.]

jwernerny
quelle
+1 für "Ich bin kein Anwalt, also erwarte nicht, dass mein Rat dir vor Gericht hilft."
Sardathrion
1

Ich würde sagen, dass diese generischen kleinen Methoden / Funktionen am besten nicht zwischen Projekten aufbewahrt werden. Meistens können Sie Boost oder eine andere Sprache verwenden, um dies zu tun. Meistens sind sie besser geschrieben als deine.

Was eine gute Idee ist, ist eine Reihe von Unit-Tests für diese und verwenden Sie diese, um Ihre Code-Kata zu testen.

Sardathrion - Setzen Sie Monica wieder ein
quelle
1

Die Jobs sind auf dem Weg nach Asien. Schreiben Sie den Code neu, solange der Soßenzug noch existiert. Wenn Sie dafür bezahlt werden, Code zu schreiben, schreiben Sie ihn oder fügen Sie ihn ein und tun Sie so, als hätten Sie ihn umgeschrieben, während Sie etwas unterhaltsames tun. Oder noch besser: Arbeiten Sie von zu Hause aus und bezahlen Sie einen erfahrenen, intelligenteren und vor allem viel günstigeren Programmierer aus Asien, um den Code für Sie zu schreiben und die Differenz zu kassieren. Dann können Sie rausgehen und die Welt genießen, bevor uns unsere Firmengötter in den Schatten stellen, und wir alle arbeiten mittellos in Chipfabriken, um Chips für wohlhabende chinesische und indische iPhone-Verbraucher zu 2 Cent pro Stunde herzustellen.

Marabutt
quelle
0

Ich weiß, dass dies eine alte Frage ist, aber jemand hat sie beantwortet, und ich hielt es für eine gute Idee, einen Verweis auf die sehr traurige Geschichte von Sergey Aleynikov hinzuzufügen . Bevor Sie Code von der Arbeit nehmen, lesen Sie, wie dies sein Leben ruinierte und ihn ins Gefängnis brachte .

JimmyJames
quelle