Every engineering organization—whether in a startup, a Fortune 500 company, or an open source project—must both sustain (keep the lights on!) and innovate (deliver new functionality!). Simultaneously sustaining and innovating requires carefully managing technical costs: debt, maintenance, and investments.
But managing those technical costs requires understanding them—and most of us don’t. Not everything is “tech debt”! Lumping all our costs into that one moniker misleads us as engineers and fails us in communicating to our users, whether those users are colleagues, customers, or the open source community.
Too often, that confusion ultimately leads us right into technical bankruptcy. But we can do better!