Software does not remain fixed after the first working version is released.
-
Errors or bugs can be discovered. Must be corrected.
-
Requirements may change. Say as a result of government regulations,
or standardization among similar products.
-
Hardware may change.
-
Users expectations may change. Greater functionality, more features.
Often as a result of competition from similar products.
-
Better documentation may be required.
A good design recognizes the inevitability of change, and plans an
accommodation for these activities from the very beginning.