「アジャイルソフトウェア開発の奥義」の読書メモです。
時々、個人の見解入りです。
腐敗するソフトウェアの兆候
硬さ
変更しにくいシステム
たった1つの変更で、それと依存関係のあるモジュールを芋づる式に変更しなければならないような場合、設計が「硬い」という。
もろさ
「もろさ」とは、たった1つの変更によって他の多くの部分が壊れてしまうような傾向があるとうことだ。
移植性のなさ
再利用が困難
扱いにくさ
- ソフトウェアの扱いにくさ
- 開発環境の扱いにくさ
不必要な複雑さ
設計している時点で不必要な要素が含まれている設計である。
必要になったタイミングで、最小限の修正をする方が良いと思います。
不必要な繰り返し
同じような構造を繰り返し含み、抽象化してまとめられる部分がまとまっていないソフトウェア
個人的に抽象化してあるとは、ポリモーフィズムを使っていることなのかなと考えています。
不透明さ
読みにくく、わかりにくい。その意図がうまく伝わってこないソフトウェア
ソフトウェアのプロジェクトにおいて最も不確実なものは仕様要求であることを忘れてはならない。仕様要求は常に不安定な状態にある。
設計にパッチを当て新しい要求に対応するような一時しのぎをするのではなく、将来同じような変更があった場合に対応できるように設計を改善するチャンスだととらえる。