web-dev-qa-db-ja.com

作成したすべてのコードのコピーを保持する必要がありますか?

あなたが働いている会社がコードを所有していることを私は知っています。それを販売しようとすると明らかに逮捕されます。しかし、開発者が書いたコードの個人用コピーを(将来の参照用に)保持することは珍しいのでしょうか?

どうやら this guy は、ソースコードをコピーしたために刑務所に送られました。

197
superFoo

しかし、開発者が書いたコードの個人用コピーを(将来の参照用に)保持することは珍しいのではないでしょうか。

それがどれほど一般的であるかはわかりませんが、一般的かどうかにかかわらず、それはまだ悪い考えです。

プログラマーは、同じ問題を2回解決することは時間の浪費であるという考え方で作業することがよくあります。コードを再利用できるように(時には)設計しようとします。クラスと関数のライブラリを構築して、将来のある時点で再利用します。私たちは時々私たちのコードを渡して、誰もelseが今したのと同じ問題を解決するためにコードを書く必要がなくなるようにします。したがって、あるジョブから別のジョブに移動するときに、「自分の」コードを持ち歩きたいと思うことは理解できるかもしれません。ただし、次の理由により、それを行うべきではありません。

  1. 取るのはあなたのコードではありません。

  2. あなたが以前の雇用主のために書いたコードは、彼らが構築したビジネスの一部です。彼らのコードは彼らの競争上の優位性の一部です。確かに、競合他社は同じ問題を解決するために独自のコードを書くことができますが、雇用主が支払った、所有している、そしてあなたが取ることを許可していない仕事に取り組むことの利点を得るべきではありません。

  3. それらがまったく意味がある場合、新しい雇用主は、以前の雇用主から取得したコードの一部を必要としません。以前の雇用主のためにやったことを「参照」すればするほど、新しい雇用主を法的危険にさらすことになります。

  4. あなたが古い雇用主のために行ったもののコピーをまだ持っているということを誤って新しい雇用主に滑らせた場合、新しい上司はおそらく他の人のために去るときに彼らのコードのコピーを取ることになることに気づくでしょうジョブ。それは彼または彼女とうまく合わないかもしれません。

  5. あなたが実際のセリフを書いたり、古いものから漠然としたアイデアを書いていなかったりしたとしても、古いものを所有しているだけで、あなたが何かにそれを使用しているという疑いを抱くかもしれませんかもしれない。古い雇用主が新しい雇用主を訴えたと想像してみてください。そして、古い雇用主から新しい雇用主に移った少数の従業員の1人として、あなたは突然自分を退任させていることに気づきます。実際にOldのコードをNewの製品にコピーした人はいませんが、目の前の弁護士は次のように尋ねます。「SuperFoo様、今、または、Old Employerがあなたまたはあなたが所有するコードのコピーを所有していたので、いつでもお持ちですか。 Old Employerで働いている間に誰か他の人が書いた?」

  6. 必要先月、昨年、またはそれ以上前に作成したコードは必要ありません。あなたは問題を一度解決しました、そして今あなたはhowを知って問題を再び解決します。または、問題を解決する方法notを知っているかもしれません-経験があるので、新しい実装の方が優れています。

  7. より良い方法があります。昔のコードを文脈から外して読むことによって、戻って有用なことを学ぶのは難しいです。あなたが学んだこと、あなたが持っているアイデアなどを説明する日記や日記は、後でもっと役立ちます。

  8. Old Employerがコードを入手して問題がないことを知っていても、stillはそれを望まない!それを得ることができる唯一のことは午前3時の電話です:「こんにちは、SuperFoo?お元気ですか?聞いてください、あなたは私たちのもののコピーを持っていますよね?見て、私たちは問題を抱えていますシステム、そして私たちがあなたが書いたいくつかのファイルに絞り込んだのですが、私たちの新しい人は理解できないだけです。それが遅いのはわかっていますが、彼にSuperDuper.plを説明してもらえませんか?」

手放す。あなたはそれを必要としません。

302
Caleb

私は常にコードのコピーを保持します私は書きますで、ジョブ間でそれを取ります。後続の雇用主はコードを表示/実行することはできませんが、自宅で参照として使用します。「ああ、そうです、Project Xでそれと同じようなことをしませんでしたか?」.

これは合法ですか?管轄や状況にもよりますが、ごく一般的です。道徳的に、私はそれで問題はありません、あなたが単に新しい雇用主にコードを与えているのではないなら...それはあなたの雇用主のための無料のリソースというよりむしろあなたがやったことのリマインダーとデモンストレーションです。

[これの裏側は、古いコードを見たときに付随する避けられない恥です。なぜ私はそれをしたのですかthat way ?? ']

159
cjmUK

これはvery悪い考えです。そのコードは(法的に言えば)あなたのものではなく、そのコードを所持していると、あなたを多くのトラブルに巻き込む可能性があります。これは、新しいジョブに移動しても、そのソースコードをそのままにしておくと、さらに真実になります。競合他社の場合はさらに悪いことです。あなたが彼らのために働かなくなったときにあなたが彼らのソースコードにアクセスできたらあなたの会社は幸せではないでしょう。

それはすべてあなたのリスクを管理することです。以前の雇用主のどこかで使用できるものを保持することは明らかに予想されます。これが、彼らがあなたのサインをあなたが去った後Xヶ月/年続く非競争条項にする理由ですが、コードを所持していると、会社のコードを露骨にコピーしたと非難された人に、より多くのvulnerableになります(あなたがしなかったとしても、同じアイデアを使用しただけです)。このリスクを管理する価値のあるコードを持っていますか?

確かに、コードの記述から得られた有用なものは、正確な構文ではありません。それはあなたが得た知識です。おそらく、これらすべての法的事項に対処する価値はありません。

50
Oleksi

それは珍しいことではありません。

ほとんどのコピーを持っています1 すべて私が専門的に書いたコードの一部、そして誰が書いたかに関係なく、確かに私の現在のプロジェクトのすべてのコード2。コードとともに私ができることとできないことを明確に定義する法的書類の山がたくさんあります。コードを持つことは、コードから利益を得ようとすることと同じではありません。

とはいえ、これは法的な問題であり、法的な問題は非常に複雑でローカライズされる傾向があります。疑わしい場合は、弁護士に相談する必要があります。私は自分のコードを保持するかもしれませんが、そうすることで問題が発生しないことを99%確信しています。

1 不足しているのは、主にアーカイブしたくないものです。法的な理由により、不足している小さなプロジェクトのコードは1つだけです。
2 プロジェクトの性質とプロジェクトにおける私の役割は、特定のモジュールの構築に関与していなかったとしても、少なくともどこに行くのかを理解する必要がある人の1人です。

36
yannis

私はあなたの逮捕された中国人男性を見て、「コードは財産ではないので、盗まれることができない」とあなたを提起します。

参考:コード「物理的財産ではない」、ゴールドマンサックスのスパイ事件の裁判規則

とは言うものの。

  • 作成したコードを保持しますか?もちろんです。
  • 完全なプロジェクトを保持しますか?もちろんです。
  • 自分のコードを仕事用PCから自宅のマシンにサムドライブすることを確認しますか?もちろんです!
  • そのコードを別の会社や個人的なプロジェクトで再利用することはありますか?いいえ。
  • 私はしばしば古いコードを見てWtFに行きますか?いつも。
29
TimSonOfSteve

ここにあなたのための簡単な質問があります。 「私がここで働いている間に書いたすべてのコードのコピーを持っています。他の人々ではなく、私が書いたコードだけです。これは私自身の教育のためであり、私は決してそれを与えることはありません。」

彼らの次の行動は、あなたが彼らの目に間違っているか正しいかを判断します(そうです、その言葉は北米/世界に存在します)。

あなた自身の「倫理」に関係なく、あなたは雇用主のために働きます。彼らがあなたがしていることが間違っていると考えるなら、それは彼らの倫理に基づいて間違っています。彼らがあなたに支払い、あなたが彼らに雇われているとき、あなたは彼らに同意するか、または同意しないのがあなたの法廷にあり、あなたを解雇するかもしれません。

今、それは整合性の問題です。私は前の従業員にコードの一部を取り上げさせましたが、最初にすべてを吟味しました。

あなたがあなたが正しいと信じているからといって、あなたを正しいものにしないのです。通常、ソフトウェア開発者は雇用されたときに契約に署名します。署名した場合は、あなたの言葉に従います。

10
Ryan Ternier

開発者が書いたコードの個人的なコピーを保持することは珍しいことですか

質問に直接答えて、私はmyでこれを経験しますisと言います珍しい。これを見た例外は、多くのフリーランシングを行っており、クライアントの将来のメンテナンスおよび拡張プロジェクトのためにコードを手元に置いている人々です。そして私はこれが契約で明確に述べられていると想像します(私は私の友人のフリーランス契約をレビューする習慣はないので、誰が知っていますか)。大企業で働く私が知っている人は、以前の雇用主からのコードを保持することを決して認めていません

それが役立つ単一の状況を考えることができないので、私はそうは思いません(現在の雇用主がそのようなことを禁止していることは確かです-確かに文書を調べる必要があるだけです) )。私が作成/修正したコードは通常、so特定のビジネス要件に固有のものであり、今後再び登場するとは想像できません。新しいコードを書くよりも古いコードを再利用する方が簡単な方法です。

かつて、開発者が現在の仕事で問題を解決するために使用するルーチンの個人用ライブラリーを持つことは一般的でした。開発者が去ったとき、ソースは残されていましたが、拡張機能も一緒に使用されました。

これは双方に有利な状況をもたらしました。また、記述されたすべてのコードのサブセットにすぎませんでした。

もちろん、個人のライブラリにあったもののほとんどは、今日の標準ライブラリにあります。

8
Jon Strayer

北米のほとんどの地域での雇用主と従業員の関係では、雇用主からの事前の法的承認なしに、雇用主の機器からデジタル素材(つまり、ソースコード)を転送または送信することは違法です。

職場での従業員の定義に関連する法的法律の一部は、従業員が購入することを要求する取引を除き、従業員契約に別段の定めがない限り、従業員が自分の作業器具を提供しないことの説明です自分の機器(建設労働者)。

北米のほとんどの雇用法では、雇用者と雇用者の関係における主要なリスクテイカーとして雇用主を定義しています。雇用主が資材、設備を提供し、従業員の仕事に関連する活動を管理している間、従業員は自分の時間の支払いを受けます。

この関係のどの時点で、その素材を作成したことに対して費用を支払い、リスクを負った雇用主から貴重な素材を盗むことは問題ありませんか?

これの主な問題は、「あなたが書いたソースコード」という質問でした。いいえ、それを書いたのはあなたではありません。あなたの雇用主の指導の下でそれを書いたのは彼らです。あなたはそれをタイプした雇用者の手です。雇用主が彼らの財産を保護するために法的措置を講じた場合、あなたの側に立つ裁判所は北アメリカにはありません。ソースコードをUSBサムドライブにコピーするだけで、お湯に浸かることができます。

そうは言っても、雇用主があなた自身の機器(すなわちラップトップ)の使用または資料の送信を許可した場合、それは別の問題です。雇用主は、資料が返却または破棄される必要があることを、終了時に通知する必要があります。

一部の人々がこれを灰色の領域であると思ったように思われるので、私がこの答えを投稿すると思いました。あなたが開発者であるなら、雇用者の資料のコピーを保管するというインターネットの投稿を見回す必要があるとは私は本当に思いません。つまり、この質問をするためだけに新しいメンバーアカウントを作成したので、あなたはすでにこの質問に対する答えをすでに知っていました。 ;)

6
Reactgular

私はこれを過去数回の仕事でやったことがある。

しかし、私は一度戻ってそれを見たことがありません。私は時々、学習したアイデアや事柄を再利用しましたが、戻ってコードを見る理由を一度も見つけていません。

だから私はもう気にしないでしょう。これは法的に疑わしいものであり、実際に役立つとは思ってもみませんでした。

5
JohnB

承知しました。コードを書いているかどうかに関係なく、自分が行ったすべての作業のコピーを保持するのが好きです。必要に応じて、スクラップブックと呼んでください。ルールを破る?たぶん。

次の雇用主が直接の競争相手でない限り、競争上の優位性に関するコメントは関係ありません。電話会社からソフトウェアハウスに、またはゲーム開発者からデータベース開発者に移動する場合、それは問題ではありません。実際にコードを再利用することを計画している場合、まあ、それは別の話です。

興味深いことに、Web開発者が JavaScript ライブラリと [〜#〜] css [〜#〜] の標準セットを使用して「ツールボックス」を持ち込むことについてよく耳にします。 =スタイルシート。しかし、私はここで言及されたものを見ていません。

4
Steve Bennett

私は最近、以前の雇用主から保持していた古いコードをすべて削除しました。私は、将来の参照のために良いと思ったコードの断片だけを保存しました。私は実際に去ってからかなり進んでいることに気づき、古いコードを参照したことがありません。私は同じ問題を解決するはるかに良い方法を発見/発見/学びました。

でも、それは思い出に残る素敵な小さな旅でした:)

3
Antony Scott

デザインパターンと実際のコード(行ごとのコピー)を区別する必要があると思います

いくつかの疑似コードを書き留める-これは、XをYに遅延ロードする優れた方法の1つです。すべてのコードを書き留めることは別のことです。

2
ist_lion

自宅で仕事をしているなど、さまざまな理由で、既にコピーを持っている可能性があります。私は、仕事の後にこれらを削除しないのはなぜですか?それは私の信念や何かに反するものではありません。

しかし、それを使用することに関しては、ブログ投稿!ほど有用ではありません。

結論:コードを書いて、直面した問題とそれをどのように解決したかについて(特に、汎用的で広範なものの場合)、最後の仕事からの(おそらく暗号化された)お土産を残しておいても構いません。

1
Camilo Martin

ファイナンスでは [〜#〜] cfa [〜#〜] がこの問題に対処します。クライアントに関連する情報や会社の仕事(この場合はコード)を取得することはできません。しかし、何ができるかを記憶し、後でそれを書き留めることを妨げるものは何もありません。

それがどれほど合法かはわかりませんが、あなたの最善の策は、ソースコードを残して、帰宅したらすぐにアイデアと方法を書き留めることです。盗むことは盗むことであり、法廷では彼らがコードをコピーしたかどうかを判断するために見つけようとしていることはすべてです。

1
Lostsoul

後で再利用する目的でコードを保存する場合、それには2つの問題があります。

  • コードがドメイン固有である場合、それはおそらく独自仕様でもあります。とにかく、2つのビジネスまたは問題がまったく同じであるということはなく、ある問題を別の問題の解決策で修正しようとするのは良いパターンではありません。

  • 保存するコードが一般的な問題を解決する場合は、アプローチに質問する必要があります。既存の(そしてより優れた)オープンソースソリューションである可能性が高いのに、なぜ共通の問題を解決するために多くの労力を費やしているのですか?

    一般的な問題に対する最善の解決策があると確信している場合は、コードを書くときは、自分で保管するのではなく、実際にコードを公開リポジトリやコードブログで公開して共有するようにしてください。あなたの上司は、一般的なライブラリの共有に反対したり、車輪を再発明するよう強制したりしないでください(そうした場合は、新しい仕事を見つけてください)。

潜在的な雇用主に見せたり、スキルを向上させたりするためにコードを保存する場合は、代わりにオープンソースプロジェクトに貢献することをお勧めします。

1
David Veksler

雇用主の許可を得て、きちんと再利用可能なコードを他の人が使用できるオープンソースプロジェクトとして公開します。次に、あなたの雇用主はこのコードへの他の人々の貢献から利益を得ることができます。

このようにして、コードを合法的に維持し、作成したコードの公開ポートフォリオを構築し、コードを他の人々に利益をもたらすことができます。

1
Sarel Botha

私は単純な理由でコードを保持していません。会社は私にそれらのコードを書くように私に支払いました。私は彼らに私のコードを渡し、彼らは私の給料をくれます。私の昼食を作った人は自分でそれを維持することができません、なぜコードが違うのでしょうか?

また、以前に指摘したように、私は仕事を辞めました。それらすべての頭痛はそこにとどまり、新しい仕事、新しい始まりですが、その古い仕事のドメインにおける問題のタイプについてもう少し経験と理解があります。

0
Scott S

雇用者のために行ったコードはまだ保存していません。私が保持しているフリーランスのもの(コードを紛失した場合、クライアントをサポートするのは難しい場合があります)。

ただし、私はこの雇用主のために作成したコードを保持することを検討しています。その理由は、私がWeb開発者であり、かなりきれいに見えるクライアント側のものをたくさん開発してきたからです。私はそれらを設計しませんでしたが、私はそれらを実装し、しばしばアイデアを思いつきました。オンラインポートフォリオを構築するために、この資料のコピーを保管したいと思います。誰もが知っているように、サイトは永遠に存続するわけではないので、オンラインで作業を続けることは現実的に期待できません。バックアップコピーがあれば、ポートフォリオをオンラインで作成できます。

私は、デザイナーがポートフォリオの目的のために(たとえそれが採用のための仕事であったとしても)自分の仕事のコピーをしばしば保管することを知っています。

これの合法性が何であるかはわかりません(契約で明示的に言及されていません)。

0
Xandor Schiefer

さて、私の会社のビジネスロジックを開発する場合、コードは会社の違法かつ個人の所有物であるため、保持することはできません。開発者として、私はそのロジックを開発する方法を知っているので、そのロジックを覚えておくことができます。基本的にはデフォルトでそれはあなたの心に保存されます、そしてあなたが次回それを必要とするなら、自動的にあなたは以前のものよりもロジック/より良いロジックを実装するべきです。それは人間の本性と知性です。 :)

ただし、ユーティリティロジックを開発するときに問題が発生します。これらは再利用可能で常に重要であり、さまざまなプロジェクトで頻繁に必要になる場合があります。だからあなたはそれをあなたと一緒に保ちたいと思うべきです。

私にはその代替策があります。ソース/ドキュメントなしで [〜#〜] jar [〜#〜] を作成して、ユーティリティに追加し、プロジェクトに外部のサードパーティJARとして追加します。おそらくこれを行うことで、自分の責任と、自分がコードを持っていることの自己満足を確認できます;)

0
Soumyadip Das