誤発注裁判が改めて問う「バグは重過失か」
[論点1]バグによる損害は誰がどこまで補償するのか
[論点2]適切なテストを行えば発見できたか
[論点3]どんな開発手法を適用すべきか

 みずほ証券がテストの件に加えてもう一つ、東証の重過失に当たるとしたのが「システムの開発手法が適切ではなかった」点だ。開発ベンダーに適切な開発手法を求めなかったため、発注者である東証も責任を免れないとする。

 開発手法が適切ではないことを説明するために、みずほ証券は具体的な事例を示した。東証がソースコードを修正する際に、「モジュール詳細定義」などのドキュメントを修正していなかった点だ。

 東証はこの事実を認めた上で、「一旦コーディングが済めば、その後の修正は、全てソースコードを中心に行うことが最も効率的であるから、モジュール詳細定義を改訂していなかったことに問題はない」と反論した。「コーディングが済めば、ソースコード自体が、最も詳細なドキュメントである」というわけだ。

 これに対してみずほ証券は、ソフトウエア工学の専門家による意見書を引用し、こうした東証の主張を真っ向から否定した。「システムを保守する者はドキュメントを見ないというのだろうか。コードだけが頼りというのでは、ソフトウエア工学が長年にわたって培ってきた知見をすべて無視することになる」として、東証の主張を「暴論」と切って捨てた。

 ソースコードの品質についても、みずほ証券は問題を指摘している。今回のバグがあったプログラム全体について、「ソースコードの著しい重複が見られるなど、エラーの潜在する率が極めて高い作り方をされており、品質が極めて低い」と主張。これに対して東証は「コードクローン(記述の重複)を含むプログラムは、含まないプログラムと比較して信頼性が高いことが定量的な研究で裏付けられている」と反論した。

弁償に明確なルールを

 今回の裁判が突きつけたのは、システムのバグによる損害が巨額である場合に、使用者と提供者、開発ベンダーの誰がどの程度責任を負うべきかについての明確なルールがないという事実である。

 例えば、交通や電力といった都市の社会インフラをITで制御する「スマートシティ」において、システムのバグが思わぬ交通事故や火災を起こしたとすれば、一般市民、自治体、開発ベンダーの誰が責任を取るのか。

 ある弁護士は「システム稼働の前に、不具合による損害を弁償する保険のような仕組みを導入するべきだ」と語る。ただしそうなると、その保険料が上乗せされるためシステム構築費用や利用料が上がるという課題が生じる。

 ITがこれまで以上に社会インフラに深く組み込まれつつある現在、みずほ証券と東証の裁判は、バグがもたらす損害の賠償ルールという、新たな問題への対処を我々に迫っている。