I know I've been painting a somewhat horrifying picture so far now—when software undeniably slips toward becoming an unmanageable clew of spaghetti code. You might be wondering: what's the point if we end up in the land of horror anyway? When we find ourselves there, we can start fresh, and learn from the past to build a new, shiny, bright system, with the newest technology and everything will be fine again. We will get back to the big rewrite topic later on, but for now, let's think about why the new system would be better than the old one.
No matter whether we are planning to create a new software system or to refactor the old one, there is at least one thing we can do to ensure that we keep our software in good shape for quite a long time. We might not be able to use the most beloved programming language, the new, shiny silver-bullet...