Index: [Article Count Order] [Thread]

Date:  Fri, 28 Dec 2001 15:53:52 +0900
From:  "Katsuya Higuchi" <bugbear@....nu>
Subject:  [XP-jp:02970] Re: CMM と XP
To:  <extremeprogramming-jp@....jp>
Message-Id:  <004801c18f6c$77abeb00$4687140a@....nu>
References:  <001101c18f40$abe16980$4687140a@....nu> <200112280357.MAA06655@....jp>
X-Mail-Count: 02970

樋口です。
そろそろ堂々巡りの様相を見せ始めたので、とりあえずまとめてみるとこんな感じで
すかね。

最終的な目標
・顧客は願望どおりの品質の製品を低コストで入手できる。
・製造者は製品を製造したことにより十分な対価を得る。

これには、一般に、2つのケースが考えられる。

受注製造ケース
・製造者が顧客から受注して製造して納品するケース。

予測製造ケース
・製造者が顧客の願望を予測して製造し販売するケース

受注製造ケースにおいて、
製造者は複数存在するが、顧客は、「品質が高く、低コストに作れる」と思われる
いずれかの製造者を選択しなければならない。

予測製造ケースにおいて、
顧客は生産者を選択する余地は基本的にはない。
ただし、複数の製造者が同種の製品を生産している場合があり、
この場合にはやはり製品(もしくは製造者)を選択する必要性が出てくる。

製品を実際に手にする前の段階で、顧客が製造者を選択するためには、
製造に関する何らかの分かりやすい指標が必要となる。

この指標は、
「今まで、顧客の願望に対して、どれだけの品質のものを作ってきたか」
というのが指標となるはずである。
これが CMM のような指標ということになる。

XP、スパイラル型開発、ウォーターフォール型開発は、製造プロセスの一種である。
一方、CMM は製造プロセスの一種ではない。
CMM は製造プロセスの評価法の一種である。
XP、スパイラル型開発、ウォーターフォール型開発は、製造プロセスの評価法の一種
ではない。
つまり、顧客の指標にはならない。
つまり、CMM と XP は本来同じ概念で語られるべきものではない。
(CMM と XP とを間違って同一概念として捉えることが懐疑論の原因の1つに挙げら
れる)

ソフトウェアに関しては、再利用性が高いために、
基本的には同じものを生産しないという特殊性がある。
そのため、ミクロ的に見ると、同じものを生産しないので常に製造プロセスが異なる
ことになる。
しかし、マクロ的に見ると、製造プロセスはやはりほぼ同じことの繰り返しである。
少なくとも「要件定義、設計、コーディング、テスト」をやらない製造プロセスはあ
りえない。
(あったら教えてください。:-) )
CMM は本来このマクロ的な製造プロセスを評価するものである。

しかし、CMM のような指標は、結局ミクロ的な視点でしか評価できないため、
指標に対して多少のブレが発生してしまう。
本当にミクロ的な視点で評価を行うためには、
複数の製造者がまったく同じ条件下で製造プロセスを実行しなければならない。
これはかなり非現実的である。
とはいえ、マクロ的な評価は困難だから評価しないというのでは、
指標が得られなくなってしまう。
こうなると、顧客も選択に困るし、製造者もより多く選択してもらうことができなく
なるために
製造者の利益が上がらないということになる。
このため、大雑把とはいえ、評価を行うことはそれなりに必要である。
(必要悪でしょうか。)

特に XP では、CMM のような評価を行いにくい、製造プロセスを行っている。
証拠物件が少なく、評価タイミングも計りにくい。
そのため、CMM を適用しにくくなっている。

また、未経験分野に対する場合は、CMM のような指標は必然的に下がることになる。
しかし、一般に、今まで高い品質を上げられる製造プロセスを繰り返していた
組織であれば、未経験分野でも成功する確率は高くなると予測される。
(もちろん、過去のしがらみに引きずられて失敗する可能性もある。)
CMM の評価を上げるために、未経験分野に挑戦しないのでは、本末転倒である。

プロセス改善自体は、組織の収益改善に対してはそれなりに有意義である。
少なくとも、プロセス改善を行わない組織と、行う組織とでは、
行う方が品質が高いものを作れる可能性がある。

しかし、プロセス改善のための評価手法に凝り固まって評価すると失敗する。
評価以外の項目では改善が見られないという現象が発生する場合がある。
また、故意に評価を上げる様なことも可能である。
(事前にプロトタイプを完成させておき、それを再生産することで、
超短期間で完全な製造プロセスを再現させることが可能である。)
CMM に対する懐疑論はこの手の評価手法で失敗するケースが多いからであって、
プロセス改善そのものが問題ではないはずである。

また、プロセス改善だけでは、製造者の利益は上がらない。
製品の品質が高いことと、製品が売れることとは必ずしも一致しない。
製品が売れるためには、顧客の願望の調査、製造コスト削減、営業的な努力も当然重
要である。
ただ、品質が高いことは、短期的に見ると製造コストの増大を招きやすいが、
長期的に見ると、製品、製造者に対する信頼性を上げることにつながり、
それは製造者の利益を上げることに対して効果的である。
少なくとも、低コストで作るために、最初から低品質で製品を作るのでは、本末転倒
である。

特に、XP は、ほかの製造プロセスと比べて、
「現実に処理可能なだけの分量の仕事を、本当に必要な時に行う」ことと、
「テストを最重要視して、常に必ずテストが通るようにする」ことで
「低コストと高品質」を両立する製造プロセスであると考えられる。
ただし、CMM で測定するのは、ほかの製造プロセスと比べて難しい。

てな感じでしょうか。はい。

// 樋口 勝也
// bugbear@....nu