I should have made the point in my Technical Debt post that making compromises in order to hit business needs is emphatically something that needs to happen. And not just occasionally, but with regularity.
Indeed, I’d be surprised to work on any non-trivial project without making compromises. This very website is full of compromises to meet the business needs of (a) my becoming quickly bored with writing frontend code and (b) of knowing that tweaking code no-one will ever see is less fraught with worry – and therefore easier – than actually writing this stuff that you are reading. The need is for writing, the site is small: many shortcuts can be taken. If I ever have a million hits, the site will most assuredly collapse.
But I still don’t like the phrase. So what would I replace technical debt with, as a concept? I’d instead invite stakeholders to consider a restaurant that is just starting out.
The owners choose to buy cheaper pans than would be ideal. If the restaurant is successful, these pans will wear out quickly and need replacing; the owners know there will be a replacement cost. In addition, cheaper pans are harder to cook with, adding costs to every meal – over and above the replacement cost. Finally, the cheap pans might just suddenly fall apart leaving the restaurant scrambling for replacements. However, the restaurant takes the risk: having the pans sooner and cheaper might be what enables them to afford to open in the first place (along with cheap tables, chairs, plates etc.).
I’m not sure whether there’s a pithy phrase for this, however, so it’s unlikely to catch on. I do feel it’s a more apt analogy, however, making it better than a broken metaphor.