濱井です。
2002/01/15 16:04:20 +0900にhoriuchi@....jpさんが送られた
メールに関する返信です。
>> (1)ソフトウェアの生産量については、一般には売り上げや利益、付加価値
>> などの金額ベースで計るべき。
>> (2)ソフトウェア自体をどのように計っても、生産量は計れない。
>> (3)ソフトウェアの規模があらわしているのは、生産量ではなくコストであ
>> る。それは、現在までのコストのみでなく将来のコストも暗示する。
>
>どれもそれ自体は間違っていないように思いますが、売り上げや
>利益をベースにするのは、ことさら改めて述べなくても会社なら
>どこでもやってることではないでしょうか。他の項目も私には既
>知のことばかりです。規模が大きくなればコストがかさむのは、
>私には当たり前だと思います。
私は、「ソフトウェアの規模はコストをあらわしている」、したがって、規模
についてだけ言うならば、生産量は大きい方がよいのに対して「規模は小さい
方がよい」と言っているんですけど。
>問題は(1)の基準ではあまりにも大雑把過ぎて、そこから導き出せ
>る有益な事実が少ないことです。より細かな分析をするために、
>濱井さんが有害でさえある、と述べているような他の項目を(その
>リスクを承知で)使うわけです。
私が言っているのは、それらは、「生産量をあらわしていない」、「生産性
をあらわしていない」ということであって、計るなと言っているのでは
ありません。
ソフトウェアの規模を計ること自体に問題があるのではなく、生産量を
あらわすものとして扱うことに問題があるのです。ねじ曲げて解釈した
ところで有益な事実などあらわれるはずがありません。
>> 売り上げや利益は正確に計れますし、コピー部数も正確に計れますが……。
>> 開発中には正確な推定ができないというだけです。実績値は正確に計れま
>> す。
>
>売り上げや利益は、販売力や宣伝力にも依存しますが、それらと
>ソフトの開発分をどう分離するのでしょうか。分離せずに予算配
>分などをどう決めるのでしょうか。ようするにそれだけの指標で
>は不十分なので、他の指標をあれこれ考えるのです。
客観的な分離は不可能です。
例えば、全体を二つに分けることができ、全体の生産量の測定値をa、二つの
各々の生産量を変数X,Yとおいた場合、「a = X + Y」というような式は
書けます。しかし、この式を満たすXとYとの組み合わせは無限に存在します。
変数X,Yを求めるには、別途、プロダクトやプロセスの客観的価値を求める
必要がありますが、それには、「価値は主観的なものである」という経済学
が長い時間をかけてだした結論を論破する必要があります。経済学を引っ張り
出すまでもなく、日常生活でも価値の主観性を感じることは多いです。
逆に訊きますが、販売力や宣伝力の会社への貢献度といったものはどうやって
計るのでしょうか?それをソフトウェア開発の会社への貢献度とどうやって
比較するのでしょうか?
販売力や宣伝力に依存するような指標は客観的な分離は不可能ですが、逆に
販売力や宣伝力に依存しないような指標は分離したままで客観的な比較は
できません。どちらにしても、販売・宣伝と開発との会社における貢献度の
比率というようなものは、客観的には計れないのです。
>> [XP-jp:02993]でふれているように、組み込みソフトウェアやサポート用に
>> 無償配付するデバイスドライバなどの場合、ソフトウェア部分の生産量を
>> 分離できないという問題はありますが、それと同様の問題は、工場の製造
>> プロセスの各工程についてもいえることです。
>
>だから分離できなくてよい、という結論でしょうか。濱井さんの
>一連の主張の帰着点は、ソフト(に限らず)開発の工程は分析不可
>能である、ということになると思います。実際分析は非常に困難
>なのですから、その主張自体は間違っていないわけです。また、
>見当違いな分析が開発にとって迷惑千万なのも、開発者なら日常
>的に感じることでしょう。
>
>そういったリスクや困難さにもかかわらず、ある規模以上のソフ
>ト開発では細かな分析を必要性に迫られ、やむなくあれこれソフ
>ト自体や開発工程自体を分析するわけですが、そういった背景に
>対する濱井さんの考察が、これまでの濱井さんの文章からは見え
>てきません。
私が言っているのは、生産量や生産性についてだけです。もっともそれら
がわからないと多くの測定値は意味を持たないかもしれませんが。
分析したいという願望は、分析できることを保証しません。願えばかなうの
ならば錬金術でも、永久機関でも、角の三等分法でも不可能はないことに
なります。
重要なのは、できもしない定量的分析、定量的評価への願望はソフトウェア
開発というものを正しく理解することを妨げるということです。ソフトウェア
開発を正しく理解していないから、生産性も向上しないし、品質も向上しない
のです。