佃です。
Yoshihiro Tsukamoto wrote:
>
> 塚本です。
>
> >>>>> "firo" == 矢崎 博英 <firo@....jp> writes:
>
> firo> 矢崎です。リプライありがとうございます。
> (中略)
> firo> ですから、
>
> firo> XPは柔軟性、再利用性に対立するものではない。しかし、それを
> firo> やみくもに行うことには反対する。必要な時に必要な程度で行う。
>
> ありがとうございます。やはり原則はそうですね。
>
> それでも、個人的にいって「Refactoring すればどうにかなる」という過度の
> 幻想は抱けません。要件の決め打ちが支配的なシステムを作ると、追加要件の
> 内容次第では Refactoring の必要なユニットだらけになると思うのです。
>
私は今のところ、「XPでは 基本的にすべてのユニットは各イテ
レーションでRefactoringする」と理解(誤解?)しています。
今開発すべきことだけを開発する。将来(次のイテレーションであ
っても)開発するであろうことには備えない。
そうしないと、結局開発する機能すべてについて検討するようなこ
とになりかねず、分析工程に時間がかかってしまう。
分析が終了するまではウォータフォールの開発プロセスになる。
> # 開発コストが「運任せ(要件の着順次第)」になりそうなイメージがあります。
開発の順番は要件の着順次第ではなく、リスクの高いユースケース
の順番になると思います。
もしリスクの高いユースケースの要件がなかなか決まらなければ、
とれあえずある仮定のもとで開発し、顧客に確認してもらい、要件
を決めことになるのではないでしょうか。
>
> それはそうと、最初のメールで
>
> firo> これも例えばなのですが、デザインパターンにしろ、Fowlerのアナリシス
> firo> パターンにしろ、ある種の柔軟性、再利用性、拡張性のようなものを
> firo> ねらいとしているところが多いと思うのですが、これらはXPのシンプル
> firo> と対立するものなのでしょうか?
>
> とありましたが、パターンは Refactoring を行なう時の良いお手本になると
> 思います。
>
> >>>>> "石井" == 石井 勝 <mishii@....jp> writes:
>
> 石井> Simplicityについてですが,
>
> >> 2.柔軟性を考慮しなくても、後からそれが必要になったときに、
> >> Refactoringなどを行って柔軟性を確保することができるように
> >> なる。よって、Simplicityとは、必要になるまでは柔軟性を考慮
> >> しない(それが必要になったらする)。
>
> 石井> 僕はXPを調べたときこっちだという印象を受けました.
> 石井> というか,柔軟性という単語にひっかかるのですが,現在の仕様
> 石井> (テスト)に対してもっとも簡単なものであればよい,ということでしょう.
> 石井> 現在の仕様がMVCを求めるものであればそうするでしょうし,求めない
> 石井> ならMVCを使うのはoverkillということではないでしょうか?
>
> 「現在の」を額面通りに考えすぎると勝手が良くないケースもありそうです。
> 例えばこんなケースを想定してみて下さい。
>
> 現在の初号機: 1 [CPU/ボード]
> 次期の二号機: 1..4 [CPU/ボード]
>
> 次期への移行コストを考えると、ボード 対 CPU の関連は最初から「1:多」に
> モデリングされるケースもあると思います。初号機についてはCPU側の多重度
> 1..m に制約 {m=1} がついて test suite も 1 CPU 用に限定されますけど。
>
> MVC にしても、フレームワークとして提供されているものを「使う」ぶんには
> MVC なしの実装をスクラッチで書くよりもむしろ、アプリケーションコードは
> シンプルになり得ると思います。
>
初号機と二号機を同じ開発メンバが担当することになるのであれ
ば、XPではリリース1を1対1で開発するのではないかと思いま
す。
異なる開発メンバが担当するのであれば、既に明白な拡張性につい
ては、リリース1の中で開発すべきではないかと思います。
二号機の開発メンバは恐る恐るコードを触ることになるだろうか
ら。
でも、XPでは回帰テストが容易にできるように作り込んでいるの
であろうから、XPを実践した人たちは、この状況でさえも拡張性
はリリース1で開発しないと考えているかもしれませんね。
> 話は変わりますが、「シンプル」と「拡張性」の両立というと、XP が OCP
> (Open-Closed Principle) とどのように協調できるかにも興味があるのですが、
> そのあたりはいかがでしょう?
>
> --
> Yoshihiro Tsukamoto
--
佃 軍治 tsukuda@....jp
日立製作所システム開発研究所第2部