■生産性向上策 4 (No.163)
前回に引き続き生産性について考えてみる。
いろいろなものが生産性を表す指標として用いられている。特に,物づくりの製造現場では,古くからラインのスピードに始まり,製品1台当たり何分で出来上がるか,など明らかに誰が見ても,文句の付けようのない指標が用いられている。製品開発,特に,ソフトウェアの開発においても,如何に生産性を上げるかが大きな課題で,ここでもいろいろな指標が使われてきている。
ソフトウェア開発に於ける指標では,一番単純なものは,開発行数に関するもので,開発規模(開発行数)をプロジェクト全体の工数(人月)で割った値のプロジェクトの生産性(○○Kloc/人月)であり,さらには工程での開発行数をプログラム作成工数で割ったプログラム生産性(○○Kloc/人月),或いは仕様書などはページ数を掛かった工数で除算したものなど様々なものが用いられている。
しかし,これらは一般的に使われる指標であるが,本当に生産性を正しく示すものなのか,疑問を抱いたことがある。なぜならば,ある一定時間の開発行数や仕様書のページ数なので,確かに多くのプログラム行数を書く人やページ数を効率良く書き上げる人の方が生産性は高いことは頷ける。決まった量の開発行数や仕様書を如何に早くとの視点での生産性指標である。ところが,開発行数や仕様書と云うものは一定の決まったものではなく,変化するものである。
つまり,非常にソフトウェアの能力の高い人と,そうでない人と同じ機能の仕様書やプログラムを書かせたときを想定してみると,能力の高い人は非常に要領を得たやり方をしており,例えばプログラム行数で云えば,非常に短いプログラムで機能を満たすものを作る可能性があり,そうでない人はだらだら長いプログラムを作ってしまう。当然,能力の高い人の方が短時間で作り上げてしまうことは明らかで,生産性で見ると,能力の高い人の方が優れていることは誰の目にも明らかである。
ところが,一般に使われている開発規模(開発行数)を使った指標で生産性を表すと,優れた人は掛かった工数も少ないが開発行数としても少なく,これらの除算した開発行数/工数の生産性指標は,だらだら長く書いた人の開発行数/工数の計算値よりも小さくなることがあり,工数が多く掛かっても開発行数もそれ以上に増えると,こちらの生産性の方が高い,と云う結果が出てしまう。
極端な例で示すと明らかであるが,こうした生産性指標を鵜呑みのしてしまうと問題があることが判る。したがって,プロジェクトなどの生産性を云々する場合,こうした一般的な生産性指標は似たような能力の集団なので大きな狂いはなく有効な指標として扱われても問題はないが,厳密に云えばスコープ(計画時の機能)が変わらない限り,出来るだけ少ない工数で仕上がることが,本来の生産性が上がっていることになるので,経営的な視点で見る人は,工数の増減で生産性を判断されることがよくある。
プロジェクト・リーダのベテランにもなると,こうした経営的観点が養われてくるが,若い人は生産性指標など数値目標があると,如何にその数値目標を達成するかに集中することが多い。これは,ある意味正しいことで必達目標としてクリアさせて欲しいが,一方で全体の工数増はどうだったのか,と云う視点で生産性向上を図って欲しい。
生産性向上策は十分できていますか?
プロジェクトの工数実績が計画よりも増していませんか?
[Reported by H.Nishimura 2010.04.05]
Copyright (C)2010 Hitoshi Nishimura