承認の承認の承認をやってはいけないのだ。
現場猫のトリプルチェックの絵を初めて見た時、なぜだか少し懐かしい気持ちになりました。
システム運用の世界にも、「ダブルチェックで防げなかったので、来月からはトリプルチェックでミスを撲滅します!」という禁断の運用改善があったとか、なかったとかささやかれております。
そんな悲しい運用改善は、我々の代で終わりにしなければなりません!
他の業界に学ぼう
そもそも人間とはミスをする生き物です。
「人はミスをする」という前提に立ち、可能な限りミスを減らすというのが運用改善の正しい姿勢になります。
どんなサービスでも、稼働率100%のSLAを提示しているサービスはないでしょう。
ただし、盲目的に施策を実施しても作業ミスは減りません。
作業チェック方法やミスの発見率については、鉄道や原子力といった分野で研究が進んでいます。
ITシステム運用も、それら分野からノウハウを学んだ方が良いでしょう。
まずトリプルチェックの現場猫問題ですが、3人以上でチェックすると、2人でチェックする場合よりも全体的なヒューマンエラー検出率が低下することが論文で明らかになっています。
これは社会的手抜きと呼ばれていて、集団心理としてどうしても起こってしまう現象です。
これらのことを考えて、運用作業のミスを軽減させるためには適切なチェック体制を構築しなければなりません。
今回は作業チェックを「承認」と「レビュー」に分けて考えます。
承認: 作業実施を許可する
レビュー: 作業内容が正当であると認める
この2つは混ぜるな危険です。
それぞれの内容を考えてみましょう。
承認: 作業実施を許可する
経費の申請を上司が承認したり、プロジェクトの開始を社長が承認したり。
つまりGOサインが出たというやつです。
ただ、GOサインが出たからといって内容が担保されたわけではありませんね。
あくまで「やっても良し!」となっただけで、成功するかどうかは別モノです。
ITIL的な運用管理で考えると、これは変更の承認にあたります。
全体が見渡せる人が、作業タイミングや実施時期などを鑑みて承認をするのが良いでしょう。
レビュー: 作業内容が正当であると認める
レビュー方法には2つの方法があります。
ダブルチェック:同じものを同じ観点で再度確認する
クロスチェック:同じものを異なる観点で再度確認する
一般的にはクロスチェックの方が、ミス発見件数は上がるとされています。
例えば手順書をチェックする場合、作成者は過去の構築手順から作成して、もう一人が最新の公式ドキュメントを元にチェックした方がミスが見つかりやすくなります。
同じソースを元にチェックした場合、ソース自体の間違いが発見できないので可能な限りクロスチェック方法を確立することをお勧めします。
しかし、クロスチェックにはかなりのスキルが必要となります。
そして、それなりの時間もかかります。
クロスチェックを必要とする作業の影響度、重要度などを定めて、必要に応じて実施するのも良いかもしれません。
まとめ:承認フローを整備する際に気にすること
最後にミスを軽減できる承認フローを考える上で気にする点をいくつかまとめておきます。
1.承認者の役割を明確にする。
作業承認なのか、レビューなのか、承認者の役割と責任を明確にしておきましょう。
2人チェックするけど、2人とも作業承認では確認範囲が不十分です。
2.同じ役割に2人以上の承認者を配置しない。
あまりに承認やレビューの人数を増やすと、現場猫のトリプルチェック現象が起こるので、承認者の人数は減らして責任を持たせた方が良いでしょう。
無意味なハンコリレー、ダメ、絶対です。
一人が2回チェックするダブルチェックもミス発見には有効とされています。
なので、作成者がダブルチェック、レビュー者がクロスチェック、承認者は全体把握して承認。
それらの一人ひとりに責任をもたせ、作業するのが一番ミスが少なくなります。
3.チェックを複数人で行う場合は、前の人のチェック内容を見せない
2人以上でチェックする場合、前の人のチェック内容が見れてしまうと、手抜きが発生してエラー検出率が下がります。
すべての人が初回チェックの気持ちで行う方が、よりエラー検出率は上がります。
変更管理やリリース管理の承認フローを再検討する際には、このあたりのノウハウを反映できるとより良い運用フローが出来上がるかと思います。
システムの運用設計に関する書籍を出しています。
ご興味ある方はぜひ!