前回は、品質管理の勘所として次の4点を挙げ、最初のポンインについて考察しました。(1)品質指標の妥当性と目標値の意味づけ、(2)設計品質と開発品質、(3)プロセス品質とプロダクト品質、(4)非機能要件に関する品質の確保――。今回は残りの(2)~(4)のポイントを見ていくことにしましょう。

後藤 年成
マネジメントソリューションズ 取締役 PMP


 私はプロジェクトの現場で「良いシステムを開発するために、テスト期間を長めにとって、たくさんテストを実施しましょう」という言葉を何度か耳にしたことがあります。「品質を上げるには、テストでたくさんのバグを出せばよい」と信じている方もいらっしゃいます。

 確かに、アジャイル開発のように「設計~テスト」を繰り返し実施することで品質を実用レベルに高めていく開発手法もあります。しかし、ウォーターフォール型の一般的な開発手法においては、上流工程(要件定義や基本設計)の品質が重要です。ここでいかに品質を上げ、「設計品質」を確保しておくかが、プロジェクト全体の品質を決めていくと言っても過言ではないでしょう。

 なぜならば、開発工程は設計成果物をインプットにして進めるため、設計の品質が悪ければ必然的に開発の品質も悪化してしまいます。その分手戻りが発生すれば、後の工程になればなるほど「品質コスト(品質を確保するために必要なコスト)」が多く発生してしまいます。

 「設計品質」を確保する代表的な観点としては、次のようなものがあります。

  • プロジェクトの目的を達成するために必要なニーズを把握し、そのために必要な要件や機能を満たせているか
  • 開発を担当する人々にうまく伝えられる内容になっているか
  • 機能だけでなく、運用や使い勝手(いわゆる非機能要件)まで設計されているか

 これらの観点を満たすために、どのような品質保証活動をしていくか。プロジェクトの特性を鑑みて、考えていかなければなりません。

 例えば、要件定義書に書かれていることがすべて機能として網羅されているかどうか、要件定義書と基本設計書の内容を突き合わせてみる。あるいは、担当者ごとにレビューの指摘傾向を把握して、業務内容の理解不足による間違いがないか再検査してみる。また、機能ごとの整合性が設計書レベルでとれているかどうか、有識者が集まってシミュレーションを行う、といったことも考えられます。

プロセス品質とプロダクト品質を区別しているか?

 品質管理をしていく中での基本は、PMBOKでも記載されているように「顧客満足」と「検査よりも予防」の2点にあります。

 「顧客満足」とは、言い換えればお客様のニーズを満たしたり、お客様の問題を解決したりすることです。そいういう意味においては、お客さまの本当のニーズや問題を正確にとらえられているかが重要になります。

 また「検査よりも予防」は、「プロダクト品質よりもプロセス品質」という言葉に置き換えることができます。PMOとしては、成果物を作り込んでいく過程、つまり「プロセス」において、誤りが入り込む余地をなくすような環境や仕組みを作る必要があるのです。

 例えば、設計工程において一番効果があるのは、レビュープロセスを仕組みとして組み込み、レビュープロセスの品質(決められた通りにレビューが実施されているか)をPMOとしてサンプリング(モニタリング)しながら改善していくことです。開発工程においては、バグの原因分析を行い、類似バグを徹底的に潰していくプロセスを組み込むなどして、開発プロセスの品質を高めていきます。

 「プロダクト品質」とは、実際に作られた成果物の品質です。ここは地道に、レビューの密度や精度、テストによるバグ潰しで品質を上げていくことが重要になります。