2 ms·
Excerpt: Why is technical debt important? "Some things tend to degrade with time. Within the context of software, degrading means that a system deviates in tw
by peter_d_sherman 7y ago
Excerpt:
Why is technical debt important?
"Some things tend to degrade with time. Within the context of software, degrading means that a system deviates in two specific ways: that it no longer functions as well and that it no longer satisfies its quality attributes. Quality attributes are those cross-cutting requirements such as maintainability and reliability, which one may argue are more important for a system's success than functional requirements.
The buildup of harmful elements that lead to degradation may be said to be inevitable in software for a number of reasons, primary of which is the inherent complexity of software.
To paraphrase Fred Brooks, this inherent complexity is due to the fact that no two components in software are the same, which is in contrast to the physical disciplines where there is such a thing as matter and where components have physical attributes that are unequivocally apparent and constraining. Other factors that contribute to the buildup of these harmful elements include changes in team dynamics, business pressures that lead to tight deadlines, industry shifts and so on.
A term that is sometimes used to describe a subset of these harmful elements is technical debt.
It is a fitting metaphor, as it indicates that a software engineering malpractice here or a concession with respect to coding standards there can incur a debt that one must then pay off in the form of time, effort or defects."