5 ms·
I dislike the term "technical debt" as it makes it appear that it is something that must be paid. It takes a stance that there is a correct way to do something
by allenu 7y ago
I dislike the term "technical debt" as it makes it appear that it is something that must be paid. It takes a stance that there is a correct way to do something and that if you owe a debt it's because you've strayed from the correct way and that you need to restructure your work to make it conform more to this correct way.
I prefer to see engineering as a series of trade-offs. These trade-offs come about often as not having enough information about future scenarios and yes, sometimes they come about because you are in a rush to do something. Either way, whether something should be redone is dependent upon a lot of factors and calling something "technical debt" is a sort of way to politicize work as though it is "the right thing to do" and msut be done. This feels too simplistic to me.
Often, shortcuts we take will live for a long time in our code and often it doesn't matter that it's "wrong". If we call something technical debt, we should only call it that at the time that we determine work definitely needs to be done, not as we're going along and thinking "this is not the ideal design" as this will just lead to YAGNI designs.
- bradstewart 7y agoHaving debt doesn't mean you're doing it "wrong"--debt is a useful tool, both in the financial and technical sense. Debt only becomes a problem when you take out too much of it. If you owe 90% of your monthly income in interest payments, it'll take a long time to a buy a new car. If you have nothing but hacks/shortcuts/etc in your code, it'll take a long time to add new features. Debt is only debt when you have to service it. Shortcuts that aren't affecting your ability to develop new features are not debt.
- WorldMaker 7y ago> I dislike the term "technical debt" as it makes it appear that it is something that must be paid. You don't have to pay other debts either, you just have to be prepare to deal with consequences of that (bad credit scores, bankruptcy). Real debt too you often have choices in what you pay off today, versus what can wait for next month or next year. There's also nothing inherently wrong with taking on debt. Most people will have all sorts of debt in their lifetime, and some economists believe that debt is much more interesting economically than wealth ever is. Debt is not a moral proposition and calling something "technical debt" isn't saying that it is bad/wrong, it's saying that we're writing IOUs we may or may not have to cash at some point. It isn't necessary to avoid debt at all costs because it isn't wrong to have some debt on the books (beyond very conservative religious readings that feel that all debt is sinful, of course).
- mobjack 7y agoThere is a lot of technical debt you can leave in the system without consequence. Tech debt mainly becomes an issue when making changes to the code. If no changes are needed in the code and it is working correctly, it is best to leave the debt in there.
- WorldMaker 7y agoI think that gets to other people's points that if it doesn't have consequences it is isn't likely "tech debt". If you don't "owe" it to someone, and often that someone is "future you", then it isn't really tech debt, it was just a trade-off or a poor aesthetic. We have other fun names for ugly aesthetic choices that work and get the job done and aren't likely to be replaced such as "jerry-rigged" and "Rube Goldberg machine" and "duct-taped shambles".
- Forge36 7y agoYou can default on debt. Debt isn't bad unless it's allowed to grow beyond the means to pay for it. Large companies can have more debt without additional risk. Debt=/=bad If you miss a deadline because adding a feature causes to many issues: you may have defaulted.