Debt can also be taken on accidentally. You can build a couple of features one way and expect future features to be similar, but then reality bites and the way you've built them makes the next feature that happens to come along harder, and the next, and the next. Or the way you've built them doesn't allow for the rate of change in that area - something in code wants to be in config, or something in config wants to be in a CMS. In the debt analogy, it's like having a variable interest rate: you can make a decision which is correct for today's conditions, but the market moves and you're paying twice the interest and suddenly it doesn't make sense any more.
reply