Eine bessere Lösung für ein Problem bei der Arbeit gefunden - sollte ich davon abhalten, das Code-Snippet online zu stellen?

18

Ich denke, die meisten von uns Programmierern haben Stack Overflow verwendet, um alltägliche Probleme zu lösen: Sie haben nach einem effizienten Algorithmus gesucht, um etwas zu tun.

Stellen Sie sich nun eine Situation vor: Sie haben ein Problem zu lösen. Ein bisschen gegoogelt, eine StackOverflow-Frage gefunden, aber Sie sind mit den Antworten bisher nicht wirklich zufrieden. Sie müssen also selbst recherchieren: Sie müssen es tun, weil Sie es in der App des Unternehmens möchten.

Schließlich haben Sie nach einigen Stunden die bessere Lösung gefunden. Sie sind froh, dass Sie es zur Codebasis des Unternehmens hinzugefügt haben, und möchten dann Ihre Antwort mit einem Code-Snippet (nur einige Zeilen) auf die zuvor gefundene Frage senden, um auch anderen zu helfen.

Aber warten Sie: Die Software des Unternehmens ist Closed Source, und Sie haben an der Uhr daran gearbeitet.

Bedeutet dies, dass ich die Antwort in meinem Leben weder bei der Arbeit noch zu Hause auf diese Frage posten sollte, weil ich sie bei der Arbeit gelöst habe und das Unternehmen über diesen Code verfügt?

Calmarius
quelle
Ich denke, es hängt von Ihrer Unternehmenspolitik ab. Ich würde um Erlaubnis bitten, um auf der sicheren Seite zu sein.
MrSmith42
1
Fragen Sie die Firma Anwalt , wenn er eine winzige Ausnahme in diesem Fall etwas machen könnte, und wenn er ja sagt, wird er ein gutherzig sein ex -company Anwalt. Wahrscheinlich wird er Ihnen nur sagen, was im besten Interesse seiner Arbeit und des Unternehmens ist, was "nein" ist.
Neil
1
@ MrSmith42 Sicher. Aber um ehrlich zu sein, ich habe mich diesbezüglich schon mehrmals schuldig gemacht, und ich habe es getan, ohne über die möglichen Konsequenzen nachgedacht zu haben, bis jetzt. Und wahrscheinlich bin ich damit nicht allein. Deshalb habe ich es hier gefragt ... Oder ist es jedem wichtig, keine Ideen auszudrücken oder irgendeinen Code online einzureichen, während er beschäftigt ist? Ich kann es nicht glauben.
Calmarius
5
Eine der Bedenken könnte sein, dass, wenn Ihre Lösung / Ihr Algorithmus Ihrem Unternehmen einen Wettbewerbsvorteil verschafft, die gemeinsame Nutzung für Ihr Unternehmen von Bedeutung sein kann.
cYn
3
Wenn Sie der Meinung sind, dass dies jemandem helfen würde und die IP-Adresse des Unternehmens nicht preisgibt, veröffentlichen Sie einfach eine generische Version der Sache. Persönlich denke ich, wenn die Lösung teilweise von anderen abgeleitet wurde, die Sie hier gefunden haben, hat das Unternehmen überhaupt keinen Anspruch auf die Technik, da der Inhalt hier cc ist.
GroßmeisterB

Antworten:

15

Das Offenlegen von firmeneigenen Informationen ist etwas, das Sie niemals tun sollten. Die meisten Codefragmente in Stack Overflow sind jedoch weitaus banaler. Betrachten Sie dieses Beispiel :

public static unsafe void SwapX4(Byte[] Source)  
{  
    fixed (Byte* pSource = &Source[0])  
    {  
        Byte* bp = pSource;  
        Byte* bp_stop = bp + Source.Length;  

        while (bp < bp_stop)  
        {
            *(UInt32*)bp = (UInt32)(
                (*bp       << 24) |
                (*(bp + 1) << 16) |
                (*(bp + 2) <<  8) |
                (*(bp + 3)      ));
            bp += 4;  
        }  
    }  
}

Diese Methode kehrt die Endianzahl einer 32-Bit-Zahl um, indem die Bytes vertauscht werden. Der Unterschied zwischen dieser und einer naiven Implementierung besteht darin, dass diese doppelt so schnell ausgeführt wird, aber Sie können sie nur auf einem kleinen Endian-Computer ausführen. Es wird in einem proprietären Programm verwendet, beschreibt jedoch eine allgemeine Technik und legt keine vertraulichen Informationen offen.

Robert Harvey
quelle
Dies folgt in der Regel der Vorstellung, dass ein Unternehmen keine Algorithmen besitzt, nicht wahr?
Daniel Gratzer
8
Das kann ich angesichts des byzantinischen Charakters des Patentsystems nicht mit Sicherheit sagen.
Robert Harvey
@Jozefg: Wie bei jeder Erfindung sind Algorithmen, die komplex und nicht offensichtlich genug sind und innerhalb des Unternehmens entwickelt wurden, eines der wenigen Dinge in der Software-Welt, die Unternehmen "leicht" zur Verfügung stehen können. Ein hier vorgestelltes Beispiel ist so einfach, dass es nicht in diese Kategorie fällt. Und obwohl es Fälle gibt, in denen echte originäre Gedanken und jahrelange Forschung investiert werden und ein Unternehmen die vollen Eigentumsrechte haben sollte, wird das Patentsystem (zumindest in den USA) die meiste Zeit einfach nur missbraucht.
DXM
7

Ich poste häufig Probleme und Lösungen, auf die ich bei der Arbeit stoße, zur Firmenzeit mit Buchungskreis *. Ich habe direkt mit meinem Manager darüber gesprochen, und er ist der Meinung, dass der Wert, den das Unternehmen durch meine hier verbrachte Zeit erhält, die Besorgnis über meine hier verbrachte Zeit bei weitem überwiegt.

* Ich bin vorsichtig, alles zu verschleiern, was ich für proprietär halte. Unser firmeneigener Code ist sehr proprietär, würde aber ohne unsere proprietäre Hardware (die wir nicht verkaufen) für niemanden von Nutzen sein.

Ich betrachte meine Fragen und Antworten als Hilfe für mich und andere, wenn sie auf ähnliche Probleme stoßen wie ich.

delliottg
quelle
1

Was würde Ihr Unternehmen für zusätzliche Zeit oder verlorene Zeit kosten, wenn Sie diese Ressource nicht hätten?

Solange keine kompromittierenden oder urheberrechtlich geschützten Informationen angegeben werden, ist die von Ihnen gefundene Posting-Lösung meines Erachtens eine Entschädigung für die erhaltenen Antworten.

TheSteven
quelle
1

Die Antwort liegt in den schriftlichen rechtlichen Vereinbarungen, die Sie mit Ihrem Arbeitgeber (Ihrem Vertrag) unterzeichnet haben, und in der Gerichtsbarkeit, nach der diese Vereinbarungen beurteilt werden. Es ist üblich, dass eine Rechtsvereinbarung die Gerichtsbarkeit aufführt, die der Staat sein kann oder nicht, in dem Sie arbeiten (obwohl wahrscheinlich das Land, in dem Sie arbeiten, aber nicht unbedingt).

Ein großartiges Buch ist Intellectual Property und Open Source von Van Lindberg. Ab p. 185

Es gibt keine rechtlichen Konsequenzen für [ein Unternehmen], wenn "proprietäre Informationen" definiert werden. Mehrere Staaten beschränken die Anwendung von PIAs, wenn ein Autor oder Erfinder das Unternehmenseigentum oder die Zeit nicht verwendet, um das neue Werk zu erstellen.

Lesen Sie Ihren Vertrag. Teilen Sie Ihrem Arbeitgeber Ihre Absichten mit, bevor Sie handeln. Dann legen Sie Ihrem Arbeitgeber Ihre Handlungen offen. Teilen Sie diese Dinge schriftlich mit und lassen Sie sich gegebenenfalls schriftlich antworten / genehmigen. Zumindest steht das in diesem Buch.

Ich bin kein Anwalt, ich interessiere mich nur für dieses Zeug. Dies ist keine Rechtsberatung, sondern nur ein freundlicher Vorschlag. Ich mache nicht beiläufig irgendetwas mit der Arbeit zu tun. Nach langen Gesprächen mit meinem Chef, vollständiger Offenlegung, eindeutiger Lizenzkennzeichnung und einer schriftlichen Vereinbarung über das, was ich veröffentliche, habe ich einige Dinge veröffentlicht, aber das ist selten.

GlenPeterson
quelle
0

Ich habe Code-Schnipsel online gestellt, bearbeite den Code jedoch immer, um Verweise auf das Unternehmen und Kundendaten zu entfernen, und benenne häufig auch Felder / Variablen um. Ich schreibe den Code letztendlich neu, damit er nicht auf einen Arbeitgeber zurückgeführt werden kann. Es kostet ein wenig zusätzliche Mühe, aber ich denke, es lohnt sich.

Abgesehen von den rechtlichen Aspekten müssen Sie auch denken, dass Ihnen das Eigentum Ihres Arbeitgebers anvertraut wurde. Wenn Sie Teile davon frei online stellen, scheint es, als ob Ihnen Diskretion fehlt und Sie nicht vertrauen können. Selbst wenn Sie die Erlaubnis hatten, dass ein zukünftiger Arbeitgeber Ihr Snippet über eine Suchmaschine findet, weiß dies möglicherweise nicht.

Deshalb neige ich eher zur Vorsicht.

Ben Thurley
quelle