変わりつつあるソフトウェア開発の価値観 その2
僕は以下の部分が共感できなくてエントリを書いたわけですが、村上さんのコメント(http://d.hatena.ne.jp/dann/20050808/p8#c)を読んでから意味を解釈すると、あまり考えていることに違いはないのかなと感じました。
「汎用性のある部品を作り、他システムから使用できるようにする」ことではなく、「変化を封じ込め、開発済みの既存部分を手つかずのまま残す(=自システム内で再利用する)」ということを意味しているのです。
今後は後者(要求の共通部分と可変部分を見極め、可変部分を封印する)のメリットに比重を置いて開発を行っていくことが主流になるべきだと考えています。
村上さんのコメントのポイントを自分が理解した範囲でまとめると
現在の設計手順には、ホットスポットの安定性を時間軸で評価して検討するという観点が欠けている。一概にYANGIがよいわけではない。
ということなのではないかと思いました。
(時間軸という言葉がホットスポットだけに掛かっているわけではないかもしれないですが。)
YANGIに傾倒するだけでなく、場合によってはホットスポットを認識して切り離すことも必要だと思いますし、そのときに時間軸でホットスポットを評価する必要があるというのもその通りだと思いました。
僕がやっているミドルの分野は仕様がガンガン変わっていくので、技術仕様に対するホットスポットというのはなかなか見つけられないのですが、アプリケーション仕様としてのホットスポットは幾つかあります。従って、時間軸で考える価値がある部分もあると思っていますから、村上さんが書かれている話もなるほどなと思いました。
おそらく、ドメインによってホットスポットの特性が変わってくるので、ホットスポットの安定性を考えるときの時間軸のスパンの感覚が、人毎に違うのかなと感じました。だから、方法論のあるべき姿についての考え方も違いが生じるのかもしれないなぁと。
現在のAgile系の方法論は、このホットスポットの安定性を考えるときの時間軸が極めて短いのだと思いますが、確かにそれが良いのかは一考する必要があるのではないかと思います。
コメントを頂くことで、記事の意図もよくわかり、勉強になりました。昔だったらこのように直接意見を聞くことができなかったわけで、改めてインターネットの力を感じる今日この頃です。
See also:
http://d.hatena.ne.jp/dann/20050808/p8