Many people have already written about the problem of technical debt. Originally attributed to Ward Cunningham, Martin Fowler and many others have written extensively on the subject and I’m not about to add anything new. All I know is that I hear the phrase “We can’t afford the time to do it right” too often not to be concerned. From what I can tell there is little acknowledgement of the problem of technical debt in the industry, despite the amount of writing going on about it. And I won’t even bother thinking about how few software groups are actually doing things to combat it.
The thing with technical debt, as well as any other debt, is that it snowballs. The more debt you have, the more debt you acquire. You think it will take more time now to do it right, imagine trying to do it right when you’ve done many many things wrong. Why this seemingly logical reasoning is lost on many software groups, I don’t know.
Technical debt is not about developing the software _right_ the first time. We are always allowed to go back and fix things if our assumptions and/or knowledge change over time, which they almost certainly will in this industry. What technical debt is about is knowingly developing the software _wrong_ the first time. If we know we are doing it wrong and we know there is a better way to do it, then we are contributing to the technical debt of the system.
If you think you don’t have time to do it right, then you definately don’t have time to do it wrong.