求ム、障害分析アナリスト

終了した開発プロジェクトの問題分析を行っている。「バグの源流をたどれ」の如く、なぜなぜ分析で問題の根本原因を探り、抜本対策案をまとめるのが目的だ。さすがに限られた時間内で全障害を検証するのは不可能なので、優先度の高い問題のみをピックアップしてから分析を行う。Tracのチケットに記載された情報を元に、仕様書の記載ミスなら変更前後の仕様書を見比べ、コーディングミスなら該当するコミット状況を確認し、テスト漏れならテスト手順書の記載を検証するといった感じだ。

開発対象も開発者も異なるプロジェクトを見ているけれど、いずれの開発でも共通の傾向があるので面白い。

  • 障害は偏在する
    全ての障害が一様に分布するのではなく、特定の機能、開発者、モジュール等に著しく偏って発生することが多い。パレートの法則ほどではないけれど、その偏り方は目に見えてはっきりと分かる程だ。
  • 類似の障害は繰り返し発生する
    一つのプロジェクト内ではもちろん、相異なるプロジェクトでも同じような問題が発生することがある。人間がミスするところは、やっぱり何らかの共通要因が有るようだ。
  • ややこしい処理で障害は発生する
    長大なソースファイル、巨大なクラス、大きな関数での障害発生率はやっぱり高い。特に、そのようなところへ複数の開発者が絡むと、問題の発生率はさらに上がる。

時間も手間もかかるけれど、力を入れて分析してみると障害の発生傾向が顕著に分かり面白い。こんな検証作業を専門にやってくれるプロフェッショナル(たぶん、コンサルの人はこんな泥臭いことは嫌いだろうな)はいないのだろうか?システムアナリストではないけれど障害分析を専門に行う障害分析アナリストとか、効率的に障害分析を行うための手法などがあっても良いはずだし、ノウハウ集などが有れば便利に使えると思う(既に何処かにある?)。プロジェクトのメトリクス情報なら機械的にいろいろ取れるけれど、そこからもう一歩踏み込んで検証するための指針が欲しい気がする。