「バグなんだから無料で直せ」という誤解が、プロジェクトを凍結させた話

「瑕疵担保責任(契約不適合責任)」という魔法の言葉。これがあれば、納品後の不具合はすべてベンダーの責任だと思っていた。しかし、法律の壁は私の想像より遥かに高かった。

「保証期間中」という全能感

ある中小企業の発注者は、納品された在庫管理システムを使い始めてすぐに、違和感を覚えました。 「あれ、この画面で入力したデータ、別の画面でこういう順番で並んでほしいんだけど、そうなってないな。これもバグだろう。保証期間内なんだから、無料で直させてよ」

彼は、契約書にある「契約不適合責任(旧:瑕疵担保責任)」という項目を、電化製品の「1年保証」と同じものだと考えていました。何が起きても、ベンダーが無料で対応してくれるはずだ、と。

しかし、ベンダーからの回答は冷ややかなものでした。 「それはバグ(不具合)ではなく、仕様の範囲内です。ご要望の機能にするには、別途 追加開発費用 が発生します」

「バグ」か「仕様」か。終わりのない論争

ここから、発注者とベンダーの泥沼の論争が始まりました。

発注者:「使いにくいんだから、不具合と同じだ!直すのが当たり前だろう!」 ベンダー:「要件定義書には『この順番で並べる』とは記載されていません。指示通りに作ったので、欠陥ではありません」

実は、法律上の「契約不適合」とは、あくまで「契約した内容(仕様書等)と異なるもの」を指します。

  • バグ: 「保存ボタンを押したのに、データが保存されない」(契約上の機能を果たしていない)
  • 仕様の相違: 「保存はされるが、一覧画面で見にくい」(契約で細かく指定していなかった)

後者の場合、たとえ発注者が「こんなの使い物にならない」と感じても、法律上はベンダーの責任を問うことは難しいのです。

感情的な対立が招いた「保守停止」

発注者が「無料でやれ」と強く主張し続けた結果、ベンダーとの信頼関係は完全に崩壊しました。ベンダー側も「これ以上の対応は赤字になる」と判断し、ついには「契約の更新はしない」と通告してきました。

結局、システムは中途半端な状態のまま放置され、別のベンダーに引き継ごうにも、前任者とのトラブルが原因で敬遠される始末。発注者が「法律で守られている」と過信した結果、最も守りたかったシステム自体が動かなくなってしまいました。

教訓:契約は「完成後の揉め事」を防ぐためにある

瑕疵担保責任は魔法ではありません。それを有効に機能させるためには、大前提として 「何が正常な動作か(要件)」 が明確に合意されていなければなりません。

「普通はこう動くだろう」「常識的に考えてこうだろう」という曖昧な期待は、トラブルの元でしかありません。リリース後にベンダーと戦うために法律を持ち出すのではなく、開発の途中で「動く実物(プロトタイプ)」を触り、仕様の齟齬を潰し尽くしておくこと。

法律上の責任を追及する事態になっている時点で、既にプロジェクトとしては「負け」なのです。契約書の文字を読み込む以上に、目の前の画面の動きを、ベンダーと一つずつ握り合っていく泥臭い作業こそが、最大の防衛策になります。