On IEEE Software magazine: Technical Debt: from Metaphor to theory and Practice #TechnicalDebt

Furthermore, once we identify tools such as static code analyzers to assist us in identifying technical debt, there's a danger of equating it with whatever our tools can detect. This approach leads to leaving aside large amounts of potential technical debt that's undetectable by tools, such as structural or architectural debt or technological gaps. Gaps in technology are of particular interest because the debt incurred isn't the result of having made a wrong choice originally, but rather the result of the context's evolution—the passing of time—so that the choice isn't quite right in retrospect. Technical debt in this case is due to external events: technological obsolescence, change of environment, rapid commercial success, advent of new and better technologies, and so on—in other words, the invisible aspects of natural software aging and evolution. You could even argue t...