3 ms·
Code which solves a well defined problem with the absolute minimal amount of logic necessary is not technical debt. If a module is fully replaced later, it doe
by jongjong 3y ago
Code which solves a well defined problem with the absolute minimal amount of logic necessary is not technical debt.
If a module is fully replaced later, it doesn't mean it was technical debt. Technical debt is characterized by its need to be refactored/modified in a way which is not backwards compatible. If a module can be substituted in its entirety with minimal changes which directly reflect requirement changes, then it wasn't technical debt.
Good code is about setting up components in a hierarchy which allows you to adapt to requirement changes by substituting modules as opposed to refactoring those modules.
Note that if you're adding features to an existing module, this does not count as a refactoring. Not if the module is backwards compatible with respect to its dependents. But of course when adding new features you want to stick to the minimalist philosophy so you need each module to have clear responsibilities.