職場で作成したコードを個人的なプロジェクトに再利用するのは間違っていますか?


31

さまざまな職場で、「これは他の状況で本当に役立つだろう」と考えさせるコードを常に書きました。実際、コードを書くのに時間がかかっても、意図的にコードを作成します。これは、将来的に役立つことがわかっています(カスタムSubString()関数など)。これらのスニペットの適切な候補は、さまざまな「ヘルパー」クラスです。

これらのスニペットは、おそらくオンラインの他の場所で見つけることができると確信していますが、ポイントは、私がそれらを書いて、後で他の仕事や個人的なプロジェクトで再び使用することです。現在、私は個人的なコードライブラリを維持しませんが、問題がある、それはあなたがそれを仕事で生産し、再使用しているコード(取ることが間違っている個人的なプロジェクトのために)、および(B他のジョブで)?



2
@Michael同様ですが、完全な複製ではありません。答えは非常に似ていますが、実際には2つの異なる懸念事項です。これは、コードの小さな断片に関するものです-いくつかのクラス、メソッド、または2つ。もう1つは、プロジェクト全体を再現することです。
トーマスオーエンズ

おもしろいことは、私はいつも流れが他の方向にあると思うことです。私は通常、趣味のプロジェクトで実際に面白いコードの塊を見つけて、さらに実験します。確かに、これらの成功したアイデアが私の有給の仕事に取り入れられても、文句を言う人はいません。:
DaveGauer

回答:


25

私はいつも自分のクレイジーなアイデアや一般的なものをすべて入れて、BSDライセンスの下でライセンスする個人プロジェクトを持っていることでこの問題を解決しました。これにより、人々はそれを再利用、変更、ブランド変更、閉鎖し、お金を請求することができますそれ。そのようにして、私は著作権を保持しますが、これとその雇用主のために私が好きなようにコードを再利用できます。そのため、元の著作権は保持しますが、雇用主は再利用したインスタンスの著作権を保持します。もし彼らがそれで問題を抱えていたら、彼らは単に彼らの観点からは意味のない仕事時間にそれを書き直すために私にお金を払わなければならないだろうと思います。さらに、BSDの背後にある考え方は、人々や企業が、ブランドの変更や販売を含め、何でも好きなことをできるようにすることだからです。

もちろん、職場でコードに追加が行われた場合、自分の時間に書き直さずに他の場所で再利用することはできません...一般的なものは比較的小さい傾向があるため、それがなければとにかくかなりの自由時間の努力を保証するアイデア。

あなた自身の時間にそれを書き込み、BSDスタイルのライセンスの下でコードをライセンスすることはすべきであるあなたはあなたが欲しいほとんどどこでも使用することができ、自分自身のためのライブラリを維持することができます。

さて、あなたのすべての個人プロジェクトの著作権を奪うと主張する契約については...これはおそらく管轄区域間で根本的に異なりますが、少なくとも一部の西部の管轄区域では、契約ではそれができないと理解しています。契約はそれができると言うことができますが、著作権は明示的に譲渡されなければならないので、法廷では強制されません。「あなたのすべてのベースは私たちのものです」とにかく出身地である管轄区域)。契約を介して法廷で支持できるものには多くの制限があります。そのため、契約の一部が合法的に機能しない場合、通常は(そして、できれば) 、残りの契約は引き続き有効です。

しかし、いつものように、これを正確な法的助言として解釈する前に弁護士に相談してください。私はこれに関して裁判にかけられたことがないので、これらの事柄のどれも弁護士が証明する事実としては知りません。:)


31

雇用契約に依存します。最近、最も可能性の高い答えは、(a)はい、これは間違っています。(b)はい、これは本当に間違っています。現在開発者に提供されているほとんどすべての契約には、会社に雇用されている間(営業時間中かどうかに関係なく)あなたが書くコードは彼らのものであり、自動的に著作権を譲渡するという条項があります。これに対して明確に交渉しない限り、これはおそらくあなたに当てはまります。

ただし、いつものように:

私たちを信じないでください!潜在的に危険なことを行う前に弁護士に相談してください。


7
「私たちを信じてはいけません!危険な可能性のあることをする前に弁護士に相談してください」で+10(できれば)。ベスト。お勧めします。今まで。
サルダスリオン

2
「開発者に提供されるほぼすべての契約」が「会社に雇用されている間(営業時間中かどうかに関係なく)あなたが書くコードは雇用者のものである」と述べている声明の出典はありますか?
CVn

3
これらの用語は、雇用主をカバーすることはあまりにも少なすぎるというよりもむしろ日常的なものであり、多くの場合、常識の余地があります。つまり、(1)常識に対する見方が彼らの見方と一致することを確認する必要があります。(2)それは大きなリスクです。数年後、意見が変わるかもしれません-特にあなたがたくさんのお金を稼いでいる場合、またはあなたが書いた何かが彼らの販売を損なうかもしれないと彼らが考えるならば。小さな汎用ユーティリティ関数のライブラリの場合、書き直しが簡単で、心配はありません。より重要なことはすべて、あなたは非常に危険な立場にいます。
Steve314

4
@MichaelKjörling。探している情報源は、Startupsのこの主題に関するJoel Spolskyの優れた回答にあります。
-TRiG

22
実際に..常に弁護士に尋ねると言うのは面倒で非現実的だと思います。まず第一に、それはあなたが間違っているかもしれないという常識だからです。SOの重大なセキュリティ脆弱性を修正する方法についてアドバイスする場合、「プログラマに尋ねる!」とは言わないでください。毎回。第二弁護士は高価です。正直言って、トリビアの質問/好奇心を尋ねるために実際に弁護士を雇う人は何人だと思いますか?ているあなたは今までこのような何かを依頼する弁護士を雇いましたか?
トーマスボニーニ

9

必要なときにコードを書き直してください。数分のコーディングのために問題を完全に回避します。

より多くのことを学び、より良いものを書くことができる可能性があります。また、一般的にコードを書き換えると、コードがよりエレガントになります。


同意しましたが、数分だけのコードではないサブライブラリについてはどうでしょうか?データベースにアクセスしたり、ファイルを作成したりするためのクラス?その書き直しはコードを改善しますが
-Arj

3
それほど単純ではありません。再実装は、元のコードとは完全に異なる必要があります。書き直しても悪いかもしれません。既存のもののより良いバージョンを作成することは間違いなく悪いです。完全に分離しておくことをお勧めします。
tp1

誰かのために何らかの独自のアルゴリズムを開発する場合、他の人のためにそれを再び書いた場合、(おそらく)トラブルに巻き込まれるでしょう。それは少し大ざっぱです。それが単なる定型コードであれば、新しいコレクションを開始するのに十分簡単です。
ティムポスト

@ tp1ちょっと待ってください。関数の目的x()が非常に具体的で有用であるため、記述する方法がそれほど多くない場合はどうでしょうか。その場合、実装が非常に類似している場合、どうすればそれを分離できますか?
-Arj

@ a12jun、まあ、それはそれぞれの状況で個別に考慮する必要がある理由です。ソートの概念は、おそらくコンピューターサイエンスにおけるプログラマーの既存の経験であり、それでかまいません。しかし、それが特定の何かであり、まれであるか、ある種のソフトウェアに固有の場合、それは悪いことです。
tp1

6

あなたの雇用条件によっては、そうなるかもしれません。上司、人事部、法務部、および/または倫理部に相談して、会社が所有しているものとあなたが所有しているもの、および物の使用権または所有権を取得するためのリクエストのプロセスを決定します職場で生産するもの。

私が働いたほぼすべての場所で、プロジェクトに入るものは会社が所有していますが、私はケースごとに個人的なプロジェクトのために物を持ち出す許可を求め、取得しました。それをどうすればいいのか、それを手放すことが組織にとって有害で​​はないのか。


これに同意する; 自分の会社の人と話すことは良い出発点です(あなたが彼らと合理的に良い関係を持っていると仮定して)。彼らが「確かに、それがアウトビジネスに密接に関連していない限り、あなたはそれであなたが好きなことをしてください」と言うことはありそうにありません。
キーストンプソン

はい、許可を求めることをお勧めします:契約は「あなたのベースはすべて私たちのものです」と言うかもしれませんが、それは一般にCYAの目的のためであり、彼らはあなたの契約が保証しないものを喜んで受け入れるかもしれません。(ただし、念のため書面で入手してください。)
SamB

4

私は、雇用主が私が彼らのために働いている間に書かれた私のコードの一部をオープンソースライセンスの下でリリースすることに同意することに成功しました。ほとんどは自分の時間で書いたコードですが、そうでない場合もあります。すべてのコードは、特定の業界に固有のものではありません。

失業中にいくつかのライブラリを作成し、MITライセンスでリリースすることから始めました。それから後の仕事での雇用プロセス中に私はそれについて言及し、できれば彼らを助けるためにそのコードを使用すると言いますが、彼らのために働いている間に私が書いたものを追加した場合、彼らは気にしますが、そうではなかったもののみ彼らのビジネスに固有であり、彼らの承認のみが必要です。

結果はさまざまですが、時間の経過とともにライブラリを構築することができました。また、ライブラリを所有していると、雇用主の開発時間が短縮される場合があります。


4

ここで最も多く投票された答えが「はい」であることに驚いています。開発者としての答えは、コードが次のいずれかの場合を除き、常に「絶対にそうではない」というものでした。

  1. 現在および以前のすべてのプロジェクトから独立して開発した以前の構成ライブラリ、または
  2. この目的のために利用可能にされたライブラリ、例えばオープンソースのもの。

誰かがコードを書いてくれた。別の理解と合意がなければ、それは問題ありませんが、他の誰かがその直接の利益を享受することは正しくありません。

今-ダイレクトという言葉。プロジェクトの最後に到達して、何か興味深いことを学び、クライアントの知的財産と直接結びついていない有用な何かを作成した場合は、時間をかけてライブラリを作成してください。さらに良いこと-オープンソースプロジェクトをITで開始し、誰もがより豊かになるようにします。追い払われた雪のように、それは絶対に100%倫理的に純粋だと思います。実際、私はそれを自分でやりました。

短期的には、他の人のために書いたコードを再利用すると、法的な頭痛の種になります。長期的には、キャラクターの頭痛の種になります。


1
法的ではなく、倫理的根拠に基づいて回答したBravo。覚えておいてください:道徳全体は法律に含まれていません。また、少なくとも米国では、法律は現実と社会から切り離されています。法律と弁護士は、より大きな利益に積極的に取り組んでいるようです。
ブルースエディガー

罰金と賢明な答えが、法律とは何の関係もありません。法律的には、この答えはほとんどの西側諸国では確かに不安定です。
すぐに

2

これは、あなたがどこに住んでいる/働いているか、何に同意したか/あなたの契約に応じた法的問題であると確信しています。

自分で、自分の時間に何かを学んだら、私が支払ったすべての費用(コンピューター、インターネットアクセス、ソフトウェアなど)は、仕事でそれを利用したいと思わないでしょうか?個人用プロジェクトの正規表現を見つけ、おそらくそれを使用できるため、仕事用アカウントにメールで送信することにします。インターネットで検索するふりをして会社の時間を費やすのは少しばかげているでしょう。もちろん、私たちは技術の向上に努めています。これはプログラマーに何が期待されているか、何とか、何とかですが、プログラミングやIT以外の領域にある場合はどうでしょうか。彼らがこのゲームをプレイしたいのなら、我慢できます。

会社は、私が作成したコードをしっかりと把握しようとすることができます。それは関係を築くための貧弱な基盤にすぎません。彼らがコードの数行をそんなに気にしているなら、彼らが私の時間を支配するようになることを想像することはできません。それはもっと価値があります。


1

私も過去に同じ考えを持っていました。残念ながら、あなたがあなたの仕事のために直接書くものはすべて、雇用主によって技術的に著作権で保護されていると思います。そのコードを会社以外の関連作業で再利用する許可を求める必要があります。

一方、自分のプロジェクトのいずれかの空き時間にコードを書いた場合、何らかの著作権でコードを保護し、そのコードを雇用主に提供することを提案できます。

いずれにせよ、問題に関する明確なコミュニケーションが必要です。

もちろん、IANAL。


1

あなたの質問は、この「オープンソース-以前に別の会社のために作成したプログラムを再作成/オープンソースすることは合法ですか?」に非常に似ています

あなたが働いた会社はおそらくあなたが彼らのために書いたコードを所有しているので、あなたは不安定な法的根拠にあると思います。ゼロからルーチンをコーディングする方が良いでしょうが、それでも、他のコードのコピーがまだ残っている場合は疑問があるかもしれません。

[私は弁護士ではないので、私の助言が法廷であなたを助けることを期待しないでください。]


「私は弁護士ではないので、法廷での助言を期待しないでください」の+1。
サルダスリオン

1

これらの一般的な小さなメソッド/関数は、プロジェクト間で保持しないのが最適です。ほとんどの場合、Boostまたはこれを行うために言語で提供されているものを使用できます。ほとんどの場合、それらはあなたのものよりも優れています。

良いアイデアは、それらのユニットテストのセットを用意し、それらを使用してコードカタをテストすることです。


1

ジョブはアジアに向かっているので、グレービートレインがまだ存在している間にコードを書き直してください。あなたがコードを書くための報酬を得ているなら、それを書くか貼り付けて、何か楽しいことをしながら書き直したふりをしてください。または、さらに良いことに、自宅で仕事をし、より熟練した、よりインテリジェントで、最も重要な、はるかに安いアジアのコーダーにお金を払ってあなたのためにコードを書いて、違いをポケットに入れます。そして、私たちの企業の神々が私たちを置く前に世界を出て楽しむことができます。私たちはすべて、中国とインドの裕福なiPhone消費者のために1時間2セントでチップを作るチップ工場で働いています。


0

私はこれが古い質問であることを知っていますが、誰かがそれをぶつけました、そして、私はセルゲイ・アレイニコフの非常に悲しい物語への参照を加えることは良い考えであると感じました。仕事からコードを取得する前に、それを行うと彼の人生が台無しになり、刑務所に着地したことについて読んでください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.