View
2.501
Download
0
Category
Preview:
DESCRIPTION
Technical debt is something often mentioned on the software development floor - but what is it? and what is it not? how can we capture it to reduce it?
Citation preview
Don’t laugh it’s paid for!What is technical debt?
Don't Laugh It's Paid For - Mike Burns 27th April 2011
Don't Laugh It's Paid For - Mike Burns 37th April 2011
Don't Laugh It's Paid For - Mike Burns 4
What is “Technical Debt”
“Shipping first time code is like going into debt. A little debt speeds development, so long as it is paid back promptly with a rewrite.
Ward Cunningham, 1992
The danger occurs when the debt is not repaid. Every minute spent on not-quite-right code counts as interest on that debt”
7th April 2011
Don't Laugh It's Paid For - Mike Burns 5
Lone Loan?
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Time Loan
Cost of change
7th April 2011
Don't Laugh It's Paid For - Mike Burns 6
Fast, Cheap, or Good. Pick any two.
7th April 2011
7
A mess is not a debt
Reckless
Deliberate
Inadvertent
Prudent
“We must ship now and deal
with consequenc
es”
“Now we know how we should have done
it”
“What’s layering?”
“We don’t have time for design”
Quality software takes the least amount of time to develop. If you have code that is simple as possible, tests that are complete and a design that fits just right, additions and changes happen in the fastest possible way
because the impact is lowest. Consequently, if you hack something
out, the more you hack the slower you go because the cost of addition or
change grows with each line of code.
7th April 2011
8
But what about bugs?Reckless
Deliberate
Inadvertent
Prudent
“We must ship now and deal
with consequenc
es”
“We don’t have time for design”
A bug by itself is not technical debt.
It is more likely poor testing, requirements, design, coding, etc; Something within the development lifecycle, something that we could
probably have fixed before it became a bug.If bugs continue to appear
within the same area, function, feature, this may be
a sign of technical debt.
7th April 2011
Don't Laugh It's Paid For - Mike Burns 9
Signs of debt
“Don’t we have docs on the file layouts?” “I thought we had a test for that?” “If I change X, it’s going to break Y. I think.” “Don’t touch that code. Last time we did, we
spent a week fixing it.” “We just lost the drive. Where are our backups?” “Where’s the email about that bug?” “Just put in a comment with XXX.
We’ll see it later.” “Just put in a comment with TODO.
We’ll see it later.” “Just put in a TODO.
Right about the XXXs.”
Debt!
7th April 2011
Don't Laugh It's Paid For - Mike Burns 117th April 2011
Don't Laugh It's Paid For - Mike Burns 12
Quick Fixes Aren't
7th April 2011
Don't Laugh It's Paid For - Mike Burns 13
I don’t know what happened! I just changed one line!
We can’t upgrade. It will break code.
The costs of debt
7th April 2011
More FreeTech.Debt
It's too late in the life cycle to upgrade to the new release of the compiler. We'll do it next time around.
Don't Laugh It's Paid For - Mike Burns 14
So who is to blame?
Developers? Testers? Project Managers? Upper Management? Everyone in the organization
who is building what, when, and why add business functionality in deliberate,
prioritized ways
Blame Kit
“Be in the know”
7th April 2011
Don't Laugh It's Paid For - Mike Burns 15
Simple is not the same as easy.
7th April 2011
Don't Laugh It's Paid For - Mike Burns 16
/* TODO : FIX ME */
Documentation Writing tests Attending to TODO comments Tackling compiler warnings Static code analysis warnings
• Technical Debt wiki can capture:• Knowledge that isn't shared around the
organization • Code that is too confusing to be modified easily• Prudent, deliberate design decisions that incur
technical debt• Potential “messes” (or messes that we know
already exist!)
7th April 2011
Don't Laugh It's Paid For - Mike Burns 17
Lowering quality lengthens development time
7th April 2011
Don't Laugh It's Paid For - Mike Burns 18
Wrap it up!
Even the best teams will have debt to deal with as a project goes on - even more reason not to recklessly overload it with crummy code.
7th April 2011
Don't Laugh It's Paid For - Mike Burns 19Questions?
7th April 2011
Recommended