システム開発で意義のあるメトリクスを計測するために

システム開発はメトリクス宝庫です。宝庫だけれど全く採取していないし、採取することでシステム開発へフィードバックできることを知らないということもあるのです。

 

メトリクスってなあに?

まずは辞書を引きましょう。google先生に訊ねるとソフトウエア・メトリクスとソフトウェア品質メトリクスが出てきました。それぞれの意味は次のとおりです。

 

ソフトウェア・メトリクス software metrics
プログラムの複雑さを測定するための技法の一つ.

ejje.weblio.jp

ソフトウェア品質メトリクス software quality metrics
ソフトウェアの品質に関する尺度で, 複雑さ, 理解し易さ, 試験し易さ, などを示す.

ejje.weblio.jp

 

うーん、結局どういう意味何だろうとメトリクスだけで引いてみます。

 

メトリクス metrics
測定法や尺度といった意味だが, ソフトウェアの品質に関して使われることが多い.

ejje.weblio.jp

 

もう一歩下がって基本的な言葉で引いてみます。

 

そく てい [0] 【測定】
( 名 ) スル
長さ・重さ・速さなど種々の量を器具や装置を用いてはかること。直接行う方法と,理論によって間接的に行う方法とがある。また,広く自然や社会の現象を記述するため,一定の規則にしたがいその対象の量に数値をわりあてることをいう。 「距離を-する」 「民度を-する」 「体力-」 「 -値」

www.weblio.jp

 

ソフトウェア・メトリクスやソフトウェア品質メトリクスがプログラムや品質を対象としているのに対し、メトリクスの測定の意味を紐解く方がすっと理解できそうです。

測定の説明の下線の箇所をさらに要約すると

「計測対象を単位を用いて測ること」

と表現することができると思うのです。さて、システム開発では何が計測できるでしょうか。

 

何のためにメトリクスを計測するの?

システム開発プロジェクトの目的を達成しているかどうか現実に起きている事実を計測することで客観的に評価し、プロジェクトの目的を達成するために必要な活動にフィードバックすることでプロジェクトの目的を達成するために行う活動です。

事実を計測するのは定量的に計測することで客観性を持たせます。出来ていると思う、品質は十分確保したはず、では誰も信用してくれません。

計測対象を単位を用いて測定し、基準値を持って状態を評価することが必要なのです。

 

何がメトリクスとして計測できるの?

システム開発プロジェクトの活動で且つ単位を持つものは何でも計測できます。計測できますが、計測する活動を行うためには人と時間と道具が必要になります。つまり、システム開発プロジェクトのリソースを消費してしまうということです。

その計測をすることで次のプロセスにフィードバックすることができるのであればメトリクスを計測することに意味があるでしょう。

ではフィードバックに何を期待しているかといえば、プロジェクトの目的と計測時点おで計測対象のズレを定量的に把握し、許容されないバンドを超えている場合は改善に繋げることです。

 

何が計測できるの?

一番身近なメトリクスは、WBSの作業実績の計測でしょう。これを計測することで作業時間の見積もりの正確性を評価することができます。仕様書レビューでの不良摘出件数は、対象となる文書の品質状態を計測することができます。

同じように、コードのコミットから試験環境へのリリースや自動化試験の実施時間を計測することも可能です。

先に述べたようにソフトウェア開発プロジェクトで単位を持つ活動であればメトリクスを計測することができます。

ただ何でもメトリクスとして計測すればいいってわけではありません。それではメトリクスにリソースを使い過ぎてしまいメトリクス貧乏になってしまいます。

 

どうしてメトリクスを計測しないの?

端的に言えば、計測してもフィードバックできないところで計測しているからメリットを享受できずにやめてしまうからです。

フィードバックできないところでの計測とは、ソフトウェア開発の局面の終了時に計測したり、はたまたプロジェクト完了時に計測しているからです。これでは計測しているには間違いはないのでしょうが単に実績値を採取しているに過ぎません。

局面内で計測し、局面の中でフィードバックするか、スプリントのような繰り返す場合に次のインプットとすることで初めてメトリクスの計測が活きるのです。

 

 

ソフトウェアメトリクス統計分析入門―現場エンジニアによる直観的解説と実践ドリル

ソフトウェアメトリクス統計分析入門―現場エンジニアによる直観的解説と実践ドリル