内部統制(その2)
プログラム自体も内部統制の対象であることを、改めて強調したい。
たとえば、このところ鉄道運賃の誤りが続いた。話題になったことで各社点検したら、続々と問題が見つかった。自動改札では、料金不足の切符はエラーになるが、過剰はエラーにならない。プリペイドカードを使うようになってから、利用者は運賃を確かめなくなった。IT化がかえって発見を遅らせてきた面がある。そのうえ、運賃体系が複雑になり、特例が多数あるらしい。特に競合区間の運賃計算は難しい。運賃計算ソフトを作っている人に聞いた。運賃表は駅毎に作る。その駅を起点に目的地までの運賃表を作るので、表は駅の数だけ必要になる。手作業ではミス混入を防ぐことは不可能であろう。運賃改訂時、1回限りの表作成だが、ここでの間違いは致命的だ。人間が改札していた時代にも確率的なミスはあったろうが、現代は1個の確率的ミスが固定化され、永遠に繰り返されてしまう。1つ1つは少額でも、塵も積もればかなりの額になる。払い戻しも難しい。
ミス混入が大過のない箇所であることを祈る、というのでは困る。それぞれの箇所の重みが大きく異なる。そして、原本をいくらチェックしても、それを転記したり、コンピュータに入力するときに間違える可能性がある。さらに、そのデータを使ってプログラムが実際計算するときに間違える可能性もある。運賃計算には法律解釈のような側面があり、正しい仕様がはっきりしない。「プログラムが仕様通りに動作する」ことを検証する試験では不足している。といって、すべての駅でのすべての購入パターンを実機で試験するのは非現実的。誰が試験するのかの問題も大きい。原データは鉄道会社の責任で、プログラムは外注の責任と分断されている。
このような問題は、鉄道運賃に限らない。IT社会では、いたるところに潜む。便利さの裏返しの問題である。大仰に言えば、ITの品質には社会的責任まで含まれるようになった。(この点、交換機は先駆者であった)




