14 ms·
These endless conversations about what “tech debt” is reveal how poorly matched the term is. Debt is not something useless. Or malformed. It is something you o
by Nevermark 3y ago
These endless conversations about what “tech debt” is reveal how poorly matched the term is.
Debt is not something useless. Or malformed. It is something you owe.
If you sign a contract to produce a feature and get paid up front you have tech debt. Literally.
To pay off the owed feature, you produce & ship the feature.
If you throw out some feature quickly in a haphazard or buggy way that requires maintenance to operate as advertised (regular manual fixes of data base corruption), you now have operational debt. Literally.
To pay off that owed operational commitment, you can fix your bug or keep fixing its impact. Pay off all at once, or for all time.
But if you ship a fully functioning feature that works, regardless of its implementation, you don’t owe anything.
If the feature had a haphazard design or implementation that is going to slow future development, you have taken a shortcut and reduced the quality of your foundation.
Reducing the quality of a foundation due to a shoddy code rework isn’t debt. You don’t owe anything.
It’s a destruction of present net value.
Present net value is your codes immediate value + its expected contribution to future value.
Maintain and increase the “present net value” of your code base by making changes carefully, and investing in its ability to fit future needs.