Index: [Article Count Order] [Thread]

Date:  Sat, 1 Jul 2000 13:07:51 +0900
From:  Kaoru Hosokawa <khosokawa@....com>
Subject:  [XP-jp:00564] XP Chapter 26 XP at Work の解説
To:  extremeprogramming-jp@....jp (extremeprogramming-jp ML)
Message-Id:  <B5839D72.2281%khosokawa@....com>
Posted:  Sat, 01 Jul 2000 13:07:00 +0900
X-Mail-Count: 00564

ホソカワです。

遅くなりました。26章の解説です。最後にコメントあります。

Chapter 26 XP at Work
=====================

Fixed Price (固定価格)
----------------------

固定価格契約をextremeで行う事が難しいようです。結局、固定価格、固定納期、少々
の変動が許されたスコープになってしまいます。

XPは、固定価格、固定納期、固定スコープではなく、どちらかと言うと「定期購読」
を提供します。iterationごとに顧客は、方向転換をする事が許され、新しいストー
リーを導入する事ができます。

XPは、小刻みにリリースを出荷することから違う側面を提供します。リリースを出荷
しないで、12から18ヶ月もXPを行いません。12ヶ月の契約の場合、2から3ヶ
月で出荷を開始します。そこから、1、2ヶ月単位で出荷を続けます。徐々に出荷さ
れる事で、進捗状況などによって顧客は契約を破棄することができたり、方向をかえ
る事が出来ます。

Outsourcing
-----------

通常、アウトソーシングすると顧客は、最終的に保守できないコードを請け負う事に
なります。

XPで、アウトソーシングした場合は、顧客が開発チームのところに行き、作業を行う
か、灰初チームが顧客のところに行き、作業します。契約が終了した時、顧客は(一
緒に作業する事によって内容をちゃんと把握している)コードをもらいます。

顧客は、単体テストや機能テストがあるので、変更を加えてもシステムを壊す事はあ
りません。顧客は、プログラマの管理者を任命しますので、システムの中身も理解す
る事が出来ます。顧客は、開発のかじとりもできます。

Insourcing
----------

Beck氏は、アウトソーシングをよく思っていません。ちょっと思考を変えて、例えば、
徐々に顧客の技術者と開発チームのメンバーを入れ替えていくとどうでしょう?これ
を、「insouring (インソーシング)」と言います。

これには、たくさんのメリットがあります。例えば、ベンダーは、詳細な技術情報を
顧客に提供することが出来ます。徐々に責任を顧客に移す事によって、顧客は、手に
終えないプログラムを納品されるリスクがありません。

チームメンバーが入れ代わるので、開発期間はアウトソーシングよりかかるでしょう
が、リスクの軽減が大事でしょう。

XPでは、チームの生産性を常にモニターしますので、iterationのストーリーを調整
する事によって、納期を守る事ができます。

Time and Materials
------------------

「Time and materials(期間と納品物??)」契約の場合は、チームが作業を行った時
間を請求します。問題は、ベンダーと顧客のゴールが違う事です。ベンダーは、でき
るだけたくさんの人員を投入して、利益をあげようとします。また、残業も増やそう
とします。顧客は、短期間で、少人数で、より多くの機能を作成させようとします。

ベンダーと顧客との関係がT&M契約を左右するでしょう。

Completion Bonus
----------------

固定価格やT&M契約でボーナス制度を設けることいいでしょう。XPチームは、
Planning Gameで、実現できる達成目標を決めているので、ボーナスをもらう確率が
高いでしょう。

ボーナス制度の逆で、納品が遅れた場合のペナルティもあります。この場合でも、
Planning Gameで、達成可能が目標を立てているので、大丈夫でしょう。

問題は、Planning Game で、スコープを変えた場合ですが、一般的に問題ないでしょ
う。クリスマスに、クリスマスツリーの下にプレゼントの数がサンタに頼んだ数と合っ
ているかどうかなど考えません。特に変更をしたのは、顧客の場合。

もし、ストーリーの数にこだわる顧客ならば、契約を結ばないでしょう。

Early Termination
-----------------

XPで、顧客は、開発経過を完全に把握できるので、いつでも、開発を止めるができま
す。契約書に、プロジェクトを中止した場合の、チームに対する賠償などを追加する
ことはどうでしょう。

Frameworks
----------

使われていない機能は削ると言う方針で開発を行うのであれば、フレームワークは消
えてしまうのではないでしょうか?XPでは、アプリケーションを作り、その中から、
使えそうな機能を抽出して、汎用的にできるか考えます。

XPを使って、フレームワークを開発する場合、Planning Gameのビジネスはフレーム
ワークを使うプログラマになります。彼等の期待している機能がストーリーになりま
す。

Shrinkwrap Products
-------------------

「Shrinkwrap Products (店頭販売製品)」でも、XPを適用できます。ここでビジネス
は、マーケティングになります。また、エキスパートをビジネスとしてむかえる事も
できます。

----

[コメント: いろいろなコントラクトにXPが対応できるように書かれています。た
だ、Fixed Price と Time & Material コントラクトにはむいていないようにおもい
ます。スコープを途中で変更(たいていの場合、縮小の方向)されて、顧客は満足す
るのでしょうか?逆にInsourcing, Frameworks, Shrinkwrapには、使えますね。
]

-- 
Kaoru Hosokawa
khosokawa@....com