2004年10月13日

「My Definition of 生産性」OO百韻

他の人の日記とかメーリングリストなどで生産性の定義がしばしば議論されている。 というわけでここでもやってみようと思う。

生産性を定義することの意味とか有用性についてはとりあえず棚上げにし、 数学的にどうなっているかを考えてみる。

まず最初に考えつくのは、生産性とはもっとも単純なところで、 利益、コスト、時間、人数の4つのパラメーターをもつ関数として 表されるだろうということである。 これはおそらく製造業における生産性の定義になっているのではないかと想像するが、 同じ人数の作業者が、同じ時間をかけ、 同じコストで同じ収益をあげた場合は、 同じ生産性であったと考えるのはそれほどおかしな話ではない。 ただし前提としてだれがやっても同じ結果が出るというものがある。 だから同じ手法でというのも上記に加えて前提になっているはずである。

ただ、利益とか収益、コストといった用語を使うと、 どうしてもお金の勘定に発想が固定されてしまう傾向にあると思うし、 商売上の儲けの多少を考えるのではなく、 ソフトウェアの開発や生産において生産性がどういうものかを考えたいので、 以下利益とコストはゲインとロスと言い換える。 つまりこの生産性関数は、ゲイン、ロス、時間、人数の4つのパラメターで表されるとする。

この関数は具体的にはどのような形をしているのだろうか。 他の条件が変わらない場合のことを考えることから始めてみよう。

まず、他の条件が変わらない場合にゲインが大きくなった場合、 生産性はどうなっているだろうか。 なぜ他の条件が変わらないのに、突然ゲインが増えるのかといったことは問わない。 何故かというと、ゲインの増減が生産性の定義においてどのような位置付けをされて いるのかを吟味したいからである。 当然、ゲインが増えたのだからそこから計算される生産性は上がったと考えるべきだろう。

次にゲインがどこまでも増えれば、生産性も増えるだろうか。 それともあるところで生産性は減少に転じるだろうか。 ゲインの増加に伴って、あるところから生産性が減少するということはないだろう。

このように考えると、ゲインに対しては生産性は単調増加であると言える。 ここで注意すべきは、別に比例するとは言えないことである。 もしかしたら、生産性には上限があり、だんだんある値に漸近するものなのかもしれない。 この段階で言えるのは、ゲインが増えれば生産性も増えるということだけである。

次に、ロスについてはどうであろうか。 ロスが増えれば生産性は下がる。考え方はゲインの逆である。 よって、ロスについてはゲインと全く逆になり、単調減少になるだろう。

時間についてはどうか。例えば時間が倍になったのに、ゲインが同じ場合、 その生産性は高いとは言えない。逆にゲインが同じ仕事を半分の時間でこなしたと したら、その生産性は高かったと言える。よって時間に対しては単調減少になる。

人数については、生産性における位置付けを考えるのは少し難しい。 人数を増やしたら生産性は上がるかといえば、経験上そうとは言えそうにはないからだ。 ただ、人手が足りないがために、同じ仕事でも時間がかかってしまうということは よくありがちな話だ。上でみた通り、時間がかかったということは生産性は低かったということになる。 いっぽう、ソフト業界は慢性的な「人手余りの人材不足」ということを 考えると、生産性に関与するのは単純な頭数ではなく、なにか人材関数とでもいう ようなものがあり、それを通した上での人数であるのではないだろうか。 つまり、生産性に関与する人数とは、単純な作業者数のことではなく、 人材関数に作業者数を与えた結果の人数ということにする。 この人材関数はおそらく人数から単純に計算できるものではなく、 方法論やプロジェクトの状態にも影響を受けるはずである。 とりあえず人数を人材関数に通したことを表すため、これを人材数と呼ぶことにする。

それでは、この人材数は生産性にどのように影響するかであるが、 安直に人材数が増えれば生産性は単調増加するということにする。 同じ条件で人数が増えれば一般に生産性は下がったと判断される。 一方、人材数はこの逆数のようなもので、 例えば頭数を減らしたのに最終的な生産性が同じなら、 それはより良い人材を得たと言える。 人材数とは人数に依存して生産性を上げる要素ということなのである。

これで、四つのパラメーターがそれぞれ生産性を単調増加させるか、あるいは 単調減少させるかがはっきりした。まとめると次の通りである。

ゲイン単調増加
ロス単調減少
時間単調減少
人材数単調増加

しかし、これだけではまだ生産性の姿は みえてこない。四つのパラメーターを組み合わせて考える必要がある。

まず、ゲインとロスの関係について考えてみよう。 ゲインが増えてもロスが増えてしまえば、生産性が上がったとは言いにくい。 つまりゲインとロスは互いに打ち消しあうと考えてもよさそうである。

ただここで、単に打ち消しあうといっても、差があるのか、比率なのか、 つまり、ゲイン-ロスなのかゲイン/ロスなのか、 あるいはもっと別の関係にあるのかという問題を解決しなければならない。 もう少し突っ込んで考えてみる必要があるが、これもなかなか悩ましい。

時間や人材数に関しては、これは明らかに比率である。 というのも、ゲインやロスと時間や人材数との差というのは、 単位が違うわけで、そのままでは差を考えることができないからだ。

難しいものをいつまでも難しく考えていてもしょうがないので、 いっそこのこと当面不都合がでるまではゲインとロスはまとめて 考えてしまうことにする。 ちょうど良いことに、ゲインという言葉には増加分という意味の他に 増加の比率という意味もある。 むしろこっちのほうが一般的かもしれない。

そういうわけで、以後ゲインとはマイナス分を打ち消しあった残りという 意味に変更する。それが差なのか比なのかはとりあえず保留するが、 収益とかコストとという文脈では差になるだろうと思う。

次のようにまとめの表を更新する。

ゲイン単調増加
時間単調減少
人材数単調増加

この三つのパラメーターは、とりあえず一番単純なところで考え、 互いに比率でもって作用しあうと考えて良いだろう。 すると、結局ここで得られた生産性の定義式はもっとも単純に考えた場合には、次の通りになる。

gtkをそれぞれゲイン、経過時間、方法論による係数とし、
r_s(m)をある状況sにおける人数mの人材数とすると、
生産性pは次の式で定義される。

\fs4~p~=~k\frac{g\cdot~r_s(m)}{t}

あくまでこれはもっとも単純に考えた場合の話であり、 今後この式をたたき台にしていろいろと改良していく必要があるのは いうまでもない。が、とりあえずはこれを「ソフトウェア祈祷師が提唱する 生産性の定義式」としたい。

この式の意味するのは、すなわち次のようになる。

なるべく人材数の高い少数精鋭メンバーを集め、
より高い係数を持つ方法論を採用し、
より少ない時間で、
より多くのゲインを求めれば、
さらに高い生産性が得られる。
極めて当たり前の話ではある。しかし、なんとなく馬鹿にされているような気もする。たかが数式の分際でここまで人間様を小ばかにしてくれるとは、どうしてくれようか。

ちなみに、方法論係数kと人材数rを無単位数とし、 ゲインgは利益を金額で表しているとすると、 pは「時間当たりの利益」になる。 これは平たくいえば時給みたいなものである。 人材数が無単位ではなくに人数分の1(ゲインを頭数で均等に分けるという意味?)だとして、 pは「技術者一人が1ヶ月にあげる生産量」と解釈すれば、 つまり人月で考える工数と考えられなくもない。 なんだかやっと古典と同じスタートラインに立っただけという感じで、 これだとゴールが全く見えない。

う~む。まじめに研究している人が見たら憤死してしまいそうな結論だなぁ…。

この記事のトラックバック用 Ping URL: http://www.mediaware.jp/blog/mt-tb.cgi/71
「My Definition of 生産性」へのコメント  コメントを書く

ちっ、最後まで読んじゃったよ。単に機能/人じゃぁだめでしょうか

Posted by akon at 2004年10月14日 08:21

ゲイン=機能、人材数=1/人数とすると、 分母に時間がくること以外はそれと同じに なるのではないかと思います。

全く同じ機能をもつ成果物を倍の時間で 仕上げたところは、生産性は低いと思うので、 なんらかの形で時間が分母に来るのは 自分としては外せない項目だと思ってます。

あと、単純に分母に人数が来るのも、 人数に比例して機能を増やせるものでは ないと思うので、それもそこまで単純化する のはどうかなぁと。人数を増やせば生産量って 上がります? どういった人をどのように増やすかに よると思います。実はこの日記の続きを 書くとき(があれば)、人材数と「火消し」に ついてちょっと触れておこうかと思ってました。 要は、人数と生産量は単純には比例しないと いうことなんですけど。

Posted by yuntanach at 2004年10月14日 10:05

人を分母にすると人を増やすと生産性が落ちることを表したかっんです。 すると、機能/時間ってことでか・・・って今書いている本はこのように定義しました。

Posted by akon at 2004年10月14日 12:28

なるほど。別に人が分母にくることを否定はしてないですけど、なんかまだ見落としているものがあるはずだという予感があります。

いっそのこと、なんかの定数cとかをでっち上げて、1/(人数のc乗)ってのはどうでしょう。 cがきっちり1ならば1/人数だけど、実際にはcは1.2ぐらいで人数を増やしても増やしたほどには効果が上がっていない、むしろムダの方が大きくなる、という感じで。cの意味をちゃんと考える必要はあるでしょうけど。

書いている本というのはセキュリティのやつだったんじゃないですか? 生産性の話もあるんですね。楽しみです。

Posted by yuntanach at 2004年10月14日 13:26

セキュリティなんてそんなおそろしげなものは書けませんぜぇ

Posted by akon at 2004年10月14日 14:23
「My Definition of 生産性」へのトラックバック
コメントを書き込む









メールアドレスを記憶する?


この記事の評価
悪い あんまり 普通 まあまあ 良い





@@@@