the first symptom of complexity is that a seemingly simple change requires code modifications in many different places. so one of the goals of good design is to reduce the amount of code that is affected by each design decision, so design changes don’t require very many code modifications.