How to approach technical debt
There is usually friction in an organization between technical people and business people around getting the additional time to soften the rough edges of a design.
I agree that there is a problem, but I don't agree with the idea of blaming “management” for not understanding.
The technical leaders in an organization should:
- speak with one voice per software artifact (software project, not as in “deliverable” or “user story”, but as in “a repository 'used' by the end user”)
- choose the most important change they need in that artifact and mention it as often as possible
- with every opportunity, explain in terms of money what not-getting the time for the change costs, at every single bug
- do not give a deadline, but a range: “it's done between 1 month and 3 months”
- say no, while offering alternatives