In the early 90s, Ward Cunningham coined “Technical Debt” as a metaphor to justify feature-neutral redesign work on a finance-related product. While that usage has some persuasive power, if we focus in on the details of the metaphor we see that the financial analogy is problematic at best. Other metaphors have been produced to address the resulting managerial and organizational mismatch. Maybe pollution is a better metaphor? Or maybe it’s a matter of portraying it as cleaning the kitchen as part of meal prep. I’ll walk through a few metaphorical models, highlighting where they have good explanatory power. But in the end, we may want to consider whether a metaphorical name for this phenomenon is helpful at all.
Titus Winters (@tituswinters) is a principal Engineer at Google, where he has worked since 2010. He is the library lead for Google’s C++ codebase: 250 million lines of code that will be edited by 12K distinct engineers in a month. That unique scale and perspective has informed all of his thinking on the care and feeding of software systems, especially shown in the book “Software Engineering at Google” (aka “The Flamingo Book”). His recent areas of interest include technical debt, software engineering education, and effective software testing.