QA/QCのための品質のモニタリングの事前設計

 QA/QCの活動で実施する品質のモニタリングは、継続的に・繰り返し行われるため、なるべく自動化し評価の手間を少なくするのが理想です。そのためには、最初期にモニタリング設計を行い、モニタリングの仕組みを構築することが重要です。
 例えばテスト実行のモニタリングならば、必要な情報(テスト実行数、テスト結果など)を自動で収集できるように、テストドキュメントのフォーマットや管理場所を最初期から整備しなければなりません。
 こうしたものは、後から追加しようとしても、横断的なフォーマット変更や構成管理場所の変更が必要になり費用がかさみます。特にプロジェクトの規模が大きくなるほど、モニタリングの追加・変更コストが高まるため、最初期にしっかりモニタリング指標を具体化して、自動化の仕組みを構築するのが重要です。

 今回は、この事前のモニタリング設計について要点をまとめます。

モニタリング指標は目的ありき

 組織によっては、モニタリングの指標が形骸化していることがあります。例えば効果的な活用ができていないのにプロセス定義にあるからと計測し続けている場合や、環境や状況が変わってそのまま適用できなくなっている指標を無理に運用している場合です。
 こうした形骸化を予防するためには、モニタリング設計を目的ドリブンで行うことが重要です。生きた目的が明示的に管理されていれば、今のモニタリング指標が妥当か評価できるようになります。形骸化しているかも把握でき、目的に照らし合わせて廃止・改善することができます。状況や環境が変わった時も、目的に立ち返ることで、指標をどのように改善すべきか検討できるようになります。
 そのためモニタリング指標を検討する際は、「開発のパフォーマンスが計画に対して十分か確認する」「計画に対する遅延を予測する」といったモニタリングの目的を定義し、そこから指標をだすアプローチをとります。

良い計画とプロセスづくりが良いモニタリングにつながる

 モニタリング設計の主要な根拠となるのが、計画とプロセスです。計画・プロセスが具体化するスケジュールや目標、作業の進め方からモニタリングの目的が生まれ、モニタリング指標が導き出されます。
 そのため、モニタリング設計のやりにくさは、計画・プロセスの問題である可能性があります。例えばテスト設計作業の進捗モニタリングが難しいと感じたら、モニタリング設計でなんとかしようとするのではなく、プロセス定義に立ち戻り、モニタリングしやすいように工程や作業の単位・粒度・ルールを調整するのがしばしば有効です。

チームにとっての重要な指標:KPIを定めてチームを方向づける

 品質指標の作成やモニタリング設計において、チームのKPI(Key Performance Indicator)を定義できると、それに合わせてチーム文化が形成され、チームの活動が方向づけられて、KPI向上へチームをスピードアップできます。
 例を出すと、著名なものに、DevOpsでKPIとして扱われることの多いDORA Four Keysがあります。これは次の4つの指標です。

  • デプロイ頻度
  • 変更のリードタイム
  • 変更失敗率
  • デプロイ失敗時の復元までの時間

 これをKPIに掲げると、テストの自動化、テストの高速化、テストのデプロイメントパイプライン統合が加速するようになります。
 Four Keysに限らず、チームとして注力したいものがあるならば、そのKPI化は検討する価値があります。

 なおKPIにチームパワーを集中させるアプローチの注意点として、特定の指標に対する過度の最適化があります。例えば前述のDORA Four Keysの向上だけにチームパワーを最適化させると、無難で失敗しにくい(しかし価値の低い)リリースを無駄に繰り返すような状態を導いてしまう恐れがあります。チームのKPIを掲げる際は、総合的に妥当かの評価・コントロールも別に行い、バランスをとるのがQA/QC活動において不可欠です。

メカニズムを分析してモニタリング設計を行う

 モニタリング設計においては、因果関係やプロセスなど、対象のメカニズムを分析・モデリングするのが有効です。
 例えばテスト開始の遅延のリスクについてモニタリングしたい場合、リスク顕在化のメカニズムを分析します。そこでは次のように、リスクを顕在化させる事象の要因を分析します。

 こうした要因分析をモデリングすると、リスクの顕在化を事前に予測して対策できる、効果的なモニタリング設計ができます。例えば上図の場合ならば、開発段階の遅延情報、開発者テストの品質、インテグレーションのMTTR(Mean Time To Recovery:障害から復旧するまでの平均時間)や成功率、テスト環境構築の遅延といった監視指標をピックアップして、それをモニタリングすることで、遅延の事象の予測・評価が可能になります。