3分で教えます! vol.7 「マーフィーの法則から考えるシステムとトラブル」

3分で教えます! 第7回はシステムとトラブルの関係についてお伝えします。
システム業界に従事している方なら必ず意識しているのが、システム障害・システムトラブルについてです。
今回はそんなトラブルに対する考え方をお伝えします。

障害は必ず起こるものである

システムを設計する際、「障害は必ず起こるものである」という信頼性設計の基で考えます。
機器は当然老朽化しますし、使用者が誤った操作をすることも当然あります。天変地異だっていつどこでどの規模で起こるかは予測できません。金銭・人命・生活に影響の出ないものであれば「トラブルなので使えません」で済むかもしれませんが、交通系インフラ(飛行機・鉄道など)や生活に密着するシステムでは大きな社会的責任を問われることになります。
正常に動作することと同様(場合によってはそれ以上)に障害に備えた設計というものも重要視する必要があります。

マーフィーの法則とは

    • “マーフィーの法則とは、”If anything can go wrong, it will.”(「失敗する可能性のあるものは、失敗する。」)[1]に代表される「経験則」や、「法則」の形式で表明したユーモアである。社会学者の小池靖は、ニューソート思想のジョセフ・マーフィーの著作のパロディであると述べている。・・・(中略)・・・一面では「高価なもの程よく壊れる」に代表されるような自虐的悲観論を具現化したものと捉えることができるが、その一方で「常に最悪の状況を想定すべし」という観念は今日、システム開発、労働災害予防、危機管理、フェイルセーフなどの分野で現実問題として重要視される考えとなっている。wikipedia「マーフィーの法則」より引用”

諸説あるようですがもとは軍事関係者の失敗に関する見解が膨らみ法則という形で編纂されているもので、「高価なもの程よく壊れる」の例として、
落としたトーストがバターを塗った面を下にして着地する確率は、カーペットの値段に比例する
というユーモアに富んだものもあるようです。
失敗は常に身近にあるもの、またそれは得てして選ばれるもの、という思想のもとになっています。

障害が起こっても止めない!フェールソフト

障害発生時にシステムを止めるのではなく、機能を縮小して継続稼動させる考え方がフェールソフト(fail soft)になります。
代表的な例では複数のエンジンを積んだ飛行機になります。片方のエンジンに火災が発生すると燃料の供給を断って延焼を防ぎ、残ったエンジンで速度を落として飛行を継続できるような設計になっているのがフェールソフトの概念になります。
機能性・冗長性は落ちるかもしれないが、止めてしまうよりマシ、という考え方ですね。

とにかく安全を優先!フェールセーフ

障害発生時に安全なほうへと機能をシフトさせていく考え方がフェールセーフ(fail safe)になります。
こちらの代表例は新幹線などがよく挙げられていて、なんからの重大な異常を検知した場合、急停車させることを最優先させる設計になっています。車のアクセルよりブレーキのほうが大きく踏みやすく設計されているのも同様の考え方から来ていると考えられます。

障害のないシステムはない?

こう言ってしまうと乱暴な気がしますが、どんなシステムにも障害は起こります。
それを具現化させない、万一起こっても安全な方向に動かす、という設計がどこまで細かく行われているかによってシステムの安全性は保たれている、ということです。
ある書籍で読みましたが、windows95は発売当時軽微なものを含めて5,000個のバグ(プログラムの不備)があったそうです。それでもそのバグに対する対処設計がされていたので、発売当初から修正を繰り返しではありますが大きく評価されました。
障害の研究については以下の書籍もオススメです。
過去の航空機事故、原発事故などの障害要因を掘り下げて研究しています。

最悪の事故が起こるまで人は何をしていたのか (草思社文庫)
ジェームズ・R. チャイルズ
草思社
売り上げランキング: 10,389

いかがでしたか?

今回はシステムトラブルに対する考え方を学びました。日常生活を事故なく安全に過ごせているのは過去の失敗の教訓を積み重ね、それをもとに緻密な設計が行われているからだとしみじみ感じますね。

これからも色々なテーマを取り上げていきます。リクエストなどあればページ下部のコメントから送ってください!


返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です