変わりつつあるソフトウェア開発の価値観

http://www.biwa.ne.jp/~mmura/SoftwareDevelopment/twentyfirstcentury.html

村上さんの話ということで期待して読んでみたけれど、どうも自分の感覚とは完全にずれているなぁ。

「汎用性のある部品を作り、他システムから使用できるようにする」ことではなく、「変化を封じ込め、開発済みの既存部分を手つかずのまま残す(=自システム内で再利用する)」ということを意味しているのです。

今後は後者(要求の共通部分と可変部分を見極め、可変部分を封印する)のメリットに比重を置いて開発を行っていくことが主流になるべきだと考えています。

「要求の可変部分なんて殆どわからない」「可変部分が将来どう変化するのかもわからない」というのが現実なんだと思う。それで4,5年前からXPerが言い出したのが、「不要な拡張性をシステムに盛り込まずに、シンプルさを保つ。内部構造をシンプルに保つためにパターンを使う」という話なんだと思う。

なので、最近の流れは、

  1. 変更が必要になったときに変更の被害が最小限で済むように内部構造をシンプルに保つ
  2. 変更への影響は自動テストでカバーする

ということになっているんじゃないかなぁと。

だから、村上さんが書いている、「既存部分を手付かずのまま残す」や「可変部分を封印する」の話は、どうも自分の感覚とはずれているなぁ。感覚があうのは、再利用という幻想についてだけ。

#訳が素晴らしいだけに、ちょっと残念だなぁ。