Index: [Article Count Order] [Thread]

Date:  Fri, 9 Mar 2001 14:15:47 +0900
From:  "Hirohide Yazaki" <firo@....jp>
Subject:  [XP-jp:01695] Re: 現場からの質問 (1)
To:  <extremeprogramming-jp@....jp>
Message-Id:  <026a01c0a858$0004d900$3701a8c0@FIRO>
References:  <002301c0a7fc$fcb82e60$8a63e5ca@compaq>
X-Mail-Count: 01695


矢崎です。

1.について
 従来のRADとの違いということについては、私が従来のRADなるもの
 のをよく知らないので少しポイントがずれるかもしれませんが思うとこ
 ろを書きます。

 まず、前半部分について一言ですが、XPではデザインVS.プログラム
 という2項対立関係はありません。プログラム=デザインです。ですから、
 プログラムとデザインの乖離、という問題のたてかたはXPでは存在しな
 いと思います。

 もちろんXPにおいても、モデリングや概要デザイン、プレ・デザインのよう
 なものをまったくやらない、やってはいけない、ということは(人によって
 意見の相違はあるかもしれませんが)ないと思います。例えば、
 XPにおいても、
   メタファーで基本的なアーキテクチャをイメージする
   CRCセッションで、概要的なオブジェクト間のやりとりをイメージする
 というようなことはあります。私なら、それに追加して、概念モデリングも
 やると思います。

 それでも最終的にデザインを決めるのは、プログラミングを通してです。
 例えばプログラミング中に概念モデルとは異なるクラスがでてきても、
 プログラミングのほうを正とすべきです。理想をいえば、CRCや概念モデル
 は、プログラミングが終わったら捨てるべきものです。CRCや概念モデル
 は、プログラミングによるデザインを始めるための、準備体操、あるいは
 見通しをたてるためのもの、くらいな感じになります。

 さて、では本題のRADとXPの違いですが、一番は、XPは「変化ヲ抱
 擁セヨ」という立場を鮮明にしていて、そのための具体的なプラクティス
 を用意している、ということではないでしょうか?

 RADは仕様をはっきりさせるために、プロトタイピングを行ったり、
 TimeBoxアプローチで、短サイクルの開発をねらったりはするようですが、
 変化を受け入れる、ということは考えていないように思います。

2.について
 1のご質問ともかぶりますが、XPは基本的に変化を受け入れるアプローチ
 です。つまり、顧客のニーズはなかなか決まらない、決まったと思ってもすぐ
 変わる。ということは、これは当たり前だから、それを仕様の早期凍結という
 ような、あまりよいとは思えない手段で対応するのではなく、要件が変わっても開
 発がただしく、すばやく 進行していけるような、プラクティスを用意しよう、と
いう
 ものです。変化を受け入れることは妥協ではなく、当然のことであり、変化を受
 け入れられない開発のほうが、よくない、という考えです。

 なお、「勇気をもって」は、顧客とのコミュニケーションにではなく、アーキテク
チャを
 変える、デザインを変える、という言葉にかかるのだと思いますが、、、

----- Original Message -----
From: sugimoto akatsuki
To: XP-ml
Sent: Friday, March 09, 2001 3:23 AM
Subject: [XP-jp:01692] 現場からの質問 (1)


現場の運用テストでひーひー言ってる者からの質問です。なお、これはJ2EEアーキテ
クチャへの文句ではないことにご留意ください。

1.XPと従来のRADってどう違うの?

現在、弊社がSunと行っているプロジェクトで起きている問題です。しっかりとした
デザイン、それも仕様変更をなるべく最小限のコストで吸収する、が出来ていても、
やはり実際のプログラムとデザインとの乖離が発生しています。デザインはUMLで
ユースケースからアクティヴィテイまで定義したのですが、それをJAVAのコードに落
とす段階で問題が発生しています。具体的に言うとデザイン的にはきれいなのだが、
実際に動かしてみるとパフォーマンス的に問題がある、書かれたプログラムが非効率
である、等の、要するにデザインとプログラムとの乖離の問題です。結局はStored
Procedureの泥臭い部分を意識しないことには使い物にならないということです。こ
のへんは過日の4GLの問題点に通じるところがあるかもしれません。そこで、質問は
XPとRADって本質的に同じなんじゃないの?ってことです。小さなサイクルで今、出
来る部分をどんどんリリースしていく、これってプロトタイプをベースにしていた
RADと同質ですよね?もちろん、プロトタイプをそのままプロダクションに持って
いってしまうRADとは違うのかもしれませんが…。

2.ユーザーとのコミュニケーション

XPで提唱されているのが「勇気をもって」ユーザーと接していくということです。だ
が、現実のユーザーはホントに心変わりが激しいもの。ユーザー自身でさえ、自分が
何を欲しているのか論理的、具体的に把握できていない状況は、むしろ普通のことの
ように思えます。ユーザーとの緊密なコミュニケーションを重く見るXPはそこでどの
程度、『妥協」を許容するのでしょうか?

杉本