Symptoms of Poor Design (Software Design)
The Symptoms of Poor Design are a collection of symptoms that appear in software systems where poor design choices - or none at all - lead to hard to maintain and less sustainable software.
They are described in Robert C. Martin's book Agile Software Development - Principles, Patterns and Practices [📖ASD, p. 85].
The symptoms are:
- Rigidity - The design is hard to change.
- Fragility - The design is easy to break.
- Immobility - The design is hard to reuse.
- Viscosity - It is hard to do the right thing.
- Needless complexity - Overdesign.
- Needless Repetition - Mouse abuse.
- Opacity - Disorganized expression.
"These symptoms are similiar in nature to code smells [📖REF, pp. 75-88], but they are at a higher level. They are smells that pervade the overall structure of the software rather than a small section of code." [📖ASD, p. 85]