The Birth of Legacy Software - How Change Aversion Feeds On Itself
Marshall Bowers

Here's a common pattern that I see play out very often in software teams: There is a need to change the existing system behavior to accomplish new functionality. The software engineer looking at the task realizes that the existing design isn't well suited to the change needed.