Preparing for Change
Your design team should also keep in mind that change is inevitable.
Users requirements change with experience, hardware changes, government
Try to predict the most likely sources of change, and isolate the effect.
Common changes include interfaces, file formats, communication protocols.
Isolate interfaces to hardware that is likely to change.
Reduce dependency of one software component on another.
Keep accurate record of the reasoning behind every major decision in the
Intro OOP, Chapter 3, Slide 36