少々、古いネタですが、今年の四月上旬に名古屋地下鉄の自販機で釣銭のセットミスで、お釣りの紙幣が間違って排出されたらしい。
http://sankei.jp.msn.com/life/trend/080408/trd0804081224008-n1.htm
10000円で200円の切符を買ったとき、\90,800のお釣りが出た可能性があるとか。
そのときの釣りは1000円札9枚と100円玉8枚を排出するロジックと動作自体は単純です。しかし落とし穴はありました。
1000円札をストックする箱に多種の紙幣をセットしたのが今回の事故の原因だったようです。
なぜ釣銭に万札をセットしたのか疑問はあります。「紙幣を仕分けしないで、束めてセットしたのではないか」と誰かが言ってました。が理解できない。
防止するには
1・1000円札の釣銭箱に他種の札が入らない。
2・釣銭排出(データ出力)時に排出データの妥当性を再度Checkする。
が考えられますが、1・は、5000円札サイズには1000円札、2000円札は入ります。物理的な制約は難しい。
2・は、入金時のCheckerを出力時にも使用すれば実現できそうに思うのです。別途設置するとコストアップは免れませんね。
コストをかけて防止するか、ヒューマンエラーの確立は低いとみて、事故扱いで済ませるか。
経済的には、このような事故は想定外という区分けにしてしまうのが妥当なんでしょうね。
「こんなことをする人はいないという前提は崩れる」とマーフィ則にもあったような。
こんな操作はしないだろう……と手を抜いたシステムを作ると、馬鹿な操作をする人は必ず現れます。
デバッグテストでも「起こらないだろう」と手を抜いたケースは、本番稼動後、不思議に発生します。想定できるエラー回避策を打たないといけません。
人のする事を疑うのは、IT屋の性かもしれませんが、このようなヒューマンエラーが起こると、機械側でのチェックすべきだと感じます。
反面、どこまでも機械がチェックするようになると、考えない人が出てきそうです....ジレンマなのかなぁ。