❤ I like the garden analogy very much. Working on software is more like gardening than finance. Bugs are more like weeds than debts. The sure sign of a competent dev team is when the quality of the codebase improves over time.
As always, watch Ward Cunningham's short video "Debt Metaphor" and listen carefully how he differentiate between "bad code" and technical debt. Most developers mean "bad code" when they say technical debt. When they say refactoring, they mean "two weeks rewrite that may cause more bugs" (which project managers have learned the hard way). Then us XP people comes along and say "refactor mercilessly" and the project manager has a heart attack and sends us to Antarctica.
1:54 that’s an interesting definition… not everyone can afford to do the right or best option up front, so must opt for a cheaper faster solution. Like buying a house… I want a mansion, but I can’t afford the debt…. Hmmm maybe there are two types of debt… debt is also making a solution too big for the current constraints and requirements. The other kind of debt is an aging house that I must either maintain and repair, sell, or bulldoze.
8:36 and maintenance debt… a house or car wears… so too does software… the libraries and frameworks we use move forward, the environments we deploy in change, the security vulnerabilities get discovered and publicised. The work to renew and maintain old code grows as time goes by. Putting things off turns small problems into big problems.
This is a fantastic summary. Concise yet packed with info. Thanks Dave!
Is it engineering? Is it science? Is it craft? Finally we nailed it down: it's gardening.
❤ I like the garden analogy very much. Working on software is more like gardening than finance. Bugs are more like weeds than debts. The sure sign of a competent dev team is when the quality of the codebase improves over time.
As always, watch Ward Cunningham's short video "Debt Metaphor" and listen carefully how he differentiate between "bad code" and technical debt.
Most developers mean "bad code" when they say technical debt.
When they say refactoring, they mean "two weeks rewrite that may cause more bugs" (which project managers have learned the hard way).
Then us XP people comes along and say "refactor mercilessly" and the project manager has a heart attack and sends us to Antarctica.
1:54 that’s an interesting definition… not everyone can afford to do the right or best option up front, so must opt for a cheaper faster solution. Like buying a house… I want a mansion, but I can’t afford the debt…. Hmmm maybe there are two types of debt… debt is also making a solution too big for the current constraints and requirements. The other kind of debt is an aging house that I must either maintain and repair, sell, or bulldoze.
8:36 and maintenance debt… a house or car wears… so too does software… the libraries and frameworks we use move forward, the environments we deploy in change, the security vulnerabilities get discovered and publicised. The work to renew and maintain old code grows as time goes by. Putting things off turns small problems into big problems.