問題をちゃんと解決するために必須の手順、4ステップ。

「大変です!」から始まる、緊急の問題解決の手順について。 (WEB系以外に適用できるかどうかは分かりません。)
WEBサービスは、動かしながら修正することが多い都合で、時折思ってもいなかった問題が発生することがありますが、そういう時に落ち着いて対処するための4ステップです。

1. まず被害を減らすための措置をとる。

問題が発生したら、まず根本解決をはかる前に被害を抑えるための措置を取らなければなりません。
WEBサーバに高負荷がかかっているならアクセスを制限するとか、アプリがクラッシュするなら公開を停止するとか、認証にバグが見つかったとかなら一時的に認証をふさぐとか、そういうことです。

これをしないと何が起こる?

  • 問題を根本解決するのに時間がかかった場合に、大きな被害が出ることになる。
  • 問題が広がるのを見ながら対処することになるので、慌ててしまって問題の解決方法を誤る

2. 問題の原因を知り、再現させる。

まずは被害を広げないように対処したら、次に根本的な原因を探る必要があります。
原因を知らずに「おそらくこれが悪いだろう」と言って対処をすると、問題の原因を見誤って二次被害が出ます。原因が分からないのに直すことはできたら神ですが、僕たちは神ではないので原因を知る必要があります。
原因が分かったら現象を再現することができるはずです。だから、必ず現象を再現させて「問題が発生する」ことを確認する必要があります。再現しないのだとしたら、原因は他にあるので、もっと調べなければなりません。

これをしないと何が起こる?

  • 何が原因なのか分からないので、解決に時間がかかる。
  • 原因が分からずに対処することになるので、解決したつもりが解決できていない。

3. 原因を取り除くように修正する。

原因が分かり再現性がとれたら、その原因を取り除くように修正をかけます。

これをしないと何が起こる?

  • (当たり前だけど)解決に至らない。

4. 問題が発生しないことを確認する。

修正をかけたら、2.で調べた再現パターンで「問題が発生しない」ことを確かめる必要があります。
2. で再現性をとらないと、3. によって「本当に修正されているのか?」が分かりません。意味があるか分からない修正で修正した気になると事故が起きます。

これをしないと何が起こる?

  • 解決策が誤っていたことに気付けない。

全部やる

わざわざ「これをしないと何が起こる?」を書いたので理解してもらえると思いますが、一つでも抜かすと被害が大きくなったり、問題が解決できなかったりします。順番に確実に対処するのが良いです。

チェックリスト

以下を埋めながら、問題解決すると良いと思います。

  1. 被害を抑えるための措置: 【   】
  2. 問題の原因: 【   】
  3. 問題の再現方法: 【   】
  4. 問題の修正方法: 【   】

最後に言い訳しておくと、必ずしもこのテンプレートに当てはまる問題ばかりではないし、小さな問題ではステップを省いた方が早期に解決できる場合もあります。そのあたりは柔軟に・・・。

コメント

タイトルとURLをコピーしました