Many software systems are never refactored. Since CruftMultiplies the quality of the code deteriorates, until finally useful work may become all but impossible. -- RobertField[...a response to ExtremelySpoiledChild.]
Right on. Some methodologists even present charts and graphs showing that it's inevitable that a system will become completely unmaintainable after some long period of maintenance. It always bothers me when I see this, because practically every system I've worked on became more maintainable over time - I do refactoring.
I say that the only defensible reason to trash and rewrite a system is if major system metaphors (e.g. business policies) have dramatically changed.
This leads to what I call petrification. The architecture of the system becomes more and more convoluted, so that the system resists change, and thus progressively solidifies (i.e. petrifies) over time. Also, humans become more and more afraid of changing the code (i.e. human petrification) in case of unanticipated side effects. -- AnthonyLauderossification is another good term for this.
Ah, that would make a lovely addition to the FunctionalityLandscape metaphor I'm growing. Thanks Anthony. -- MatthewAstley
See DesignDebt, DecompressionDebt