When to rewrite
Jim Keller says an architecture of a microprocessor should be re-written every five years. That is if you care about the long-term prosperity of a product. Incremental improvement saves money, lowers risk and provides predictable output. However, as a product matures, you start to get diminishing returns from incremental improvements.
When that happens, rewrite the architecture. The new starting point would be lower than the existing system’s optimal point, but you will quickly surpass it.
People who are trying to achieve a quarter by quarter objectives hate this approach. People who are building for the long-term should know that such short-term limitations block them from long-term success.
If we look at companies that had long success, the leaders knew this. Every time the company had to redo something, they did.
Although his thoughts are for a microprocessor architecture, it’s just as relevant for software architecture.