塚本です。
>>>>> "firo" == 矢崎 博英 <firo@....jp> writes:
    firo> 矢崎です。リプライありがとうございます。
(中略)
    firo> ですから、
    firo> XPは柔軟性、再利用性に対立するものではない。しかし、それを
    firo> やみくもに行うことには反対する。必要な時に必要な程度で行う。
ありがとうございます。やはり原則はそうですね。
それでも、個人的にいって「Refactoring すればどうにかなる」という過度の
幻想は抱けません。要件の決め打ちが支配的なシステムを作ると、追加要件の
内容次第では 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 が OCP
(Open-Closed Principle) とどのように協調できるかにも興味があるのですが、
そのあたりはいかがでしょう?
-- 
  Yoshihiro Tsukamoto