OOK3S0420140125180412_TP_V1

せっかくシステムを導入したのは良いけれども、そのシステムがやたらと原因不明のトラブルが多いものだったとしたらどうでしょう?

「午前中の業務が一番忙しいときにシステムが停止する」「ときどき、データの一部が消失するため再入力している」「カスタマーサービスにトラブルの説明を受けても、どうも釈然としない」そんな品質の悪いシステムも、残念ながら存在します。

しかし、システムのトラブル対応にはコツがあります。システム管理者がそのコツを身に付ければ、保守サービス会社にトラブル対応を任せるよりも、トラブルを素早く解決できることが多いです。

ここでは、「導入したシステムの調子が悪くて困っているシステム管理者が、どのように問題を解決していけばよいか」についてお話します。ここで述べる内容を理解することにより、システム管理者がトラブル対応から解放され、システムを高品質のものに改善していく方法を学ぶことができます。

なお、ここでの「トラブル」とは明らかなプログラムのバグは除き、「原因も再現性も不明の不具合により、システムを用いた業務に支障が出ている状態」を指すこととします。

トラブルの症状を正確に把握する

トラブルが発生したときに最初にすべきことは、「現場で起きているトラブルの症状を正確に把握すること」です。このとき、「○○が動かなかった」などのあいまいな表現では、第三者がトラブルの内容を把握できません。

「いつ、どこで起こったか」「どのような頻度で起きるのか」「起きる日や時間帯に決まった特徴があるか」「起きたときの画面表示はどうなっていたか」「起きたあとの操作にどのような支障があったか」などの情報が必要になります。

ちなみにトラブル時の画面表示は、後の原因究明においてとても有用な情報になることが多いです。画面表示をメモ用紙に書き写すか(一言一句正確であることが重要です)、面倒なら写真を撮っておきましょう。

なお、システムトラブルが起きたまま業務が進まなくなってしまうのは問題です。多くの場合、使っているソフトウェアやサーバーを再起動して作業をやり直すことで事態が改善します。そのため、トラブルが起きたら業務復旧を優先して、まずシステムを再起動するという方も多いと思います。

しかし、安易にシステムを再起動してしまうのは良くありません。なぜなら、再起動とともに後の原因究明で必要な「画面表示」「操作上の異常」のような情報も失われてしまうからです。トラブルの症状を示す情報が不足した場合、原因究明は難しくなります。

その一方で、トラブルで業務が止まってしまったら、一刻も早く本来の業務を復旧させることが望まれます。そのため、トラブルが起きたときに備え、調査から復旧までを早く確実に行う仕組み作りが重要になります。

また、いつどこで起きるかわからないトラブルもあります。そのようなトラブルが起きたときは、システムを使う現場の人に調査の協力をお願いした方が良いかもしれません。

症状から原因の仮説を立て、根本原因を探りだす

症状に関する情報が収集できたら、原因究明に入ります。このとき、症状から原因として考えられるシステムの該当部分の切り分けを行います。この時点では原因箇所が不明ですので、「原因の仮説」を立てるようにします。

原因の仮説とは、「真の原因はわからないけれども、症状から推測してこの辺に原因があるのではないか」と考えられる状況説明のことです。

なお、仮説は「思い込み」や「事実に基づかない推測」とは違いますので注意してください。

原因の仮説は、初めのうちは複数あっても構いません。仮説が立てられたら、それを一つ一つ検証していきます。具体的な検証の手段はさまざまですが、「ソフトウェアの動作ログを確認する」「仮説に伴う操作を行い、トラブルの再現性をテストする」「原因の仮説部分を別のプログラムで置き換える」などの方法があります。

これらの検証の段階で、真の原因でない仮説が否定されていきます。そうすると、真の原因がだんだん浮き彫りになってきます。こうして、最終的に真の原因=原因の根っこが見えてきます。

根本原因へ対策を打つ

トラブルの根本原因がわかれば、多くの場合で対策を打つのが容易になります。例えば、原因がプログラムの不具合であればそれを修正します。また、特定のハードウェアの相性問題であれば、どちらかのハードウェアを交換して再現性を確認します。

しかし、根本原因への対策が困難なケースもあります。具体的にいうと、「根本原因は判明した。しかし、原因は他システムの仕様であり修正できない。他システムと連携した動作の影響を受けて、不具合が起こっている」といった状況です。

このようなケースでどのように対応するかは、担当者の腕の見せ所です。一般には、他システムにある根本原因の解決はあきらめて、代わりに影響を受けにくくしたり被害を軽減したりします。

これまで述べたように、システムのトラブルに悩まされている場合には、正しいトラブル対応法の実践が必要です。間違ったやり方でトラブル対応を行った場合、対応が長引き担当者の本来の業務に支障をきたします。そうならないためにも、正しいトラブル対応法の知識を持つことが重要になります。