Index: [Article Count Order] [Thread]

Date:  Tue, 4 Dec 2001 19:26:07 +0900
From:  k-hamai@....com
Subject:  [XP-jp:02865] Re: CMM と XP
To:  extremeprogramming-jp@....jp
Message-Id:  <200112041026.TAA15470@....jp>
In-Reply-To:  <OF2A4BAEF9.055E964E-ON49256B18.001A7E5D@....jp>
References:  <OF2A4BAEF9.055E964E-ON49256B18.001A7E5D@....jp>
X-Mail-Count: 02865

濱井です。
2001/12/04 15:42:06 +0900にhkikuchi@....jpさんが送られた
メールに関する返信です。

>> >例えば、CMMのレベル2のゴール4として
>> >「ソフトウェアベースラインの状況と内容が影響を受けるグループと個人に
>> >通知されている。」
>> >というのがあるのですが、「こんなの当然だよ」と思うことが出来ていな
>> >かったりするんです。で、こういう問題があると、関係者で話あったりする
>> >のですが、結局、出てくる結論は、CMMの目標とあまり変わらない...
>>
>> それは、「4つの価値」の一つである「コミュニケーション」がうまく
>> いっていないということになりませんか?
>
>その通りだと思います。但し、XPの適用条件4〜8名に対して、もっと大人数の場
>合の
>話です。(そんなところにXPを適用してはダメ!という話を抜きにして議論しま
>す)
>
>プロジェクトの単位が例え多くとも、チームはもっと小さい単位でなので、
>このチームでXPを実行するには十分価値あると思います。
>ただ、チーム対チームになったらコミュニケーションも粗密になってきます。

これって、「オンサイト顧客」のプラクティスが応用できませんか?
つまり、他のチームのメンバをわざと入れておくのです。この人がチーム間
の橋渡しをします。元のチームとの関係が希薄になるとまずいので、時々
交代が必要ですが。


>> CMMが箸にも棒にもかからないものなら、これほど推進されないでしょう。
>> ある程度の利点はあると思います。ただ、ある程度以上ソフトウェア開発
>> 組織を改善しようとしたら、むしろ足枷になると思います。
>>
>> XPでは、変化の予想には限界があるから無理に予想せず、予想外の変化にも
>> 柔軟に対応できるようにしておくという方針であり、CMMでは、変化を完全に
>> 予想し、予想外の変化はあってはならないという方針に見えます。
>
>私も、足枷に感じる部分はあります。CMMって、とことんウォータフォール型
>モデルの開発プロセスに基づいていると感じます。

少し違うと思います。CMMは、ソフトウェア開発プロセスではなく
工場の製造プロセスをモデルにしているのだと思います。

仕事のばらつきが予想の範囲以内に収まり、改善を積み重ねて生産性を
向上させていく。それは、優れたソフトウェア開発組織よりも優れた
工場の方がピッタリきます。

工場の製造プロセスをモデルにしていると判断した根拠は、CMMの
レベル2が反復可能な(Repeatable)レベルとなっていることです。

[XP-jp:02657]でも述べたように、ソフトウェア開発プロセスに同じ
プロセスは基本的にありません。同じソフトウェア開発プロセスを
繰り返すことは正常な組織や個人にはありません。
ソフトウェア開発プロセスを構成するサブプロセスならば、繰り返す
ことはあります。進捗報告等は、日付が違うだけの同じ報告を
繰り返してもかまいません。しかし、ソフトウェア開発プロセスの
本質的な部分を繰り返すのは異常です。

同じプロセスなら、入力が同じであれば同じ出力が得られるはずです。
同じ要求仕様で同じ開発プロセスなら同じソフトウェアを開発する
はずです。もちろん、現実には同じソフトウェアを開発したりは
しません。同じ開発プロセスを繰り返したりはしないのです。

CMMのレベル2が反復可能なレベルとなっているのは、同じプロセス
を繰り返し、そのプロセスを改善していく、工場の製造プロセスを
モデルにしているからだと思います。

ずっと以前にこういう文章を読んで衝撃を受けました。

  ソフトウェア技術者の作業は設計作業であり、製造はコピーという
  零に等しい工程である。この単純な事実が理解されぬところから、
  ソフトウェアに対するすべての誤解が生ずる。
               (横井俊夫:日本語の情報化技術.9,bit Vol.21 No.10)

CMMもこの事実を理解してのものではないようです。

>本来CMMは開発プロセスを規定はしてないんですよね。

CMMが工場の製造プロセスをモデルにしているから、ベルトコンベアなど
による工場の流れ作業をモデルしたウォータフォール型モデルに合う
のでしょう。


>また、私がフレームワークぽいソフトを作っているからかもしれませんが、進化的
>設計
>もそれが、インターフェイスとして規定されたとたんに、身動きがとれなくなって
>しまい、
>結構「無理に予想」していく必要もあるとこの頃感じますが如何でしょう?

すみません、「それ」が指しているものは何でしょう?
「インターフェイス」が何と何との「インターフェイス」のことか
よくわかりません。