Comprehension debt
Code that exists in your repository and not in anyone's head. Distinct from technical debt, and accruing much faster.
Also called comprehension gap, cognitive debt
Technical debt is code you understand and chose not to fix. Comprehension debt is code you never understood in the first place.
They are different liabilities. Technical debt has a known shape. You can point at it, estimate it, and schedule it. Comprehension debt stays hidden until somebody needs to change the code and discovers that no one on the team, including the person named on the commit, can explain why it works that way.
It grows as quickly as you accept output, which is now very quickly. Paying it down still requires someone to read at human speed. At work, the engineer who creates the debt is often not the person who eventually has to deal with it.
I keep using the term because I do not hear people name this problem often enough. I am happy to replace it when somebody comes up with a better one.
See also Verification and Legacy code.
Linked from
- register_globals and the whole catastrophe post
- Toward an audit log your agent cannot lie to post
- Event sourcing topic
- Legacy code topic
- Verification topic