
Signs and symptoms of poor design.
| Name | Symptom |
|---|---|
| Rigidity | The system is difficult to change. Every change triggers an endless sequence of further changes. |
| Fragility | Changing one part of the system breaks several other, unrelated parts. |
| Immobility | It is difficult to separate the system into components that can be reused in other systems. |
| Viscosity | Viscosity is high when adding a workaround is easier than adding code that follows the design. |
| Needless Complexity | There are many complicated code structures that are not needed now but might be useful someday. |
| Needless Repetition | The code looks as if two programmers wrote it using copy and paste. |
| Opacity | The complexity of the expression creates particular difficulties in understanding the original author's intent. |