ソフトウェアの腐敗する"におい"
- 硬直
一つの変更から、波及して変更しなければならないモジュールが多い。 - 脆弱
一つの変更から多くの不具合が出る。 - 固着
再利用できる部分を含みながら、その部分を元のシステムから切り出すことが困難 - 粘着
仕様変更時、元の設計を残したまま拡張することが困難 - 不要な複雑さ
設計しすぎて不要な要素が多い - 不要な重複
カット&ペーストのしすぎで、同じようで少しずつ違うコードが散在 - 不明瞭
長期の開発の仕様変更・拡張のため、理解することが困難