Planning for Technical Debt
For systems with a lot of technical debt problems, it’s not uncommon to spend 20-50% of on-going development time toward repaying that debt. Obviously that has an impact on project schedules. The risk, however, of ignoring these problems is sudden and impactful failures, perhaps in production. Work focused on technical debt needs to be prioritized and part of the project plan. By chipping away at technical debt in a long-term fashion, it is possible to reduce the risk of catastrophic production failures, improve the morale of developers, and ultimately speed up development on legacy systems.
The decision to incur technical debt should be a conscious one.. However, unrealistic time tables and feature pressure often force a team to cut corners. There may be valid reasons to take technical shortcuts, but that decision should reside with the PM/PO, not the engineers building the product. Decisions about product quality should always sit with the individual(s) making scope, schedule, and resource decisions.