Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Debt works like this:

1. you take on debt to get hold of some cash

2. at some point, you ought to repay the debt by giving up the same amount of cash

3. until you do, you have to spend a steady trickle of cash servicing the debt

In the technical debt metaphor, cash stands for development effort. But:

1. taking on technical debt doesn't give you a load of development effort out of nowhere (i suppose you could say that shipping what should be a three week feature in two weeks is like getting a week of effort from nowhere, but that seems dubious to me - you haven't shipped the same feature!)

2. repaying technical debt generally takes more work than it saved, because by the time you repay it, it's infected other code that was written afterwards BUT sometimes you end up being able to delete the whole thing, because the feature was retired or fundamentally rewritten, in which case you don't need to repay it at all!

3. sometimes, existing technical debt requires no extra work at all (if it's in a part of the codebase you aren't touching), but if it does, it's not a constant amount, it's proportional to the amount of work you are doing on that code

So it doesn't seem like a brilliant metaphor, really.

Perhaps it's more like cleaning your bike chain after a ride through the mud. If you don't do it, it saves you some time today. But every time you ride your bike again, it's more effort to pedal, and it's wearing your chain out faster.



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: