Top Banner
Technical Debt Power Tool or Plague? Adapted from a paper by Steve McConnell Chief Software Engineer, Construx Software .construx.com/Page.aspx?cid=2801 gs.construx.com/blogs/stevemcc/archive/2007/11/01/technical-debt-2.aspx
18

Technical Debt Power Tool or Plague? Adapted from a paper by Steve McConnell Chief Software Engineer, Construx Software .

Dec 18, 2015

Download

Documents

Shon Houston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Technical Debt Power Tool or Plague? Adapted from a paper by Steve McConnell Chief Software Engineer, Construx Software .

Technical DebtPower Tool or Plague?

Adapted from a paper by Steve McConnell

Chief Software Engineer, Construx Software

http://www.construx.com/Page.aspx?cid=2801http://blogs.construx.com/blogs/stevemcc/archive/2007/11/01/technical-debt-2.aspx

Page 2: Technical Debt Power Tool or Plague? Adapted from a paper by Steve McConnell Chief Software Engineer, Construx Software .

Inspired Counsel

Be determined never to incur another debt. Deny yourself a thousand things rather than run in debt. This has been the curse of your life, getting into debt. Avoid it as you would the smallpox.

(Counsels on Stewardship p. 256)

Page 3: Technical Debt Power Tool or Plague? Adapted from a paper by Steve McConnell Chief Software Engineer, Construx Software .

What is Debt?

• Taking advantage of something that isn’t really “yours” (yet) by renting it from someone else.

• Costs include:– Interest – usually money– Requirement that we live by someone

else’s rules until the debt is repaid

Page 4: Technical Debt Power Tool or Plague? Adapted from a paper by Steve McConnell Chief Software Engineer, Construx Software .

What Is Technical Debt?

McConnell:

“’Technical Debt’ refers to delayed technical work that is incurred when technical short cuts are taken, usually in pursuit of calendar-driven software schedules.”

Page 5: Technical Debt Power Tool or Plague? Adapted from a paper by Steve McConnell Chief Software Engineer, Construx Software .

My Definition

• Technical debt occurs when you don’t do it “right” to start– …and have extra work to do coping with that fact– …until you do it “right.”

• This can apply to software, servers, infrastructure, staffing – basically any of the resources we use to do the job

• Interest on technical debt usually takes the form of extra effort required to keep things working– Or lack of synergy in other areas, which incurs the

same sort of cost

Page 6: Technical Debt Power Tool or Plague? Adapted from a paper by Steve McConnell Chief Software Engineer, Construx Software .

How Long?

Short-Term• Tactical• E.g. Get the system up

by a certain date• Resolution is as soon

as we can do it– May be minor, but we

didn’t want to upset the whole thing at a critical time

Long-Term• Strategic• E.g. We don’t need

that soon, so we’ll save it for later

• Resolution is deferred– May not be needed

Page 7: Technical Debt Power Tool or Plague? Adapted from a paper by Steve McConnell Chief Software Engineer, Construx Software .

Examples

Short-Term• Systems on two

separate machines• Copy data across

nightly– Or hourly or whatever…

• Once consolidation is accomplished, no copies needed

Long-Term• Didn’t develop a way

to back off transcripts to save space

• We knew we had years before it might be needed

• Moore’s law to the rescue: never needed

Page 8: Technical Debt Power Tool or Plague? Adapted from a paper by Steve McConnell Chief Software Engineer, Construx Software .

Why Incur Strategic Debt?

• Because the cost of doing it now is more than the cost of doing it later

• Market Opportunity: We’ll lose revenue if we wait

• Preserving Startup Capital: We have only so much money to get it done

• Delaying until not needed: If we can put it off until the system is replaced, it’s “forgiven”

The cynic says: “Strategic” is a term managers use which means “I want to do it this way this time but don’t call it a precedent.”

Page 9: Technical Debt Power Tool or Plague? Adapted from a paper by Steve McConnell Chief Software Engineer, Construx Software .

Types of Debt

Non Debt – Feature backlog, deferred features, cut features, etc. If it doesn’t require interest payments it isn’t debt. Some would treat it like debt because it may represent missed opportunities to make sales or save money or gain competitive advantage.

I. Unintentional Debt – Debt incurred unintentionally due to low quality work

II. Intentional Debt – Debt incurred intentionally

II.A. Short-Term Debt – Short-term debt, usually incurred reactively, for tactical reasons

II.A.1. Focused Short-Term Debt – Individually identifiable shortcuts (like a car loan so we can get a job)

II.A.2. Unfocused Short-Term Debt – Numerous tiny shortcuts (like credit card debt for items purchased “because we deserve it”)

II.B. Long-Term Debt – usually incurred proactively, for strategic reasons (like a home loan which positions one to build equity)

The difference between focused and unfocused is largely awareness (driven

by documentation).

Page 10: Technical Debt Power Tool or Plague? Adapted from a paper by Steve McConnell Chief Software Engineer, Construx Software .

Attitudes About Debt• No debt at all

– Perhaps the business side of our firm won’t understand the debt and be willing to service it

• Useful tool– Power tool to get things done

• Recognize the debt we have– Easier to ignore than financial debt

because it’s harder to quantify

Page 11: Technical Debt Power Tool or Plague? Adapted from a paper by Steve McConnell Chief Software Engineer, Construx Software .

Increasing Transparency

• Problem is Organizational Workaholism• Ongoing cost of technological debt becomes

part of the organizational ecology, meaning somebody’s job or self-concept may depend on it– Common claim of Republicans about our government

ecosystem!

• Debt list in your tracking system– Can you account for the actual cost?

• Scrum product backlog– Part of Agile Development methodology

Page 12: Technical Debt Power Tool or Plague? Adapted from a paper by Steve McConnell Chief Software Engineer, Construx Software .

Those Little Things Add Up

• “If the shortcut you are considering taking is too minor to add to the debt-service defect list / product backlog, then it’s too minor to make a difference; don’t take that shortcut. We only want to take shortcuts that we can track and repair later.”

Page 13: Technical Debt Power Tool or Plague? Adapted from a paper by Steve McConnell Chief Software Engineer, Construx Software .

Your Debt Credit Rating

• The less debt you create through unintentional low-quality work, the more debt you can safely absorb for strategic reasons

• Debt vs. team velocity: If your velocity drops as a result of servicing technical debt, focus on reducing debt until velocity recovers

Page 14: Technical Debt Power Tool or Plague? Adapted from a paper by Steve McConnell Chief Software Engineer, Construx Software .

Retiring Debt

• Can be motivational – celebrate!• If it’s easy to pay back debt later (e.g. a Web

app), then you should be more willing to take on that debt to meet immediate business goals

• If it’s hard to pay back debt later (e.g. incomplete information recorded on ID cards), then you should be less willing to take on that debt to meet immediate business goals

• Strive to make it easier to retro-fit, so you can reduce the “finance” cost of technological debt

Page 15: Technical Debt Power Tool or Plague? Adapted from a paper by Steve McConnell Chief Software Engineer, Construx Software .

Communicating about Technical Debt

• Your maintenance budget gives a hint about your debt service load (ie “interest owed on the debt”)

• Explain in terms of money – “We’re spending $x per year servicing our debt”

• Be sure you’re taking on the right kind– Only types II.A.1 and II.B are healthy

• Ongoing dialog

Page 16: Technical Debt Power Tool or Plague? Adapted from a paper by Steve McConnell Chief Software Engineer, Construx Software .

Why Pay Down Technical Debt

• Time-to-market (or time-to-benefit) decreases if you don’t have the distraction of debt interest

• Sets the stage for future enhancements

• Response time for hot fixes improves• Customer visibility

Talking points with your boss

Page 17: Technical Debt Power Tool or Plague? Adapted from a paper by Steve McConnell Chief Software Engineer, Construx Software .

Focused Debt-Reduction Projects

McConnel’s take:• Large debt reduction projects usually don’t

work out because they aren’t cost-effective• Focus on specific projects with known cost and

paybackBeckett’s take:• If your interest cost is measurable and clearly

characterized or there is a customer perception issue, a new project may be best– E.g. Replacing piecemeal networking in dorms with

full wiring at a single tech level circa 1998

Page 18: Technical Debt Power Tool or Plague? Adapted from a paper by Steve McConnell Chief Software Engineer, Construx Software .

Decision Making

• Before incurring the debt, write down the alternatives

• If the shortcut is pervasive, it can be really expensive to fix– Mitigate by clear records

• Does this shortcut affect other systems?• Now you’ll be in a good position to make

a decision later, when (and if) to pay off the debt