「ソフトウェア・メトリクスの栄光と没落」シリーズの番外編。今回は、メトリクスの落とし穴、計測値の恐ろしさについて例を挙げながら紹介する
ソフトウェアの品質、複雑性、生産性などを具体的な数値で測るのが「ソフトウェア・メトリクス」ですが、何をどう計測し、計測値をどう使えばよいかという根本的な問題はいまだに解決されていません。
連載第21回から前回までの内容で、ソフトウェア・メトリクスの歴史を「混乱期」「胎動期」「活動期」「反抗期」「成熟・定着期」に分割し(図1)、ソフトウェア・メトリクスの歴史をひもときながら、ソフトウェア・メトリクスの本質に迫りました。
今回は、その“番外編”として、「タチの良い計測値」「タチの悪い計測値」について述べます。
いろいろな組織で、ソフトウェア開発における成果物や生産プロセスを独自のメトリクスで計測しています。しかし、この計測値には、タチの良しあしがあるので、十分注意が必要です。
下手をすると、せっかく時間と労力を費やして測った値がまったく役に立たなかったり、最悪の場合、逆効果になることもあり得ます。
果たして、どんな値が良くて、どんな値が良くないのか、例を挙げながら以降で紹介していきます。
ある会社では、入社試験として、「数学」「英語」「国語」「理科」「社会」の5科目を実施し、各科目100点満点で採点しているとします。
この試験を受けたA君は、数学が80点、英語が80点、国語が80点、理科が80点、社会が80点を取りました。一方、B君は、英語は0点でしたが、それ以外は満点を取りました。
この2人の総合点はどちらも400点で、平均点もどちらも80点です。しかし、内容はまったく異なります。英語の能力がまったく必要のない職種であれば、B君は貴重な戦力になるでしょうし、バランスの取れた平均的な能力を求めるのなら、A君を採用すべきです。
それぞれの科目の点数が明らかであれば、こんなことはすぐに分かるのですが、数字を載せるスペースが少ないと、つい総合点や平均点を計算し、その値で判断してしまいがちです。値を計測すること自体はよいのですが、計測値を加工や処理し過ぎてはなりません。総合点を計算したり、平均を取るなど、加工や処理を進めると、評価対象の特性がどんどん薄まります。手間暇を費やし、計測値を加工することは、メトリクス的な蛇足です。非常にもったいないと同時に、危険でもあります。
特に、「バグ発生率」のように、“率”が付く計測値には注意が必要です。野球で、打率が5割といっても、2打数1安打と、200打数100安打ではまったく意味が異なります。可能な限り、計測値はそのまま見せるべきです。刺身やステーキは、そのまま調理すべきであり、ミンチにしてほかの肉と混ぜて焼いてしまうと、何を食べているのか分かりません。ソフトウェア開発でのメトリクスでも同様で、計算(加工)すればするほど、本来の数字の意味がどんどん薄れてしまいます。
全国にチェーン展開しているハンバーガー店のフラッグシップ・ショップで、試験的に新製品を売り出すことにしたとします。その店舗では、新製品を食べた客の意見を聞くため、例1のようなアンケート(表1)を実施し、感じたことを記入してもらいました。
味 : | (1)大嫌い | (2)やや嫌い | (3)普通 | (4)やや好き | (5)大好き |
---|---|---|---|---|---|
価格: | (1)非常に高い | (2)やや高い | (3)普通 | (4)やや安い | (5)非常に安い |
接客: | (1)非常に悪い | (2)やや悪い | (3)普通 | (4)やや良い | (5)非常に良い |
表1 例1:ハンバーガー店の「新製品」アンケート |
ハンバーガー店としては、新製品が売れるか・売れないかをこのアンケートで判断しようという訳です。となると、「味」と「価格」は非常に重要な項目となります。実際に、このようなアンケートに回答した人も多いと思います。世の中で普通に実施している調査ですし、誰にでも理解できるごく簡単な手法ですが、問題はアンケート結果をどのように表現するかです。
1000人の客に回答してもらった結果、例えば「味」に関し、「平均が“3”でした」と計測結果を表現するのは最悪です。これでは、全員が「(3)普通」に丸を付けたのか、500人が「(1)大嫌い」を選び、残りの500人が「(5)大好き」に丸を付けたのかが見えません。
全員が「(3)普通」を選択したのなら、新製品は何の特徴もないことになり、全国展開してもヒット商品にはならないでしょう。一方、500人が「(1)大嫌い」を選び、残りの500人が「(5)大好き」と回答したのなら、「(1)大嫌い」を選んだ500人以外、つまり「(5)大好き」と答えた500人に対してはとても評判の良い製品といえるので、大ヒットする可能性が大いにあり得ます。
平均を取ると、こうした重要な情報が隠れてしまいますが、それ以前に「(1)大嫌い」「(2)やや嫌い」「(3)普通」「(4)やや好き」「(5)大好き」と振られた数字は単なる順序数ですので、平均を取るなどの加工がそもそもできない数値であることに注意すべきです。この(1)(2)(3)(4)(5)は、長男、次男、三男……と同じで、順番を表しているに過ぎません。「長男+三男=四男」という計算には、何の意味もありません。例1(表1)のアンケートを数字ではなく「(a)大嫌い」「(b)やや嫌い」「(c)普通」「(d)やや好き」「(e)大好き」とアルファベットを振った項目に置き換えれば何ら意味をなさないことは容易に想像できるでしょう。
しかし、「計算しやすい」との理由から、例1(表1)のようなアンケートを実施して数値処理をするところが少なくありません。この場合も、記載するスペースが大きくても、計測値は加工せず、そのまま見せるべきです。
例1(表1)のケースにおいて、計測値を加工してはならないということは、理解しやすいと思います。しかし、以下の例2(表2)のケースは、とても巧妙でだまされてしまう人も多いと思います。
色 | 5点 |
---|---|
香り | 20点 |
味 | 20点 |
熟成の可能性 | 5点 |
基本点(ゲタ) | 50点 |
表2 例2:ロバート・パーカーのワイン採点基準 |
ロバート・パーカーというアメリカ人は、ワイン界で圧倒的に有名な評論家で、世界中の高級ワインを100点法で評価しています。90点以上のワインは高品質ワインと見なされて、1万円を超える高値が付きますし、100点が付いたワインは、その瞬間、市場から姿を消し、価格が5倍、10倍と跳ね上がり、投機の対象になります。時に「ワイン界の帝王」とか、ひどい場合は「ワイン界の独裁者」と呼ばれるほど強大な影響力を持つパーカーですが、そのパーカーの100点法の内訳を示したのが例2です。
通称「パーカー・ポイント」というこのメトリクスは、突っ込みどころが満載です。まず、疑問点その1は、「“0”の意味が定義されていない」ことです。少なくとも、数値を加減乗除するには、「0kg」「0℃」「0人」など、“0”が明確に定義されていなければなりません。ところが、パーカー・ポイントでは、「香りが“0”とは何?」はどこにも示されていません。これでは、上記のハンバーガー店の「(1)大嫌い」「(2)やや嫌い」「(3)普通」「(4)やや好き」「(5)大好き」と変わりません。
疑問点その2は、「点数の距離が同じではない」ことです。例えば、色の3点と4点の間の距離と、味の13点と14点の距離が同じとは思えません。こんな数字は、加減乗除は不可能です。
最後の疑問点は、「評価要素(色、香り、味、熟成の可能性)に重みを付けている」ことです。重要性に応じて、重みを付けるのはよいとして、重みの妥当性を説明しておらず、“単なる個人の好き嫌い”に過ぎません。
パーカーの100点法によるワインの評価は、一見すると厳密なメトリクスのように思えるのですが、そこには足し算(加工)してはならない数値が含まれているのです。「1990年代におけるシャトー・ラフィット・ロートシルトのパーカー・ポイントの平均は93.4点である」などという計算は何の意味もありません。このようにパーカー・ポイントは、メトリクスとしては非常にタチの悪い数字ですが、世界中のワイン愛好家たちは、大枚をはたいて90点以上のワインを買いあさり、生産者も良い点数をもらおうと必死になってワインを造り続けています。
以上が、メトリクスの落とし穴であり、計測値の恐ろしい点です。ソフトウェアにおけるメトリクスの基本は「数字を加工し過ぎないこと!」に尽きると思います。
次回は、今回と同じく、ソフトウェア・メトリクスの“番外編”として、「メトリクスの見せ方」をいくつか紹介したいと思います。お楽しみに! (次回に続く)
Copyright © ITmedia, Inc. All Rights Reserved.