エンジニア女子の日常

エンジニア女子が本、映画レビュー、ダイエット、仕事、技術について書いているブログです。

エンジニアが障害を起こさないために学ぶミスしない人の思考法〜「なぜかミスをしない人の思考法」を読んだみた〜

 

エンジニアにとって、障害は恐いものですよね?

私も以前、テストケース漏れがあり、サービスリリース後障害を起こしたことがありました。( i _ i )

 

緊急で対応したのですが、冷や汗でましたね。。。

もう障害が起こしたくないなって思いました。

 

原因は、テストケースが足りてなかったことになったのですが、根本として

「なぜミスを起こしてしまったのか」

「ミスを起こさないためにどうしたらいいか」

を考えました。

その時に出会った本が

です。本書の内容に触れていきながら、障害を起こさないように何ができるかを考えた結果を共有したいと思います。

 

「なぜかミスをしない人の思考法」の内容

最初に、「なぜかミスをしない人の思考法」の内容に触れていき、その内容を受け、エンジニアとして障害を生まないように何ができるかの考えを書いていきたいと思います。

1章. ミスをしない人の基本ルール

基本ルールは以下の内容です。

  • 失敗シナリオから共通点を導く

  • 人のせいにしない人はミスが少ない

  • 大丈夫と思ったときこそ、慎重に

  • 無知、無視、過信は「失敗の3悪人」

  • 悪事は後悔して謝った方が損失は小さい

失敗シナリオから共通点を導く

似ている失敗のシナリオを理解していれば、7割のミスは事前に防げます。そのため、失敗シナリオを集約していくことが重要です。

人のせいにしない人はミスが少ない

自責感情を持ち、誰かが起こしたミスに対して明日は我が身と思うことで危機感を持てます。

大丈夫と思ったときこそ、慎重に

いつもやっていて大丈夫と思うことでも、慎重に見直すことでミスを防ぐことができます。

 

無知、無視、過信は「失敗の3悪人」

知らないこと(無知)でミスすることも

ルールがあると知っていても重要でないと判断し(無視)ミスすることも

証明がないのに絶対大丈夫(過信)と思ってしまうことも

ありますよね?

悪事は後悔して謝った方が損失は小さい

悪事に対して責任放棄したりすると、今後の信頼に関わる問題になります。今だけではなく、将来を見つめた行動をとりましょう。

致命的なミスはどうやって防ぐ?

ハインリッヒの法則はご存知でしょうか?

 

ハインリッヒの法則

引用:https://www.motivation-up.com/know/heinrich.html

 重大な事故:軽微な事故:小さいなミスが1:29:300で起きるというものです。

 

ハインリッヒの法則でわかることは、日常的なミスにはないところで、致命的なミスを起こす可能性が高いということです。

だから、作業で普段と違うことをする時は、致命的なミスが起こりやすいので注意することが重要です。

 

もしミスが起こった場合に対しても準備

リーダーがミス防止に強い関心を持っているだけで3分2の失敗は消えます。

もし自分がリーダーでもリーダーでなくても

  1. 希望的観測が入ったシナリオ
  2. 現実的シナリオ
  3. 最悪のシナリオ

を描くことで、万が一ミスがおきた場合も対処がスピーディーに行うことができます。

 

ミスから学ぶことは?

仮説から検証までを頻繁に行うことで、思い込みを打破することができます。

だから、ミスはすぐに捨てるのではなく、分析や検証を加えて、活用方法を考えていきましょう。

 

ミスを起こらない仕組み作り

人間であれば、ミスを起こしてしまうのは仕方がありません。

少しでもミスを起こさないために、機械による作業の自動化や、チェックツールの導入がとても効果的です。

また、個人で作業を完結するのではなく、複数人でチェックすることも大切です。

 

「なぜかミスをしない人の思考法」の内容をエンジニア業務で生かせること

1, 失敗(ミス)DB化し、知見を溜める

ミスへのシナリオの分析のためにも、ミスの事例をまとめる必要があります。

個人としてミスをDB化することも大事ですが、組織でミスの事例を集約できると尚良いです。

私の場合は、自分が「ミスしたな」って事柄に関しては、メモを残し、1ヶ月1回見直すようにしました。

 

2, 既存の仕組みであっても過信せず、丁寧に検証を行う

どうしても既存のシステムで起動しているものだど、流用しても問題ないと過信をしまいがちです。

ですが、その時に1歩立ち止まって振り返ることをしています。

既存を流用するのが、本当に正しいのかと、、、。

3, ミスを防ぐための自動テストツール、他者のチェック制度を導入する

個人ではないですが、組織として自動テストツールやエンジニア同志でのチェック制度は重要ですよね。

もし、自動チェックの仕組みがないのであれば、自動テストの導入を考えてみてはいかがでしょうか?

今後の運用コストやミスのリスクを考えた上で、 自動チェックツールを自分たちで開発してみるのもいいかもしれませんね。

 

弊社も、自動テストツールなどの導入は行っています。

エンジニアとして障害(致命的なミス)をしないためには?

小さいミスの知見をため、ミスの分析をすること

最悪の場合のケースを考えておくこと(リカバリーしやすい実装)

が大事なのかなって思いました。

 

エンジニアが障害を起こし、ミスしないと思っている様子

エンジニアが障害を起こし、頭を抱えている姿