|
|
|
|
|
by dragonwriter
4613 days ago
|
|
Time is pretty much irrelevant, at least directly. The time to rewrite software is when one of the following is true (which are really the same thing from different viewpoints):
1) It has critical defects in serving its intended usage domain that can be resolved by incremental updates because they are caused by fundamental architectural features, or
2) You need something to be used in a similar-but-not-identical domain to the originally intended domain of the software, to which it cannot be incrementally adapted due its fundamental architecture. And, really, if the software is designed well for maintainability, either of these should be rare, since if its is loosely coupled, you can change either the low-level implementation details that need to change without touching the high-level organization, or change the high-level organization while preserving the low-level implementation details that are staying the same, in an incremental change. |
|