ソフトウェア開発のベンチマーク

投稿日:2007年03月15日 作成者:yasunaka

以前の仕事(金融系)で、セルサイド(金融商品を売る側、例えば証券会社など)の顧客からバイサイド(金融商品を買う側、例えば資産運用会社)の顧客へ変わったことがありました。セルサイドというのはあの手この手でいろいろな商機を捕らえては儲ける、というスタイルなのですが、バイサイド側は基本的に他人のお金を預かって運用するので、言い方は悪いですが、いかに儲けるかという観点よりは、いかに言い訳するか、という観点のほうが重要視されています。つまり「これだけ儲かった」という言い方ではなく、「他の人に比べてこれだけ成績がよかった」という観点で考えます。この「他の人(=ベンチマーク)」とはマーケット全体の平均のことで、例えば日経平均とかいわれているやつが相当します。(ただし最近はこの「他の人との競争」を放棄してインデックス運用と呼ばれる「他の人並みの成績」を売りとする運用が増えています。)

最初にバイサイド側で仕事をしたときに最初に感じたのが、この「他の人」との比較で論じることへの違和感でした。だって、他の人が-5%だったときに、私は-3%で運用しました。だから2%も良かったんですって、そういう論法なのです。確かに論理的なのですが、これは運用者側の観点であって、お金を預けた側はやっぱり儲かってくれないと困ると思うんですけどね。

例えば会社の場合、こんなことは言ってられないわけです。マーケットが良くないから会社が減益になりましたって、株主に報告して納得する株主はいないわけです。株主は言います。「もっと努力せよ、」と。(一応資産運用会社の名誉のためにいっておきますが、彼らは決められたレギュレーション(投資手法)の中でのみ運用をまかされているのであって、儲けるためには何をやってもいいというわけではないので、会社とは単純には比較できません。どのようなレギュレーションの運用スタイルを選ぶかはお金を預ける側が選択するのです。でも、ということは預ける側もよく研究しないとだめってことですね。)

前置きが長くなったのですが、同じような考え方をソフトウェアの世界ではできないものなのか? ってふと思いました。業界全体でのベンチマークです。例えばファンクションポイント(FP)はファンクションポイントの計算はできるものの、FPに対する実際の工数は各ベンダーによって異なるはずです。これの業界平均値を求めることができたら、ちょっと面白いかなって思います。

でも資産運用の世界では「ハイリスク・ハイリターン」「ローリスク・ローリターン」が成り立っており、あるときバーンと儲けるような運用をしているところは逆にあるときにはゲロッと損をするものなのです。じゃあソフトウェアの世界におけるリスクは何で見ればよいのか? FPに対して出来上がりにかかった工数がやたら少ないと思ったら、中はバグだらけだった、とか、ちょっと負荷が高くなったら耐えられない構造だったとか、まあいろいろありそうですが、うーん、こちらは数値化が難しいな。あと中のコードの汚さはなかなか表に出ない「負債」ですね。(Martin Fowlerの話にもありますね。) FP辺りの工数がやたらいいなと思ったら実は「負債だらけだった」というのもナニかな。一生表にでない負債ならいいけど。