人は過ちを犯す。機械のせいではない

フィリピンはセブに来ています。普段お世話になっている英会話の先生に会う目的です。成田は意外と空いていてチェックインもスムーズでした。今週はベルギーでテロも有りとても不安でしたが全く感じさせなかったです。

さて、ANAのシステム障害が話題になっていますけど、これ系のニュースを聞いた人の反応はそれぞれ違うでしょう。「いやあ本当に困りました」から「JALにすれば良かった」など。大規模なシステム開発に関わったことがあれば同情論もあると思います。

なぜこれが起きたのかという点について、ニュースの報道聞く限りは4台あるサーバが1台ずつ倒れて最後にはシステム全体が使用不能になってしまったと22日時点では伝えています。

この情報もかなり混乱していて、最初はホストコンピュータが4台と言っているメディアもありました。銀行などの金融機関で使っているホストコンピュータとあらゆるシステムで使われているサーバでは全く異なるものです。

仮にこれがサーバだったとするとフライトやチケット管理するシステムが4台でギリギリアクセス(トラフィックともいう)をさばいていたのではないかと考えられます。そういうケースだと1台がコケると他の3台でアクセスをさばかないといけないので負担は上がってしまいます。その状態を続けると2台目が倒れ、3台目がと連鎖を起こしてしまうことが有ります。なので余裕を持ってサーバ台数を確保するのがセオリーなんですがそうしていなかったということなんでしょうか?

憶測ばかりでも何ですのでここは正式な発表を待つとします。

さて、システム障害を起こすことをありえないとかいう風潮が有ります。特に個人情報や生命に関わるものに関してです。もちろんその考えは尊重すべきもので間違いがあった場合の被害を考えれば当然ともいえます。今クールやっていた「フラジャイル」というドラマでも主人公の岸先生が我々は診断確定は10割で自分の言うことは絶対というストイックな病理医が出てきました。

しかし現実には世の中に絶対は存在せず、誰でも経験的にそれはわかっているけど人の犯した過ちには不寛容という風潮があるように思います。私は人は過ちを犯すというのを前提としてミスが起こりにくくするように仕組みで解決するのが正しいと考えております。当然かもしれないけど複数人での確認や、誤動作が起きる前提での冗長性を持たせるという考え方がそれにあたります。

複数人で確認することがより安全であることは確率論で説明できます。人(Xさん、Yさんとする)が間違える確率をx,yとした場合、正常にものが動作するという確率は1−xyとなります。これはXとYが同時にミスしなければシステムが止まらないから1(100%)からその確率を引けばそれが正常に動作するからということになるからです。

xもyも0<1の間に収まるからXがミスしない確率1-x、Yがミスしない確率1-yよりも1-xyの方が大きいのは自明です。試しにxに0.1とかyに0.3とか入れてみれば0.9<0.97とか0.7<0.97となるから納得できますよね?情報処理試験受けたことがある人は感覚的にご存知かもしれません。Zさんが増えれば更に正常動作の確率は増えます。まあ直感的にも正しそうですよね?

現実は他の誰かがテストしていることを前提条件として知っているので勝手にテストを省いてしまったりとか、むしろゲーム理論で言う「囚人のジレンマ」的なのかもしれません。あとよくあるのが、間違い(と思しき事象)を報告したところテスト管理者から間違いではないと突き返されてしまい、報告に自信持てなくなって報告してこなくなるという現象によりテストが形骸化してしまうケースです。

こんな感じで現実には罠が多いんですが、実際問題人間の起こすミスがほとんどです。機械の故障もあるけど、予見可能な場合も多いのでやはりこれも人間のミスな気がします。自分も間違えるんだから人の間違いに寛容になれというのは横暴かもですが、仕組みで間違いが起こりにくくするよう考え続けていくということだけが人間の出来ることじゃないかなと思ったりしています。皆さんはどう思いますか?

Show your support

Clapping shows how much you appreciated Noriaki Takamizawa’s story.