Skip to content

Instantly share code, notes, and snippets.

@plembo
Last active April 29, 2018 20:40
Show Gist options
  • Save plembo/17f9f8efdd3a0e255dc87ec8ef8be4f4 to your computer and use it in GitHub Desktop.
Save plembo/17f9f8efdd3a0e255dc87ec8ef8be4f4 to your computer and use it in GitHub Desktop.
Technical debt explainers

Explaining Technical Debt

The Debt Metaphor

I thought borrowing money was a good idea, I thought that rushing software out the door to get some experience with it was a good idea, but that of course, you would eventually go back and as you learned things about that software you would repay that loan by refactoring the program to reflect your experience as you acquired it.

Ward Cunningham, "The Debt Metaphor", http://wiki.c2.com/?WardExplainsDebtMetaphor, retrieved April 29, 2018.

Cunningham came up with the debt metaphor as a way of explaining to his boss why refactoring was an essential part of software development, just as shipping the original software as early as possible had been important to maintaining their place in the market. He used the debt metaphor as a way of making an analogy to how venture capital is used to get a business off the ground.

Misuse of the metaphor

So the idea that technical debt is inherently a bad thing is a corruption of Cunningham's original concept. This may be the result of the shift since the early 1990's of how society views financial debt, particularly in light of the 2008 economic crisis.

The idea that "borrowing money was a good idea" fits in nicely with how debt was viewed by society in 1992 when Cunningham created the metaphor. Since then most have returned to the traditional view that debt is bad. This has allowed some to use the metaphor to argue against the necessity for refactoring as an essential part of software development.

A video giving advice to startups on "how to avoid technical debt":

https://youtu.be/5cyaTTHXVps

The presenters actually understand Cunningham's concept quite well, but in essence argue that startups, unlike established enterprises, cannot afford the expense of technical debt over time. My reaction was to think, "If not now, then when?" I think that it's at the very beginning of a startup's life that it can most afford to acquire debt: both financial and technical. But there is a lotsof good advice provided in the video, and it's worth watching for that.

References

"Technical Debt", https://en.wikipedia.org/wiki/Technical_debt, article on Wikipedia retrieved April 29, 2018.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment