ソフトウェア開発誰が何を所有するのか?
クライアントがソフトウェア開発者を雇ったとき、誰が何を所有するのか?
知的財産の所有権をめぐる紛争を回避するため、ソフトウェア開発サービス契約において、当事者それぞれの権利を明確に規定する必要があります。
コンピュータ・ソフトウェアは、著作権法で保護され得る著作物です。
米国の著作権法は、著作権者に6つの排他的権利を与えています。
- 原著作物を複製し、複写する権利。
- 原著作物に基づく二次的著作物を作成する権利。
- 販売またはレンタルや貸与などの別の形態の譲渡により、複製物を公衆に配布する権利。
- その作品を公に上演する権利。
- 作品を公的に展示する権利と
- デジタル音声の伝送により、録音物を公に演奏する権利。
所有者は通常、著作物を創作した人、この場合はソフトウェア開発者です。 しかし、これらの権利は、ソフトウェア開発契約の一環として、他者に譲渡またはライセンスすることができます。
権利は、単独またはグループでライセンスまたは譲渡することができます。 例えば、著作権者は、ある作品を上演する権利は許諾するが、派生作品を作成する権利は保持する場合があります。
知的財産権が譲渡された場合、原著作者は自分の知的財産権の原権利をすべて放棄することになります。 車を売るようなものです。
知的財産権がライセンスされる場合、原著作者は1人以上の他人にその知的財産権を使用させているに過ぎない。 レンタカーのようなものです。
著作権は、著作物が有形の表現媒体、例えばクラウドやコンピュータのハードディスクに保存されることで「自動的に」存在します。
また、著作物は米国著作権局に登録することで、さらに重要な保護が受けられます。
また、ソフトウェアには特許を取得できるものもあります。 例えば、ソフトウェア特許は、独立したコンピュータのソフトウェアプログラム、モバイルアプリ、または機器に組み込まれたソフトウェアをカバーすることができます。
通常、クライアントが開発者にお金を払って「新しい」ソフトウェアを作る場合、クライアントはそのソフトウェアを100%所有したいと考える。 しかし、それは現実的でなく、費用対効果も悪い場合が多いのです。
"新しい "ソフトウェアは、一般的に全く "新しい "ものではありません。 オープンソースや起源が不明なソフトウェアなど、既存の構成要素から作成されます。
Opensource.comが解説している通りです。
オープンソースソフトウェアとは、誰でも閲覧、修正、拡張が可能なソースコードを持つソフトウェアのことです。
「ソースコード」とは、ほとんどのコンピュータ・ユーザーが目にすることのないソフトウェアの部分であり、コンピュータ・プログラマーが操作することで、ソフトウェアの一部である「プログラム」または「アプリケーション」の動作を変更できるコードのことである。 コンピュータプログラムのソースコードにアクセスできるプログラマーは、そのプログラムに機能を追加したり、必ずしも正しく動作しない部分を修正したりして、プログラムを改良することができます。
オープンソースでないソースコードは、"プロプライエタリ "または "クローズドソース "と呼ばれます。
既存のルーチン(オープンソースのコードを含む)を使用すると、ゼロから新しいコードを作成するよりも、既存のコードを再利用する方がはるかに速く、安価であるため、クライアントに利益をもたらすことができます。
クライアントが、ソフトウェアの成果物に組み込まれる既存のコードを所有することを主張するのは、合理的でもなければ、一般的でもないでしょう。 ひとつには、開発者が(オープンソースのコードのように)権利を所有していない可能性があり、その所有権を付与できない可能性があることです。 もうひとつは、開発会社がその基本的なコードツールやコンポーネントを販売することに意味がない場合があることです。
その代わり、クライアントはそのような既存のコードのライセンスを取得することが期待できる。
例えば、ソフトウェア開発契約では、「既存ソフトウェア」を次のように定義します。
既存のソフトウェア。 契約発効日以前または本契約の範囲外で契約者が開発し所有するすべてのコンピュータプログラム、およびその修正とそれに基づく派生物、およびクライアントの参加を得て設計、開発またはインストールされなかったもの(別紙Bに記載の市販の契約者ソフトウェアおよび契約者が市販品として一般公開していない専有ソフトウェアを含むがこれに限らない)、および当該既存ソフトウェアを説明、維持および使用するために使用される文書。
既存ソフトウェアがソフトウェア成果物に組み込まれる場合、ソフトウェア開発契約には通常、成果物における顧客の権利を行使するために必要な範囲で、顧客にその既存ソフトウェアに対するライセンスを与える条項が含まれます。
もう一つのカテゴリーは、クライアントのために新たに作成されるコードです。 クライアントは、他の誰にも使わせないために、それを所有することを強く望んでいるかもしれません。
しかし、これはまだ交渉のポイントになりえます。 開発者は、この新しいコードを他のクライアントに使用する権利を持ちたいと思うかもしれません。 これは、元のクライアントにとって問題であるかどうかは別として。
クライアントからすれば、自分がお金を出して作ったコードが競合他社に使われるのは嫌なのは明らかです。 ただし、コードが非競争的な目的で使用される場合、クライアントは異議を唱えないかもしれません。
開発者は、同じコードを他の人に再販できることが分かれば、開発費を安く済ませることができるかもしれません。 それは、開発者のビルディングブロックのコレクションの一部となり、再利用され、さらに進化させることができるのです。
したがって、所有権を放棄して、ライセンスだけを受ける(あるいは、新しいソフトウェアを所有しても、それを開発者にライセンスして他の人に使ってもらう)ことは、クライアントにとって経済的に有利になる場合があります。
また、「Software as a Service」(SaaS)というソフトウェア開発モデルもあります。 SaaS契約では、ソフトウェアに関する権利はライセンスされず、譲渡もされません。 ソフトウェアは開発者のサーバーにあり、クライアントはそれにアクセスすることができます。
SaaSプラットフォームは顧客が所有するものではなく、SaaSプロバイダーが所有するものです。 しかし、SaaS契約では、SaaSプラットフォーム上のクライアントデータはクライアントが所有するとされていることが多い。
一般的に、多くのクライアント(おそらく数百万)が同じSaaSプラットフォームを使用しています。 例えば、Dropbox、ZenDesk、Salesforceなどは、SaaSプラットフォームの一例です。
顧客は、開発者にお金を払って、顧客のニーズに合わせてSaaSプラットフォームをカスタマイズすることができます。 これは、ホワイトラベル・プラットフォーム契約と呼ばれるものを介して行われることが多い。
クライアントのホワイトラベル・プラットフォームは、クライアントの名前、配色、ロゴを含めるなど、わずかな変更しか加えられないかもしれません。 あるいは、ホワイトレーベルのプラットフォームは、オリジナル版とは異なる機能を持つ場合もあります。
つまり、ソフトウェア開発契約には "一長一短 "があるのです。