5. Technical Debt
Metaphor coined by Ward Cunningham to
explain the misalignment between code and
current understanding
Tuesday, 8 November 11
6. Consciously taking on debt might allow
you to get something sooner
Tuesday, 8 November 11
7. Burden
• Not paying off - borrowing without paying
it back
• Spending power goes to 0
• All your money goes into paying interest
Tuesday, 8 November 11
8. Some might see this as an excuse to write
poor code.
Never write poor code
Tuesday, 8 November 11
9. Reckless Prudent
We must ship now
We don’t
Deliberate and deal with the
have time
consequences
for design
Now we know
Inadvertent What is layering? how we should
have built it
source: http://martinfowler.com/bliki/TechnicalDebtQuadrant.html
Tuesday, 8 November 11
10. Evidence is anecdotal and based on personal
experience of many projects
Tuesday, 8 November 11
12. A re-write will...
• Solve all our problems
• If we use language X
• The latest framework
• A new code generator
• A new database
• .....
Tuesday, 8 November 11
16. Your codebase can never be in Credit
For commercial projects technical debt is a
fact of life
You either have enough or too much
Tuesday, 8 November 11
28. “You know you are working on clean code
when each routine you read turns out to be
pretty much what you expected.You can call
it beautiful code when the code also makes it
look like the language was made for the
problem”
Ward Cunningham
Clean Code by Robert C Martin
Tuesday, 8 November 11
43. First Steps
• Imagine you have joined a new team
• Run metrics
• Estimate debt
• Plan next steps
• Execute the plan
Tuesday, 8 November 11
44. Software Rusts
Things Change
New capabilities
Libraries
Frameworks
OS
Tuesday, 8 November 11
45. Every modification of a system might incur
technical debt unless it is accompanied by
some effort to bring the design into line with
the requirements.
Tuesday, 8 November 11