The Curse of a Successful System

Ironically, much code decay isn’t due to incompetence but rather is owed to the success of an evolving product. As we discussed earlier, code grows into hotspots because we change it a lot, and those changes are driven by user needs—both real and perceived. Writing code always involves exploring and understanding both the problem and the solution domain. Thus it’s inevitable that we turn down the wrong road every now and then, and the pressure of completing a feature makes it hard to stop and backtrack. The codebase of a successful system is an ugly place to visit.

It doesn’t have to be that way if we actively attend to the health of our codebase and take countermeasures when needed. In this chapter you learned ...

Get Software Design X-Rays now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.