定量データに基づくインスペクション

2009年3月11日(水)
細川 宣啓

品質定量測定の本質=「ばらつきの測定」という説

 品質測定の本質は「ばらつきの測定」であるという意見があります。これは何らかの指標を用いて品質管理対象を測定し、測定データ群の母集団からの乖離(かいり)度合いによって品質上問題のある標本を取り除くことで、均質化を目指すアプローチです。これは確かに製品品質管理では王道の考え方であり非常に重要なのですが、「何を測定して」ばらつきを抑えるかが一意に決定されていません。

 ITの歴史上も、「この値だけを測れば確実に品質がわかる!」と唯一無二のメトリクスを見つけようとする研究は数え切れぬほど存在します。ただし、それら研究の多くは品質を表現するためのメトリクス(=代替指標)を計測しただけで。単なる定量化にとどまっています。具体的にそのメトリクス値を通じて具体的にどのように品質を向上させるか、という議論が歴史上あまりなされていないのです。

 ここで少し話は飛びますが、ソフトウエアの見積もりでは定番となっている定量メトリクスである「プログラム行数」についてその歴史を振り返って見ましょう。1950年代中ごろには、見積もりの世界では次のような内容が常識だったそうです。

 「まずプログラム行数を数えること。知りたいことは何でもそこから導出できる」

 つまり品質もプログラム行数で計れるとちまたでは信じられていたそうです。しかし60年代中期になりこの「プログラム行数」というメトリクスは、各種の研究を経てあっさりと否定されました。

・ソフトウエア開発コストはプログラムの行数という単純なものとは直接何の関係もない要因などに大きく依存する
・コスト予測は、開発(プロジェクトの)サイズに依存する

 その後、品質を示すメトリクスとしてプログラム行数が用いることができないか、という研究も70年代に入ってなされてきました。最終的には「プログラム行数と欠陥発生の間に顕著な相関関係はない」という研究まで発表されました。

定量測定のあるべき姿

 さて、皆さんは上記のプログラム行数に関する議論をどのように感じますか?もしも皆さんが参画したプロジェクトで「プログラム群の中に行数が極端に大きいプログラムが内包されている」事実が計測されたとしたら、どのような行動を起こしますか?理論に基づき無視しますか?それとも「この『計測結果の数値』は許されないことだから」と妄信的に設計された機能を見直しプログラムを分割し、個々のプログラム行数を減らしますか?

 そうです。大切なことは品質定量測定の対象となる唯一無二のメトリクスを探すことではなく、測定してどう行動するか、何をするかが大切なのです。

 筆者は品質レビュー専門家として働く日常業務の中に、定量メトリクスのばらつきに基づくインスペクションを実施するようにしています。理由は、ばらつきは定量メトリクスとして測定しやすく、さまざまな複数の数値を組み合わせて活用するとインスペクションという集団行動に客観性と合理性が生まれるからです。例えば次の3ステップをお勧めします。

ステップ1:まず何でも測定してみる
ステップ2:測定結果のデータに対して洞察力を働かせて仮説立案する
ステップ3:その品質面の仮説を用いて実際の品質向上活動の入力に用いる

 繰り返しになりますが、メトリクスはそれ自体を「測定すること」が目的ではなく、測定結果を用いて何をするかが重要です。ステップ3の品質向上活動(例えば、レビューやウォークスルー)などに役立てることができて初めてそのメトリクスは「品質の定量化メトリクス」として意味を成すのです。

日本アイ・ビー・エム株式会社
1992年日本アイ・ビー・エム株式会社に入社。SEを経て1999年より同社品質保証組織にてQuality Inspectionチームを立上げ。品質工学および上流フェーズ欠陥検出技術の社内外への展開を手がける。IEEEAssociateMember. 経済産業省IPA/SEC価値指向マネジメントワーキンググループメンバー。2007年ASTA Korea、2008年4WCSQにて発表。http://www.ibm.com/jp/

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています