ソフトウェアの腐敗する"におい"

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