wildcatsの日記

赤羽在住でIT関係の会社の社長やってます。

独り言

少し前からだけど「YAGNIと変更可能性を考慮したソフトウェア開発」のバランスについて
だんだんと境界がわからなくなってきた。。。。



そもそも開発段階で「変更が入りやすい箇所」の判断はどうするのか。
お客さんが「ここは将来変わりそうだよ?」という発言を基にするの?

それとも開発者が変更が入りやすいと思う箇所のこと?



「一度変更が入った箇所を柔軟なモデルに変更する」という手法を採用すると
初期のコードは例えばStrategyパターンが含まれないように思うし。
かといって後々に入った仕様変更がシステムのあちこちにif文が分散していて
直すのが大変ということになるように思うし。

なんだかモヤっと感が残るんですよね。



で思ったのはチームで最初に
・変更が予期される場合(エンドユーザ駆動か・開発者駆動か)に影響が少ないモデルで作るか
YAGNIで作るか
をきっちりと合意しておく必要があると思うわけなんですよ。
チームとしてその開発モデルでシステムが作成できるか・できないかという
最終判断はプロジェクトリーダーや管理層が行うとして。
開発者個人がどう考えているかでシステムの内部構造が変わってしまうことは
問題だと思いませんか?