Your design team should also keep in mind that change is inevitable.
Users requirements change with experience, hardware changes, government
regulations change.
-
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
design documentation.