Technical Debt
Definition
Ward Cunningham
Technical debt is the idea that you can gain a temporary speed boost by rushing software development, at the cost of slowing down future development.
Wikipedia
In software development, technical debt (also known as design debt or code debt) is the implied cost of additional rework caused by choosing an easy (limited) solution now instead of using a better approach that would take longer.
Analogous with monetary debt, if technical debt is not repaid, it can accumulate "interest", making it harder to implement changes. Unaddressed technical debt increases software entropy and cost of further rework. Similarly to monetary debt, technical debt is not necessarily a bad thing, and sometimes (e.g. as a proof-of-concept) is required to move projects forward. On the other hand, some experts claim that the "technical debt" metaphor tends to minimize the ramifications, which results in insufficient prioritization of the necessary work to correct it.
As a change is started on a codebase, there is often the need to make other coordinated changes in other parts of the codebase or documentation. Changes required that are not completed are considered debt, and until paid, will incur interest on top of interest, making it cumbersome to build a project. Although the term is primarily used in software development, it can also be applied to other professions.Wikipedia (2023-02-05)
Causes
- Software Complexity
- tbd.
Studies
Similar Debts
π References
Towards an understanding of technical debt | Kellan Elliott-McCrea by Kellan Elliott-McCrea
There are at least 5 distinct things we mean we say βtechnical debtβ.
- Maintenance work
- Features of the codebase that resist change
- Operability choices that resist change
- Code choices that suck the will to live
- Dependencies that resist upgrading
All code is technical debt. All code is, to varying degrees, an incorrect bet on what the future will look like. You can address issues that are damaging to productivity, operability and morale, but only way to βfix technical debtβ is βrm -rfβ.