ミスとかトラブルとか

UIEUEIのid:shi3zさんがミスについての話を書いておられる(会社名間違えてました.大変失礼しました. > shi3zさん).


部下が致命的なミスをするのは全面的に上司の責任


1行でまとめると「ミスは必ずおきるので,ミスを事前に検知する仕組みが必要だよ」ということなんだけど,私も前職ではありとあらゆるミスやトラブルに遭い,それに対して思うところがあるので,どう対処してきたかを書いてみようと思う.
このエントリは長くなりそうなので,先に「今来た3行」でまとめるとこんな感じになる.

  1. ミスやトラブルはありとあらゆる隙間を縫っておきるので,確率的なものととらえる方がいいよ.
  2. ミスやトラブルがおきた時の影響を最少にするためにはミスやトラブルを検知することの他に,「そもそもそんなミスが起きえないようにする」,「万一そのミスがおきても大丈夫なようにする」為の仕組み作りが重要だよ.
  3. 根性論に頼るのは禁止です

前職ではありとあらゆるミスやトラブルを経験した.
また私の前職はオンライン広告システムのエンジニアで,お金を直接稼いでいることもあって,トラブルに対する風当たりは社内でもキツイ方だったと思う.

トラブルもいろいろで

  • 広告の数字設定を間違える
  • 画像ファイルを指し間違え


などの作業者の「うっかり」に起因するミスの他に

  • スイッチ付電源のスイッチを誤って踏んで,ぶら下がってたサーバ全てダウン
  • ラックの電源容量が足りなくなってラックごとアウト
  • デフォルトルータのIPを別サーバにつけてしまい,セグメント内のarpテーブルがぐちゃぐちゃ
  • 不良ロットのサーバ群をつかませられて,サーバがリブートすると電源ファンがいかれる.
  • 間違った設定ファイルを配ってモガモガ
  • テロが起きてアクセス増加(参考URL)

などのあまり想定されないトラブルも多々あった.それらのトラブルに対する経営陣からの言葉は「事故はゼロにせよ」というものだったんだけど,あまりにも想定外のトラブルが起きるので,事故ゼロの体制を最初から作るのは不可能と割り切ることにした.
ただ下記のような対策を行うことによって結果として実質事故ゼロに近い体制を当時作ることが出来た.


なお本エントリは「あんまりお金やリソースをかけずに事故ゼロを目指す」話なので,原発などのように「金をかけるかわりに最初から絶対事故ゼロ」みたいな話とは多少アプローチが違ってると思います.

ミスやトラブルは起きるものと考える

人間に起因するミス例えば桁数ミスやコピペミスなどはどんなに努力してもなくならないし,OSSのバグなど全く思いもよらないトラブルは不定期に起きていたので,ミスやトラブルは確率的に起きるものと考えるようにしていた.


またそのようなミスが直ちに検知され,それが他に波及しないのならばミスではないとしていた.これは地味ながら結構重要で,そういうルールがないと「コピペミスがおきることすら許さん!対策しろ」みたいに異様にコストがかかる割にたいした効果が得られないという本末転倒な事態になりがちだからだ.そういうのを防ぐ意味でも「何をもってミスとするのか」を決めるのは結構重要だった.

不安定な仕組みの上に安定した仕組みを構築することは可能だと考える

ミスやトラブルがあくまでも確率的におきるものだと考えるなら,それを実用的な確率にまで下げることによって,安定したシステムを作ることは工学的には可能である.
例えばRAIDなどはまさにそのために考えられた仕組みで,壊れやすい(だけど安い)ハードディスクを束ねることで実用上問題ないようなシステムを構築している.


ここで大事なのは「不安定な仕組みの上に安定した仕組みを構築することは可能」と考えることで,システムの一部分が不安定だからといって,それを利用するシステムの安定性自体をあきらめる必要はないということだ.

ミスは許す.ただし一回だけ.

トラブルやミスは必ず起きるものなので,我々はそれを許容することにしていた.
またミスが発生したら必ずその対策を要求することにしていたため,システム自体はどんどんミスが起きにくくなっていた.そんな中でさらに起きるミスは我々に「まだこんな穴があったのか」と新たな知見をもたらしてくれるものだった.
これはソフトウェアでいうならバグに近いもので,「バグを見つけてくれてありがとう」という態度を取ることによって,報告しやすい雰囲気を作っていた.


ただしミスを許容するのは最初の一回のみで,必ず対策を施すことを要求し,
**全く同じ理由によるミス**に対しては非常に厳しい態度をとっていた
(さらにいうとトラブル自体を報告しないことに対してはさらに厳しい態度を取っていた).


なお対策を考えるときのポイントは下記の通り.


「そもそもそんなミスが起きえないようにする」
「そのミスが万一おきても大丈夫なようにする」


これは前職の社長からのアドバイスだけれど,非常に本質をついていてかつ実効性があるものだった.また後述するが,「以後気をつけます」というような人的努力に依存する対策は全く認めてなかった.

基本的に個人の英雄的努力には期待しない仕組みにする

例えば工場で工具を上から落として工員の頭に当たるトラブルが頻発してたとして,そのときに立てる対策は何が適当かという問題を考えてみよう.

この場合「工具を落とさないように気をつける」は答えとしては0点で,全く解決方法になってない.
「工具を落とさないように気をつける」というような作業者の英雄的努力を永久に期待する方法だと,作業者に強く依存することになるのでその人の調子が悪くなったり,作業者が交代になるとトラブルが再発することになる.


おそらくよりよい方法は


「落としても大丈夫なように工具に紐を付けておく」
「落としても大丈夫なように工場内ではヘルメットを着用」


などで,これは前述の


「そもそもそんなミスが起きえないようにする」
「そのミスが万一おきても大丈夫なようにする」


に合致した解決方法である.

最後に

ここ1年ほどいろんな場所でアクセスを受けている人たちと話をする機会があって,「トラブルとかはどう対処してるの?」という質問に対して「努力と根性でなんとかしてます」とかいう答えをよく聞いた.


なるほどそういう人たちはみんな若くてガッツのある人たちだったので,それでもいいのかも知れない.
じつは私もそう考えていた時期がありました(AA略).でも10年とか20年とかたっても「やっぱり根性っすよ」とか言い続けるのは私には無理そうだったし,柴千春センセイのように「根性出すのは簡単だ.根性だしさえすりゃあいいんだからな」とかいうメンタリティも持ち合わせておらず,なにより根性が切れてしまい,志半ばで会社を去っていく人たちを何人も見てきたので,メンバーの根性が無限に供給されることを前提にした方法はやめようと思った.



今回書いた方法は例によってたいした話ではなく,なぁんだと思った人も多いと思う.
ただポリシなしに対策をしているとどうしても根性論に頼りがちなので,そういう人は根性を出さなくても何とかなる方法を根性で考え,ノートラブルで愛する人の元に帰っていただければ幸いです.

2017/08/11追記
事故に対する心意気を非常にうまく表現した動画があるので、みなさんもぜひ。
www.youtube.com



あとキーワードとか

安全工学
ヒューマンエラー
TQC

(おしまい)