> There's no point in refactoring the whole thing
Deep architectural/design flaws in a codebase can't always be addressed using a series of small independent changes.
Deep architectural/design flaws in a codebase can't always be addressed using a series of small independent changes.
It's basically refactoring/rewriting the whole part of the system in most cases, which is a full project in itself.
[1] Garlan, Allen, and Ockerbloom. Architectural Mismatch: Why Reuse Is So Hard. IEEE Software 1994. https://ics.uci.edu/~andre/ics223w2006/garlanallenockerbloom...
Not sure that's true. At the extreme end, you introduce a replacement with a better architecture and run it side by side with the old one, incrementally switching over dependents. Of course, that may take more overall work, but maybe the incrementality is sometimes worth it.