概要
メトリクスは品質を定量化する手段として有益ですが、アドホックに定義、設定して測定するのではなく、目標を明確にして測定することが重要です。そのためのアプローチとして、GQM(Goal Question Metric)アプローチがあります(表1)。測定目標を設定し、目標のために答えるべき質問を定義し、その質問に答えるために必要なメトリクスを捉えるという考え方です。
項目 | 説明 |
G(Goal: 目標) | メトリクスを使ってやろうとしている目標。達成したいことややりたいこと。 |
Q(Question: 質問) | Gを達成できているかどうかを判定するために答えなければならない質問。 |
M(Metrics: メトリクス) | Qに答えるために必要な定量的データを取得するためのメトリクス。 |
用法
上司から、「ソースコードの保守性を改善したい」と言われたとします。さて、このようなとき、何をどのように考えていけばよいでしょうか。GQMアプローチの主な関心事は、目標と測定の整合にあります。次の(1)~(3)の手順で考えることになります。
(1) 目標(Goal)を設定する。
達成したいことややりたいことが目標に相当します。ここでは、「ソースコードの保守性を改善したい」が目標となります。
日常業務では、「KPI(Key Performance Indicator)を定義せよ」という指示を受けることがあるかもしれません。このようなときには、KGI(Key Goal Indicator)は何かを考えることが先決です。ゴールあっての指標であり、目標と測定の整合が大事なことは、KGI/KPIもGQMアプローチも同様に重要です。
(2) 目標が達成できているかどうかを判定するために答えるべき質問(Question)を設定する。
本事例における質問の例を表2に示します。質問には複数の視点があります。ここでは、①ソースコードの保守性に関連する計測対象として何があるかを考えるための質問、②計測結果が比較対象と比べてどのような状態なのかを評価するための質問、③目標に対して計測結果がどの程度の達成度を示しているかを評価するための質問の3点で整理しています。
(3) 質問に答えるために必要な定量的データ(Metric)を定義する。
本事例におけるメトリクスの例を表2に示します。コードクローン含有率や保守効率を挙げていますが、各メトリクスの定義は別途必要になります。また、質のよい既存データがある場合は活用すべきでしょう。例えば、モジュールの結合度や複雑度がすでに測定されていて、ある程度の測定精度が維持できている場合、(2)の質問として、適切なモジュール分割ができているか、各モジュールは複雑すぎず適切な大きさかといったものが挙げられるかもしれません。これらに対応する(3)のメトリクスとして、結合度や複雑度を活用することができます。
Q | M | |
計測対象そのものを目的から見て明確にする質問 | ソースコードのコードクローン含有率はいくらか? | メトリクス設定においては、既存データの量と質、計測対象の成熟度に注意が必要。 メトリクスの例として下記が挙げられる。 ・コードクローン含有率 ・保守効率(例: 保守案件ごとの対応時間) ・保守効率の基準値(例: 過去プロジェクトの保守案件ごとの対応時間) |
ソースコードの保守効率はいくらか? | ||
比較対象と比べた場合の結果を評価者の視点から見て明確にするための質問 | ソースコードのコードクローン含有率は、予想とどれくらい違っているか? | |
ソースコードの保守効率は、(従来と比べて)改善しているか? | ||
目標の達成度を評価者の視点から見て評価するための質問 | ソースコードの保守効率は保守担当者から見て満足がいくものか? | |
ソースコードの保守効率は、保守担当者から目に見えて改善しているか? |
効能
PDCAサイクルの概念を提唱した統計学者エドワーズ・デミングの考え1に基づくと、図1のサイクルを回すことになります。つまり、改善のためには測定が必要であり、測定のためには管理が必要であり、管理のためには定義が必要ということです。目標に整合するメトリクスを定義することによって、図1の改善サイクルを回すことができます。

メトリクスは、現状把握、評価および未来の予測、計画策定に用いることができます。今回は、ソースコードの保守性改善を例に示しましたが、GQMアプローチは様々な場面で応用可能です。
注意
メトリクスは測定対象の一側面を捉えるものであり、測定方法が異なれば測定結果も変わります。そのため、測定結果を比較する場合は、メトリクスの定義や測定方法がそろっているか確認する必要があります。
また、質問導出の際は下記の観点が重要になります。
・測定対象そのものを目的から見て明確にすること。
・対象の属性や特徴を評価者の視点から見て明確にすること。
G-QおよびQ-Mは、それぞれ1:nの関係性であり、横に広げて多面的に見る必要があります。広い視点で列挙し、目的と状況に照らして最適な選択肢を選ぶことを心がけるとよいでしょう。
デミングの言葉は、測定できれば改善できるというわけではないことも教えてくれています。そのためにも、何のために測定するのかは、常に自問することを忘れてはいけないでしょう。
参考文献
GQMアプローチの概念を知りたい読者には文献[1]を、より実践的な取り組み事例を知りたい読者には文献[2]、[3]をお勧めします。
[1] Linda M. Laird, Carol M. Brennan,「演習で学ぶソフトウエアメトリクスの基礎」, 日経BP社, 2009 |
[2] 楠本真二, 肥後芳樹, 「GQMパラダイムを用いたソフトウェアメトリクスの活用」, コンピュータ ソフトウェア Vol.29, No.3, 2012 |
[3] 鷲崎弘宜, 新谷勝利, 青木耀平, 志村千万輝, 野村典文, 「GQM+Strategiesによる組織目標と戦略の整合化及び目標定量管理の実践と拡張」, SEC Journal Vol.12 No.4, 2017 |