開発中途終了時にベンダーが負う責任~ソフトウェア開発紛争の解説②~

 前回の記事(「仕事の完成」とは?~ソフトウェア開発紛争の解説①~)では、ソフトウェア開発に関連する紛争でよく争われるケースの類型と、報酬請求権が発生する「仕事の完成」について解説しました。今回は、ユーザーがベンダーに対して瑕疵担保責任や債務不履行責任に基づいて責任追及をするケースについて解説します。

1 ユーザーがベンダーに瑕疵担保責任を追及したケース

 ベンダーが納品したソフトウェアに一定の不具合がある場合、それが法律上の「瑕疵」に該当すれば、ユーザーは瑕疵担保責任に基づきソフトウェア開発契約を解除できる場合があります。

1-1 瑕疵担保責任とは?

 ソフトウェア開発契約が請負契約である場合、予定された作業工程が一通り終了して「仕事の完成」が認められたとしても、仕事の目的物(=ベンダーがユーザーに納品するソフトウェア等)に瑕疵があるときは、ユーザーは、瑕疵の修補、損害賠償請求、契約の解除をすることができます。
 そして、瑕疵担保責任は無過失責任ですので、瑕疵があることについてベンダーに原因があるかどうかは関係ありません。契約で約束された仕事を果たせなかった以上、ベンダーはその責任を負うというのが瑕疵担保責任です。

民法第634条 仕事の目的物に瑕疵があるときは、注文者は、請負人に対し、相当の期間を定めて、その瑕疵の修補を請求することができる。ただし、瑕疵が重要でない場合において、その修補に過分の費用を要するときは、この限りでない。
2 注文者は、瑕疵の修補に代えて、又はその修補とともに、損害賠償の請求をすることができる。この場合においては、第五百三十三条の規定を準用する。
第635条 仕事の目的物に瑕疵があり、そのために契約をした目的を達することができないときは、注文者は、契約の解除をすることができる。ただし、建物その他の土地の工作物については、この限りでない。

 請負契約における「瑕疵」についてはいくつか解釈がありますが、建築訴訟についての最高裁平成15年10月10日判決は「契約で予定された品質・性能を欠くかどうか」によって瑕疵の有無を判断しており、ソフトウェア開発紛争の実務上もこの見解を判断基準とすることが多いです。

 なお、瑕疵担保責任を追及できるのは、ユーザーとベンダーとの間の契約が請負契約である場合です。仕事の完成を目的としない準委任契約などの場合には、瑕疵担保責任を追及することはできません。

1-2 ソフトウェアの「瑕疵」とは?

 ソフトウェアを開発するときには、手作業でプログラムを入力する必要がありますので、作業工程が終了し納品された後でもバグが残っていることがあります。この点については、多少のバグが残っていてもそれが軽微であれば瑕疵には当たらないと判示した裁判例があります。

東京地方裁判所平成9年2月18日判決
 コンピューターソフトのプログラムには右のとおりバグが存在することがありうるものであるから、コンピューターシステムの構築後検収を終え、本稼働態勢となった後に、プログラムにいわゆるバグがあることが発見された場合においても、プログラム納入者が不具合発生の指摘を受けた後、遅滞なく補修を終え、又はユーザーと協議の上相当と認める代替措置を講じたときは、右バグの存在をもってプログラムの欠陥(瑕疵)と評価することはできないものというべきである。これに対して、バグといえども、システムの機能に軽微とはいえない支障を生じさせる上、遅滞なく補修することができないものであり、又はその数が著しく多く、しかも順次発現してシステムの稼働に支障が生じるような場合には、プログラムに欠陥(瑕疵)があるものといわなければならない。

 この裁判例では、バグが軽微ではない場合には瑕疵担保責任の問題となると判示していますが、あまりに重度なバグである場合には、そもそも仕事が完成していないと判断されることもあります。仕事が完成していない場合には、後述のとおり、債務不履行の問題になります。

1-3 認められにくいユーザーの主張

 ベンダーの瑕疵担保責任を追及する裁判において、ユーザーから、次のような瑕疵の主張がなされることがあります。

  1. ・システム化すればより合理化できたはずであるのにコスト削減ができていない
  2. ・システム化により宣伝効果を期待したが集客できていない

 しかし、コスト削減ができていない、あるいは期待よりも集客できていないなどのユーザー側の事情は、ユーザー側のソフトウェアの運用に問題があるなどとして「瑕疵」の有無には直結しない主張になる可能性があります。
 ただし、ユーザーのこれらの主張が瑕疵判断に意味があるものになるかどうかは、契約内容等の個別的な事情によりますので、コスト削減や集客が合意内容になっていると言える場合には、瑕疵の有無について有効な主張となります。

 このように、結局契約の内容が重要な審理対象となりますので、要件定義書や基本設計書の内容を確定させておくのが、後の裁判を見据えたときに必要不可欠な作業となります。

2 ユーザーがベンダーに債務不履行責任を追及したケース

 ユーザーがベンダーに対して債務不履行責任を追及するケースは、多くの場合、ベンダーが納期までに納品できなかった事例です。その他、予定された作業工程が完了しない場合には債務不履行の問題とされます。

2-1 債務不履行責任とは?

 契約で定められた義務を当事者が履行できなかった場合、相手方は、契約の解除や損害賠償請求をすることができます。ただし、義務に違反した当事者に帰責性がない場合(不可抗力の場合など)には、責任追及できません。

民法第415条 債務者がその債務の本旨に従った履行をしないときは、債権者は、これによって生じた損害の賠償を請求することができる。債務者の責めに帰すべき事由によって履行をすることができなくなったときも、同様とする。
第541条 当事者の一方がその債務を履行しない場合において、相手方が相当の期間を定めてその履行の催告をし、その期間内に履行がないときは、相手方は、契約の解除をすることができる。

2-2 債務不履行責任と瑕疵担保責任の関係

 債務不履行責任も瑕疵担保責任も、どちらもユーザーがベンダーに対して損害賠償請求や契約の解除ができるとするものです。

 債務不履行責任と瑕疵担保責任の違いは、一般的には、①仕事が完成しているかどうか(完成している場合には瑕疵担保責任、完成していない場合には債務不履行責任)、②受注者に帰責性があるかどうか(ある場合に限り責任追及できるのが債務不履行責任、なくても責任追及できるのが瑕疵担保責任)と理解されています。

2-3 納期遅延の責任

 納期遅延による債務不履行責任を追及する裁判例を分析すると、納期遅延の原因として多いのが、ユーザーとベンダーのコミュニケーション不足です。

 ソフトウェア開発契約は、ユーザーが「どのようなソフトウェアが必要か」を決め、その開発をベンダーにさせる契約です。そのため、ユーザー側でソフトウェアの完成像が固まっていないと仕様変更が相次ぐ事態になりますし、ベンダーの側でもユーザーの要求を正確に聞き取って要件分析を行わないと後に設計のやり直しを招くことになります。

 このように、コミュニケーション不足で納期に遅れた場合には、ベンダーにもユーザーから要求を聞き取らなかったという責任がありますし、ユーザーにも要求をきちんとベンダーに伝えなかったという責任があります。このような場合には、両者に責任(過失)があるため、過失相殺により、ユーザーからの損害賠償請求が認められる金額が減少します。

3 契約の解除とは

 ユーザーは、瑕疵担保責任または債務不履行責任に基づいて、ベンダーとの契約を解除することができます。契約が解除された場合の法律関係は、以下のとおりとなります。

3-1 契約の解除の効果

 契約を解除すると、その契約は「最初から成立していなかったもの」と扱われます。つまり、ユーザーとベンダーがそれぞれ有する権利や義務はなかったものとされます。
 そのため、ベンダー側としてはソフトウェアを開発する義務はなくなりますが、報酬を請求する権利も失うことになります。一方、ユーザーがベンダーに対して既に前払金を支払っていた場合には、ベンダーはその前払金を返還する義務を負います。

3-2 ユーザーから解除するときの注意点

 ユーザーが瑕疵担保責任に基づいてソフトウェア開発契約を解除するとき、その解除の意思表示は、仕事の目的物を引き渡した時から1年以内にしなければなりません(民法637条1項)。そのため、ソフトウェアの納品の日付を記録しておくことが必須です。

 また、注文者はいつでも契約を解除することができますが、相手方に損害を賠償することが前提となります(民法641条)。賠償する損害としては、一般的にはベンダーの人件費やこれまでの開発費用が挙げられます。

4 損害賠償請求について

 瑕疵担保責任や債務不履行責任に基づいてユーザーはベンダーに対して損害賠償請求をするとき、ユーザーが被ったと主張する損害については様々なものがあります。

4-1 損害賠償請求とは

 損害賠償請求により金銭賠償が認められるのは、債務不履行と相当因果関係がある損害に限られます。
 実際に生じた損害が相当因果関係の範囲内にあるかどうかは、①当該損害が通常生じうる損害であれば相当因果関係の範囲内であると解され、②それ以外の特別な事情により生じた損害であれば、損害賠償義務を負う者が当該損害の発生について予見することができたときには相当因果関係の範囲内であると判断されます。

4-2 ユーザーが損害賠償請求できる損害の範囲

 ユーザーがベンダーに対して新システム構築を委託したが開発が遅れ、ユーザーが他のベンダーに委託していたサブシステムの開発も遅延しその分の支払が増加することがあります。この場合には、サブシステムの開発を委託した他のベンダーへの支払が増加することが通常起こりうる(前記①)ので、他のベンダーへの支払はベンダーの債務不履行と相当因果関係の範囲内であると考えられます。

 これに対して、システムが導入された場合に削減できた「はず」の人件費を損害賠償請求することはできません。この人件費は、ユーザーがもともと雇用契約に基づいて負担すべき費用であるという側面があるからです。
 ただし、ユーザーが外部のエンジニアと業務委託契約を締結していた場合には、ベンダーの遅延に伴って業務委託期間も延びたという関係にあり、ユーザーがもともと負担すべき費用という側面もないので、通常生ずべき損害であるといえる場合があります。

 また、新システムが導入された場合にユーザーが得られるはずだった利益が得られなくなったとして、その損害賠償を請求したとしても、認められる可能性は高くありません。このような将来得られる見込みがあるにすぎない利益は、ベンダーが予見してはじめて損害の範囲に入る(前記②)ので、ベンダーの債務不履行を理由とする損害賠償額の予定をしていない限り、請求は難しいと考えられます。

5 まとめ

 以上、今回は、ソフトウェア開発に関連する紛争のうち、ユーザーからベンダーに対して瑕疵担保責任あるいは債務不履行責任を追及するケースと、両者に共通して問題となる契約の解除と損害賠償請求について解説しました。
 契約の解除や損害賠償請求の問題を審理するためには、大前提として契約内容が確定していることが必要です。ここが確定していないと、瑕疵があるのかどうか、債務不履行があるのかどうかを判断することができません。
 次回は、ソフトウェア開発紛争で最も重要な、契約内容の確定に関する紛争を中心に解説します。

  • このエントリーをはてなブックマークに追加

関連記事

運営者情報

お気軽にお問い合わせ下さい

ページ上部へ戻る