I'm working on a startup and the current codebase is 2.5 years old. The original code was built with a lot of assumptions (or future predictions rather); very few of it hold true today. Also, a major goal back then was to just get it out. A lot has changed and it has become a rather hard problem to maintain it. I'm not talking about bug fixes; it's adding new features that is taking at least 2x the time it actually needs. A couple of us (only in out part time and without disrupting the existing code base) are planning to retouch it; rethink the assumptions as it holds today and incorporate best practices. However my manager is pointing me to the article above and says we are at fault here. Have you been in a situation like this? What would your suggestion be?