
Technical debt in Firefox and Chromium (2013) - peter_d_sherman
https://almossawi.com/firefox/prose-part-two/
======
peter_d_sherman
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."

