Skip to content
0:00 / 0:00

#technicaldebt#wardcunningham#refactoring

Debt Metaphor

Ward Cunningham

1.5K subscribers • 1 video on Hallway

YouTube
  • Recommended by 3 people: 3 on Hacker News.
  • A classic. People kept recommending it from 2014 to 2023.
  • Presented by Ward Cunningham, inventor of the technical debt metaphor
  • An opinion. It argues one side of a question engineers disagree on.

Beginner. No background in the topic needed.

95K views17 years ago3 recommendations

Software designTools and practiceRefactoring and legacy codeSoftware architectureSimplicity and complexity

Ward Cunningham explains the origin and true meaning of the technical debt metaphor, clarifying that it refers to incomplete understanding rather than sloppy code.

Ward Cunningham reflects on the history, motivation and common misunderstanding of the "debt metaphor" as motivation for refactoring.

Why it's here

3 people recommend this

What people say. Highly recommended as the definitive explanation of technical debt by the person who coined the term.

philboon Hacker News • Recommends

On “Towards an understanding of technical debt”

For the best description of technical debt, you can't do better than listen to the man who first coined the term. Ward Cunningham explains: link to this video

datashovelon Hacker News • Recommends

On “Your developers aren’t slow”

Here are a few of the resources I have used in the past to help explain to non-technical folks some of what a developer needs to deal with when involved in a large project. 1) Ward Cunningham explains "technical debt": link to this video 2) comic strip - "How Projects Really Work": link

cratermoonon Hacker News • Recommends

On “Tech debt is not a burden, it's a strategic lever for success”

It's kind of a pet peeve of mine around technical debt. Some programmers and places I've worked get it wrong, so I refer people to Ward Cunningham's explanation: link to this video

cratermoonon Hacker News • Recommends

On “The age of cargo cult Agile must end”

While we're at it, let's talk about what Technical Debt really means. A mess is not technical debt. Ward Cunningham explains Debt Metaphor link to this video transcript at link

sokoloffon Hacker News • Mentions

On “Embrace technical debt”

…les and Jira tickets with issue type "Debt" so we can easily find the documented debt and make plans when/whether to retire it. So the concrete formal mechanism is "use your bug tracking system and flag them somehow so you can filter/search for them." I will add some additional links that our top-level debt page references as useful: link link link to this video (Video: Ward Cunningham on technical debt)…

zupatolon Hacker News • Mentions

On “A Mess is not a Technical Debt”

Ward Cunningham disagrees with your interpretation of his metaphor. link to this video He explains that technical debt is code written before you have a complete understanding of the problem to solve. You repay the debt by refactoring it when you have a better understanding. This only works if the code is clean enough to be refactored.

adrianhowardon Hacker News • Mentions

On “Everything Gets Painful & Slow as You Scale”

…s us up with a technical debt, which is similar to a financial debt. " Here the decision to take on technical debt is a deliberate one. You knowingly taking the quick-n-dirty route because of time constraints, not because you don't understand the "good" design. Here's a video of Ward talking about technical debt (referenced in Fowler's definition) link to this video Here he talks about debt being something that you notice later. You learn more about what the solution should be, and need to go back and refactor your code so it reflects your new best understanding of the code. Debt is something that builds up over time, and you need to pay it off regularly so that the debt doesn't become disabling. At ab…

RKoutnikon Hacker News • Mentions

On “It's called “Ship” not “Shit””

…f itself. MVPs that sacrifice quality for speed (instead of sacrificing scope) always end up as painstaking rewrites at best, and slow slogs to failure at worst. Something I think most miss is that taking on this technical debt is ok when you don't know which direction to go 0. Get something to market to learn , not to be "first" or "right". 0 link to this video…

6d0debc071on Hacker News • Mentions

On “Ask HN: How often does technical debt lead to the failure of a startup?”

It's a metaphor: link to this video Essentially how well you can write a program to reflect your understanding of a problem. Though it has come to more generally mean writing crap in a lot of cases.

LoSboccaccon Hacker News • Mentions

On “Technical Debt Is a Good Thing”

>Knowing when to release a feature and go into technical debt is one part art and one part science. let Ward Cunningham itself explain what he thinks about taking shortucts and calling it technical debt link to this video

ColinDabritzon Hacker News • Mentions

On “How to Leverage Technical Debt”

I enjoyed the article, although I disagreed on some minor points, some of the broad strokes seem solid to me. Very thought provoking. I think it's interesting to contrast the thrust of the article with Ward Cunningham's original definition of technical debt: link to this video Wards definition is much more about the differences between the current implementation of the software and your understanding of the problem, particularly as your understanding changes over time. He explicitly says that "tehcnical debt" is NOT an excuse to write known-to-be-poor code, which is why I disagree with the //TOBECLEANED approach. This change in perspective shifts the point of view quite a bit. In some ways this problem…

cratermoonon Hacker News • Mentions

On “Nobody cares about your clean code”

…back debt, and make the debt metaphor work for your advantage depends upon your writing code that is clean enough to be able to refactor as you come to understand your problem"2 "write the best code possible given a partial understanding of the problem so later when you do understand it better you improve the solution"3 1. link 2. link 3. link to this video…

paphillipson Hacker News • Mentions

On “Technical debt is not debt; it’s not even technical”

'Technical Debt' in contemporary terms has certainly become a container holding far more than originally intended by Cunningham. The fundamental debt metaphor was about the need for ongoing re-factoring of past code and systems to match today's understanding , and the accumulating cost of failing to have the discipline and taking the time to do so. Cunningham's specific quotes from the video 0 linked in the article: "...accumulate the learnings we did about the application over time by modifying the program to look as though we knew what we were doing all along, and to look as if it had been easy to do" , and "If we fail to make our program align with what we then understood to be the prop…

crdroston Hacker News • Mentions

On “How to approach and prioritize technical debt”

Original sources by Ward Cunningham are not too hard to come by... > I became interested in the way metaphors influence how we think, after reading George Lakoff and Mark Johnson's Metaphors We Live By. An important idea is that we reason by analogy with the metaphors that have entered our language. > I coined the debt metaphor to explain the refactoring that we were doing on the WyCash product. This was an early product done in DigiTalk Smalltalk, and it was important to me that we accumulate the learnings we did about the application over time by modifying the program to to look as if we had known what we're doing all along, and to look as if it had been easy to do in Smalltalk. > The expl…

reedlawon Hacker News • Mentions

On “The business impact of code quality (2017)”

The paper uses the term "technical debt" without defining it. From the context the term is used in its popular sense in which the primary source of debt is writing code poorly. Ward Cunningham, who coined the term, did not mean it in this way 1. Wikipedia defines it as "the implied cost of additional rework caused by choosing an easy (limited) solution now instead of using a better approach that would take longer" 2 which is more aligned with Ward's intention. The problem with the current understanding of the technical debt metaphor is that it justifies poor code quality. Apparently it's like taking out a loan to make a sound investment. 1. link to this video 2. link

avereveardon Hacker News • Mentions

On “All code is technical debt”

No sorry that is just bad encapsulation and goes under poor programming.Technical debt occurs when you write a good program to your current understanding of the solution knowing that the full understanding of the solution will come later, and that you need to do something now to get to that learning point later, and so you have to repay your partial understanding at the beginning with refactoring later. Here, heed Ward words directly, poor programming is not debt, and debt doesn't cover "whatever reason programmer may have" but has a specific well defined scope: link to this video