オブジェクト指向でよく聞くのが抽象化。アジャイル開発でよく聞くのが独立性。
どちらもまだいまいち身に付いてないから細かいところは分からない。とりあえず、これからのプロジェクトの進め方がアジャイルでやっていこうってことなので、独立性ってものは意識しておかないとまずい気がしてる。
クラスを基本単位にして設計/実装を行う場合、問題対象を抽象化する。で、抽象化とかクラスとかで再利用が云々って話になると、すぐ思いつくのが継承。基本になる abstract なクラスを設計して、それを継承して具体的なクラス(具象化?)をしていく。で、ここで注意しないと、階層的に依存関係ができたりするのかもしれない。そうなると、独立性の問題が出てくる。アジャイルは「変更がある」事を前提にしているから、依存関係がありすぎるとつぶれると思う。横関係での依存関係(クラス内でインスタンスを"作る"とか?)も注意しなきゃいけないけど、変更前提な進め方をする場合、縦関係も注意しておかないと危険な感じがする。
結局、再利用がどうとか考えて複雑な関係を作ってしまうと、「作り直した方が早いし安い」って事になるっぽい。「シンプルな設計」と「生産性を考慮した継承」とのバランスをどうとっていくか。プラグイン機能について調べてみたらその辺のヒントが掴めるのかな?
以前買うだけ買っておいた『アジャイルソフトウェア開発の奥義』をそろそろちゃんと読まないとか。いろいろたまって消化できてない…。

