In software development and other information technology fields, technical debt (also known as design debt[1] or code debt) is the implied cost of future reworking required when choosing an easy but limited solution instead of a better approach that could take more time.[2]
Analogous with monetary debt,[3] 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.[4][5]
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.
In a Dagstuhl seminar held in 2016, technical debt was defined by academic and industrial experts of the topic as follows: "In software-intensive systems, technical debt is a collection of design or implementation constructs that are expedient in the short term, but set up a technical context that can make future changes more costly or impossible. Technical debt presents an actual or contingent liability whose impact is limited to internal system qualities, primarily maintainability and evolvability."[6]
^Suryanarayana, Girish (November 2014). Refactoring for Software Design Smells (1st ed.). Morgan Kaufmann. p. 258. ISBN 978-0128013977.
^"Definition of the term "Technical Debt" (plus, some background information and an "explanation")". Techopedia. Retrieved August 11, 2016.
^Allman, Eric (May 2012). "Managing Technical Debt". Communications of the ACM. 55 (5): 50–55. doi:10.1145/2160718.2160733. S2CID 53246391.
^Jeffries, Ron. "Technical Debt – Bad metaphor or worst metaphor?". Archived from the original on November 11, 2015. Retrieved November 10, 2015.
^Knesek, Doug. "Averting a 'Technical Debt' Crisis". Retrieved April 7, 2016.
development and other information technology fields, technicaldebt (also known as design debt or code debt) is the implied cost of future reworking required...
may result in increased technicaldebt. The team must allow themselves time for defect remediation and refactoring. Technicaldebt hinders planning abilities...
The national debt of the United States is the total national debt owed by the federal government of the United States to Treasury security holders. The...
Bad code smells can be an indicator of factors that contribute to technicaldebt. Robert C. Martin calls a list of code smells a "value system" for software...
for Build Debt: Experiences Managing TechnicalDebt at Google". Proceedings of the Third International Workshop on Managing TechnicalDebt. IEEE. pp. 1–6...
Design smells indicate the accumulated design debt (one of the prominent dimensions of technicaldebt). Bugs or unimplemented features are not accounted...
specializes in debt collection is known as a collection agency or debt collector. Most collection agencies operate as agents of creditors and collect debts for a...
code that an organization has to work with frequently—and prioritizes technicaldebt based on how the developers work with the code. CodeScene is based on...
result in accumulating technicaldebt; on the other hand, refactoring is one of the primary means of repaying technicaldebt. There are two general categories...
specialized in object-oriented programming. He coined the concept of technicaldebt and expanded on the idea in 1992. He created the site (and software)...
and maintenance. For example software testing, systems engineering, technicaldebt and software development processes. Artificial intelligence (AI) aims...
[citation needed] At least one study found that code reuse reduces technicaldebt. Ad hoc code reuse has been practiced from the earliest days of programming...
HS2 was overengineered in respect of bridge foundations and masts. Technicaldebt Feature creep You aren't gonna need it Planned obsolescence skyTran...
became notoriously difficult to use by 343 Industries, being considered technicaldebt. 343 Industries had also excessively relied on hiring contract workers...
company faces the risk of a high bad debt. There are various technical definitions of what constitutes a bad debt, depending on accounting conventions...
Maintainability is closely related to Ward Cunningham's concept of technicaldebt, which is an expression of the costs resulting of a lack of maintainability...
become impossible, and thus they may be committed to extinction. Technically, extinction debt generally refers to the number of species in an area likely to...
in the software engineering domain are evolvability, modifiability, technicaldebt, and code smells. The maintainability index is calculated with certain...
and estimating software economics including work effort, sizing, and technicaldebt Industry references and benchmarking allowing comparisons between outputs...
C Code Contest, a competition to produce pleasingly obscure C code Technicaldebt The Elements of Programming Style Markus, Pizka (2004). "Straightening...
The Debt Management and Financial Analysis System (DMFAS) Programme is a technical assistance programme managed by the United Nations Conference on Trade...
incurs technicaldebt. The accumulation of this debt prevents the SAML deployment from scaling to its potential. To avoid excessive technicaldebt, the...
collateralized debt obligation (CDO) is a type of structured asset-backed security (ABS). Originally developed as instruments for the corporate debt markets...