ソースコードを秘密にしておくことが正当化されるのはどのような場合ですか?


8

私がフリーランサーとして働いていたとき、プロジェクトとその背後にある概念がいかに重要でなく、興味深くなく、独創的でなくても、顧客がプロジェクト(Webアプリケーションなど)のアイデアとソースコードを可能な限り保護する多くのケースに遭遇しました。

私はすでにアイデアを秘密にしておくことについて質問を投稿し多くの素晴らしい回答を受け取りました。今、私の懸念は、ソースコードの秘密性についてです。

私の観察によると:

  • 私のキャリアで取り組む必要があったコードベース、
  • 自分のソースコードの一部を秘密にしておくという私自身の意欲、および:
  • たとえば、人気のあるProgrammers.SE寄稿者であるMason WheelerによるSimon StuartへのOpen応答などのいくつかの記事、

私はソースコードが主にこれらの理由のために秘密にされていると結論づけます:

  1. 作者はそのような質の悪いコードを恥じているか、誰かがそのような質の悪いコードベースを見た場合、またはコードベースの質が低い場合に評判を失うことを恐れているので、それをオープンソース化するのに役立つものは誰にもありません。たとえ誰かが興味を持っても、彼はソリューションを実行することがほとんどできません(または、多くの場合、コンパイルさえできません)。

  2. コードの一部が盗まれているため(ほとんどの場合、特定の状況での使用を制限するライセンスの対象となるオープンソースプロジェクトから)、

  3. コードはあいまいさによるセキュリティに依存しており、作者はケルクホフスの原則を気にしていません。

  4. 製品は非常に壊れやすいため、コードを表示すると非常に害が生じます。これらのセキュリティリークのあるクローズドソースのアプリが初心者のハッカーに耐える場合、初心者のハッカーであっても、同じオープンソースのアプリで発生する可能性ははるかに小さくなります。コードを調べてすべての穴を発見するだけです。

    私が何を話しているのかはっきりしない場合は、ここに例があります:

    if (credentials.password === 'masterPassword12345')
    {
        isLoggedIn = true
        currentUser = credentials.userName
    }
    else
    {
        authenticate(credentials)
    }
    
  5. 著者がソースコード(および彼自身のスキルと専門知識)を過大評価したためです。例:自家製の暗号化関連のアルゴリズム(誰もレビューしなかった)は、よく知られたアルゴリズムよりも優れていると信じています。

  6. なぜなら、コードの背後にあるアイデアは素晴らしいものであり、盗まれるだろうと著者が考えているからです。

  7. 「それは十分に完全ではない」症候群のために。言い換えれば、開発者はコードが「十分」であればソースコードを公開してもかまいませんが、日々改善すべき点があるため、コードがリリースされることはありません。

これらすべての理由は、ソースコードの公開に反対している人々のかなり否定的なイメージを与えます。

ケルクホフスの原則に従う高品質のコードを公開しない正当なケースはありますか?


私はこの質問が好きですが...
ジェームズマクロード

3
私もこの質問が大好きです。「クローズドソース」と「オープンソース」の問題は意見に基づくものですが、クローズドソースの有効な理由を見つけることはできません(少なくとも私の意見ではありません)。
k3b 2013

私は投票を再開することもできませんが、これは「良い主観的」な質問だと思います。SOによるオープンソースソフトウェアへの正当な傾倒を考えると、クローズドソースが適切な時期を調査することは有効な問題だと思います。

1
今回はxkcdではありません:クリック
Vorac

なんてばかげた質問だ。それはなぜアーティストが彼らの芸術を無料で提供しないのかと尋ねるようなものですか?それは誰かがそれをコピーして自分の利益のために使用することができるようなものではありません。ああ待って、はい、できます。ソフトウェアと同じです。
2013

回答:


25

一部の人々とほとんどの企業は、コードの価値について奇妙な認識を持っています。

「このプロジェクトに100,000ドルを費やしたので、コードはその価値があるに違いありません」そしてそれを保護する必要性を感じています。

実際には、ほとんどのコードはペイントのようなものです。塗料に100ドル、壁に塗るために200ドルを費やします。しかし、今ではその絵の具は何の価値もありません、あなたはそれを売ることができず、誰もそれを望んでいません。

それは建物の価値を高めるかもしれませんが、建物を売ることなくこれを実現することはできません。

アマゾンのコードベースを「盗み」(そのほとんどはさまざまなオープンソースプロジェクトから無料で入手できます)、Ammassons Webサイトをセットアップできますが、アマゾンのビジネスの多くを引き継ぐことはできません。

コードは現代のビジネスインフラストラクチャに必要な部分ですが、それ自体は何の価値もないプロセスと文化の一部としての価値しかありません。

私は、コードがビジネスに不可欠であり、それが秘密にされるべきである競争相手にとって十分に価値があるいくつかの状況があると付け加えます。

  • 施設の悪意のある操作を防止するには、Googleの「ページランク」システムがWebサイトに不当に高いランクを与えるために絶えず「ゲーム化」されています。
  • 自動取引アルゴリズム-悪意のある競合他社がアルゴリズムを調査し、システムをだまして売りすぎ、買いすぎとする可能性があります。
  • 「より速く/より良い」アルゴリズム-ソフトウェアの独自のセールスポイントがソート/圧縮/何でもより速くより良いアルゴリズムである場合、これを可能な限り営業秘密に保つことはおそらく価値があります。

3
ペンキの類推で+1!
Gerry

3
「使用済みの塗料をいくつか購入しましたが、幸い、それは私の家の形でした」-スティーブンライト
ジェフ

1
秘密にしておくべきコードのリストに追加します。特定のシステムに対する数百時間または数千時間の調査からなるコード。これは、ビジネスのクライアントが同じ(レベルの)知識を取得せずにその研究を利用できるようにするソフトウェアスイートで使用されます。また、開示された場合、競合他社がクライアントに同じ種類の価値を提供できるようになります。あなたはコカコーラ会社が彼らのコカコーラ飲料にレシピを共有することも期待していませんか?
Marjan Venema 2013

すばらしい答えですが、「それ自体では何の価値もない」というコードには同意しません。自分のエンリッチメントのためにそれを研究するかもしれない他の開発者にとって価値はありませんか?(何をしてはいけないかの例としても)
Dan1701

ペンキ缶の類推を使用している限り、多くのソフトウェアプロジェクトは独自のペンキ缶工場を作成し、別の町の別の工場を使用して缶をさまざまな色のペンキで満たします。ペンキが工場で作るのに100ドルかかることは事実ですが、工場自体は作るのに1,000,000ドルかかります。塗料が正しい色であることを確認するオブザーバーがいます。また、塗料は工場で塗料工場について知っている一方で、その逆は当てはまりません。
ロバートハーベイ

6

書くのが大変だったので、テスト。そしてデザイン。そして指定します。そしてデバッグ。そしてISO9000。そしてドキュメント。そしてバージョン管理。先のとがった髪のボスを邪魔にならないようにします。そして、ソフトウェアエンジニアの仕事を価値あるものにするものは何でも。

また、競合他社がソースコードをコピーアンドペーストするだけで、製品に時間と費用をかける必要はありません。


成功するビジネスアプローチが、値を追加せずにコードをコピーして貼り付ける場合はありますか?
Arseni Mourzenko 2013

3
@MainMa-はい:オープンソースコードの使用を含むすべてのケース。これには、OSをゼロから開発するのではなく、オペレーティングシステムにBSD Unixを使用するAppleが含まれます。
mouviciel 2013

OK。いい視点ね。その後+1。
Arseni Mourzenko 2013

1
それは悪い例です。サポートや付加価値がなく、別の名前でオープンソースソフトウェアを販売する人は誰もいません。OS XはBSDよりもかなりの「付加価値」でした。(とにかく定価の100%を支払いました。)
DougM 2013

1
@DougM-ポイントはオープンソースソフトウェアではなく、すでに開発されているソフトウェアを使用するのではなく、ソフトウェアを開発するコストにあります。Photoshop V1のソースコードが20年前にリリースされた場合、Adobeは現在のところ存在しません。
mouviciel 2013

4

すべての最も明白な答えは、ソフトウェアは、多くの企業にとって、企業体が顧客にもたらす価値の実質的な部分であると私は思います。したがって、コードを変更して再コンパイルしたり、貴重な部分を再利用したりできれば、同じサービスまたは価値を提供できます。これは、企業体の競争上の利益を傷つけ、おそらくそれらを失うことになります。


1
あんまり。アマゾンはそれが利益を上げる前に何百万ものベンチャーキャピタリストのお金を使いました。これは、彼らが多かれ少なかれ競争をほとんどせずに作成した市場でした。アマゾンのコードベースを盗むことはできますが、プロモーションやブランディングに何百万ドルも費やさなければ、どこにも到達できません。
ジェームズアンダーソン

8
@JamesAnderson:ソフトウェアは、Amazonが利益を上げる方法ではなく、目的を達成するための手段です。マイクロソフトまたはオートデスクの場合、ソフトウェアが全体像のかなり大きな部分を占める場合の価値。
Blrfl 2013

@JamesAnderson私は会社の特定のサブセットについて話しているだけであることを明確にするために私の応答を編集しました。Blrflが指摘するように、Microsoft、Autodesk、Wolfram Research、そしておそらく他の多くの企業がこの状況にあります。
arbn

2
しかし、[Libra | Open] OfficeはOfficeが無料で行うすべてのことを行います。ブランディング、マーケティング、顧客接点は、ソフトウェア自体よりもはるかに価値があります。
ジェームズアンダーソン

4
@JamesAnderson、あなたは製品(LibreOffice)を立ち上げましたが、これはオープンソース製品から分岐し、そのユーザーベースの一部を取ったと同時に、コードを保護することに価値がないと主張しました。正直なところ、あなたは故意に無知であるように見えます。
MikeFHay 2013

2

問題、または特定の一連の問題を解決するためにお金が費やされました。競争が「無料」でこれらの問題の答えを得る場合、それは問題を解決した会社を財政的に不利な立場に置きます-特に、大企業がインフラが整っている、または競合他社がマーケティングの開発に費やしたお金を費やしている場合。

さらに、これらの事柄を見ることによって、会社のポリシーやプロセスのアイデアを得ることが時々可能です。繰り返しますが、この情報は戦略的な利点として使用できます。これはしばしばより大きな問題です...コードは会社の内部の仕組みを明らかにします。


1

そうです、ほとんどの企業はコードを秘密にしておくために長い時間を費やす必要はありません。それは他の誰にも役に立たないからです。多くの内部ソリューションは、一種のカスタムERPソリューションとして他のアプリケーションやシステムと密接にリンクしています。

一部の企業にとって、ソフトウェアの価値はその企業の価値の一部です。彼らの目的のために機能するくだらないコードベースは価値があり、技術者でないバイヤーにとっては心配になりません。紐を付けたまま会社を買収したい人はいません。バイヤーは誰がコードを所有しているかについての簡単な回答を望んでおり、彼らは好きなようにコードを自由に使用できますか?誰が知っているか、新会社は内部アプリケーションを取り、それを業界内の他の人に売り、彼らの購入を活用したいと思うかもしれません。このグループは、堅固なアプリケーションほど高くない悪いコードベースを評価しません。コードが秘密に保たれていること(これは幻想かもしれません)を知っていて、回避するためのオープンソースライセンスがないため、ビジネスの販売に付加価値があります。


0

あなたが作成したソフトウェアにクライアントが変更を必要とするとき、彼らはあなたと一緒に行かなければならず、あなたはプレミアムを請求することができるので、あなたはソースコードを手渡しません。

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