Technical debt is used in software development in reference to the cost of future work as a consequence of taking shortcuts today. Shortcuts may be taken in the software’s code; development tools, practices and procedures; technical documentation, and testing. It is frequently necessary to rapidly provide clients a proof of concept to show investors or to reduce time to market. You may not have time to do everything done before the deadline, so you leave it until later. It’s work you owe and it still needs to be done.
The core point is that technical debt, just like credit card debt, must be carefully managed for its tendency to accumulate interest across each iteration or software version. The longer you don’t address it, the more difficult it becomes and the longer it will take. If you don’t pay down your technical debt, it can spiral out of control and threaten a business’s existence. Someone high up on the food chain is likely to notice something is amiss and take steps to correct it. It’s usually a good idea to not let things reach that point!
This is not to say that technical debt, unto itself is a bad thing – not managing technical debt is very dangerous. That’s especially the case considering the low cost of automated Git analytics that can be used to track developer productivity metrics that can help identify how your debt is being accrued.
It deserves to be noted that, yes – technical debt is an abstract concept, but a useful one. Time is also fairly abstract. We can measure time, predict how much work can be completed and correlate it to an hourly wage. Software developers agree to create a product by a specific date and incur technical deb when a portion of that product isn’t done by that date. It is just as abstract and yet quite nearly as real as a thousand $100 bills.