Work in Progress — This post is still being written.

The premise is this: tech debt in implementation is far less painful than tech debt in interfaces. Changing interfaces incurs coordination and sync costs between two parts now, potentially cascading failures and complexities.

Implementation vs Interface Debt

When we talk about technical debt, not all debt is created equal. There's a crucial distinction between debt hidden inside a module (implementation debt) and debt that affects how components talk to each other (interface debt).

Implementation debt is contained. You can refactor the internals of a function, rewrite an algorithm, or restructure private data—all without touching anything else. The blast radius is small.

Interface debt is viral. Change a function signature, modify an API response, or rename a field, and suddenly you're coordinating across teams, updating multiple services, and hoping you found all the call sites.

Strategic Debt

This is a work in progress...