What it is Technical Debt
Technical debt are decisions we make during development that we know are not optimal because they require more work to get optimal but we decide to deal with the consequences because we see more value in delivering at that time. It is called debt because it carries on interest, which means:
- you will spend more time adding new features
- it will take you more time solving bugs
- it will be more difficult to understand your code. And you will continue to pay that interest rate until solve your technical debt. Technical debt is additive. The more technical debt you add, the higher the interest rate you'll pay. And it could get so bad that the interest rate you pay could beat the value that your product delivers. Ways in which you add technical debt =============================
- Not refactoring your code.
- Not writing code that expresses the intend
- Not exploring different architectural solutions
How to deal with technical debt
Creating user stories to deal with a specific technical issue.
- Refactor some code.
- Rearchitecting some modules.
- Explaining the cost to the product owner so it prioritizes those user stories.
- Training developers to recognize the technical debt.