| If you believe technical debt is developers wanting the code to be "perfect", you completely misunderstand what technical debt is. Technical debt is a collection of choices you and your team make that can have real world impacts on your companies ability to deliver features in the future, can open your company up to hacking, and could make your software less competitive than the rest of the market. Technical debt is not a loan, it is an anchor. Instead of deferring the debt payment until later, you pay for it with every new feature and eventually your development team will slow to a crawl or the product your building will no longer be cost effective due to rising maintenance costs. Technical debt is a unknown risk. Look up any "X company was hacked" story and they have all come down to bad choices made by the product team. It could be a developer on your team left there machine unsecured or put in some bad code, or it could be a deferred decision to fix that technical debt until later. Technical debt confines the space in which you can operate. If the market pivots, but your software is too rigid to keep up with the changing shape of the market you will lose market share or the ability to capitalize on new things. All companies will have to make hard choices when it comes to technical debt, and no product can be debt-free. But understanding that technical debt is more than your developers whining about code is paramount to being an effective leader in your organization. |
This is a great analogy. You can still sail a ship with one anchor, maybe two, but eventually you are going to have so many anchors that ship isn't going to ever get to its destination.