継続的なメンテナンスが予定されていたことから、注文書に明記されていなくても、実行ファイルのみならずソースコードの引渡義務もあったとし、ソースコードの最新版が提供されなければ債務不履行となるとされた事例。
事案の概要
原告(X)は、Zから受注した姿勢計測システム(本件計測システム)の設計開発の一部のソフトウェア(本件ソフトウェア)の開発を被告(Y)に委託した。XY間では継続的に取引があり、契約書は作成されておらず、見積書、注文書、請求書等の書面でのやり取りが行われていた。
最初の納入は、平成29年2月末に行われ、Yが本件ソフトウェアの実行ファイルを納入し、代金約170万円が支払われた。
その後も何度か追加の注文書が出され、本件ソフトウェア改良がおこなわれていた。代金として合計で約330万円が支払われた。
本件ソフトウェアの改良・機能追加開発の途中である平成31年4月に、本件ソフトウェアの開発に従事していた唯一の従業員Dが死亡したため、開発作業が中止された。
Xは、Yに対し、本件ソフトウェアの最新のソースコードの引渡しを求めた。Yは、調査したが、最新のソースコードは発見されなかった。そこで、Xは、Yに対し、仕事完成義務又は成果物引渡債務の債務不履行に基づく損害賠償として、既払金相当額等の合計約345万円の損害賠償を求めた。
ここで取り上げる争点
(1)契約の性質/個数
Xは、全体を通じて1個の請負契約であったと主張していたのに対し、Yは、最初の開発、追加の改良・開発の受注は別個の契約であり、準委任契約だと主張していた。
(2)ソースコード引渡し義務の有無
Xは、ソースコードの引渡しの合意はあったと主張していたのに対し、Yは完成・引渡しを約する契約ではなく、ソースコードの引渡しの合意もないと主張していた。
裁判所の判断
争点(1)について、裁判所は請負か準委任かを明示しなかったが、契約は別々であったとした。
本件計測システムの開発は,試作品を作成した上で,システム計測精度,施工管理項目の妥当性等を確認し,有効性の評価を行うなどして,その都度,改良を加えながら行うことが予定されており,本件計測システムの一部である本件ソフトウェアの開発についても,改良を加えながら行うことが予定されていたこと,そのような状況の下で,X及びYは,当初の契約として,被告が本件ソフトウェアの開発作業を行い,原告が代金として160万円を支払う旨に合意したことが認められる。これらの事実によれば,当初の発注の時点で,XとYとの間においては,本件ソフトウェアの開発のみならず,その後の改良や機能の追加作業の発注が予定されていたものといえる。
もっとも,当初の発注の時点で当事者が取り交わした見積書及び注文書においては,(略)完成を目的としていたことを示す記載や,発注内容として改良及び機能の追加が含まれていることを示す記載は見当たらない。また,Yにおいては本件ソフトウェアの開発に関する打合せや実際の作業をDのみが行っていたのであり,Yの受注は,D個人の能力や経験が見込まれて契約に至ったものといえる。そして,開発作業の納期についても,発注書上,「打合せによる」などとされており,当初の発注の時点で,Yによる開発作業として,どこまで想定されていたのかは納期の点ら見ても明らかではない。
これらの事情によれば,XとYとの間においては,当初の開発の段階で,その後の改良又は機能の追加の各段階を含めた1個の請負契約として締結されたものとは認められず,当初の開発,改良及び機能の追加の段階ごとに,個別に契約が成立していたものと認めるのが相当である。
続いて、(2)のソースコード引渡し合意については、見積書や注文書には、成果物の具体的な定めが置かれていないとしつつも、次のように述べた。
ソフトウェアの改良又は機能の追加やバグの修正を行うためには実行ファイルに加えてソースコードが必要となることからすれば,各開発段階における個別契約においては,それぞれ成果物としてソースコードの引渡しが含まれていたと見るのが当事者間の合理的意思に合致するといえる。このことは,Dの死亡後,XがYに発注した他のソフトウェアの最新のソースコードをYから受領したほか,Xの従業員であるCから本件ソフトウェアの最新のソースコードの引渡しを求めたのに対し,Y代表者は,Dの遺族にパソコンの引渡しを求めている旨を回答し,ソースコードの引渡しを否定していないことからも裏付けられているといえる。
これらの事情によれば,XとYとの間においては,各開発段階の個別契約において,成果物として,実行ファイルに加えて,ソースコードを引き渡す旨の合意があったと認めるのが相当である。
そして、最新のソースコードが引渡しされたという事実は認められなかったが、平成30年10月21日時点(Dが死亡する約6カ月前)のソースコードが引き渡されていたところまでは認定された。
よって、当初の開発段階の成果物引渡義務には債務不履行がないが、改良・機能追加段階では、実行ファイルしか引き渡されておらず、ソースコードの引渡しがなされていないとして、次のように述べて債務不履行があり、当該代金は損害に当たるとした。
本件ソフトウェアの開発のうち,改良及び機能の追加の各段階における個別契約に基づいて支払われた合計161万0094円については,成果物のうち実行ファイルの引渡しがされた事実が認められるものの,ソースコードの引渡しがされた事実が認められない。そして,上記のとおり,本件ソフトウェアの開発は,当初の発注の時点で,継続的に改良が行われることが予定されていたこと,また,ソースコードの引渡しがなければ改良やバグの修正といった作業を行うことができないことからすれば,その引渡しがなければ契約の目的を達成することができないといえる。そうすると,当該金額については,Yの債務不履行と相当因果関係のある損害に当たる。
なお、Yは、Xにおいて本件ソフトウェアの管理を行った過失があるから過失相殺によってYの責任が否定されると主張していたが、Yにおいてソースコードの管理措置を取るべきであって、Xには過失があったといえないとし、過失相殺の主張を否定した。
若干のコメント
本件では、注文書等に「ソースコード」が成果物として明示されていなかったものの、ソースコードがなければ改良やバグ修正ができず、継続的な改良を予定していたという事情等から、ソースコードの引渡しが合意内容に含まれていたということが認められました。
この事例を一般化し、ソフトウェア開発委託業務全般において、受託企業がソースコードの納入義務を負うというところまでは言えないという点に注意しなければならないですが、納入義務の有無を分けるポイントとしては、開発の目的、納入するソフトウェアの性質、納入後のソフトウェアの利用・保守のことなどが挙げられるでしょう。継続的に改良・機能追加が予定されていたとすると、ソースコードの納入義務がなければ、常に同じ開発業者に依頼しなければならなくなりますが、本件のようなXYの関係では、ずっとYが改良等を担当することも予定されていたといえなくもないので、ソースコードの引渡義務があったといえるかどうかは微妙なラインだったように思います(ただし、唯一の開発者であるDが亡くなってしまったために、Yも手出しできなくなったという事情は大きかったでしょう。)。
判決文によれば、Dは、亡くなる1カ月前までは開発業務に従事していたようですが、受託したYも、こうしたソースコードをはじめとする開発リソース・オブジェクトの管理を俗人的に任せていたというのが致命傷だったといわざるを得ません(亡くなった後に最新版のソースコードを引き渡すことができれば、既履行分が損害となることはなかったでしょう。)。
事案は異なりますが、メンテナンス業務の終了と共にソースコードの引渡しを求めた事案において、ソースコード引渡義務を否定した事例(大阪地判平26.6.12)があります。