Symptoms of Bad Software Design
Four classic symptoms of bad software design are examined with practical examples and solutions. Rigidity (cascade of changes from tight coupling) is addressed with the Strategy Pattern and Open/Closed Principle. Fragility (unrelated breakage from changes) is solved through encapsulation and Interface Segregation. Immobility (inability to reuse code) is fixed via Clean Architecture and Dependency Inversion. Viscosity (resistance to doing things correctly) is tackled through automation and infrastructure improvements. Each symptom includes a concrete scenario and actionable solution.