Just like a mortgage, technical debt is paid over time. For example if you didn't write that test up front you can almost bet that the first thing to break will be that uncovered code. And the bill to cover, or fix, that technical debt will come due when you least expect and desire it...like when you have a leaky roof. In fact I was putting together a Web Service/NUnit testing example for my employer at the last minute before a trip to Cleveland where I demoed my sample, when the rain started pouring and wouldn't you know the hole I fixed a year ago started leaking again. The moment I heard the first drip I thought, why didn't I check it out more and why didn't I test the fix before I finished the drywall and painted? And now, I'm paying that debt in the real world. Seems to me work in the real world is a lot harder than the virtual...maybe I just understand coding better than I wield a hammer and trough.
Yes, that really is the picture of my ceiling whole!