Upload
brendonpage
View
595
Download
1
Embed Size (px)
Citation preview
Delivering Technical DebtBrendon Page
@brendonpaginate
Software Developer
@brendonpaginate#DeliverTechnicalDebt
OverviewOrigin
Evolution
Delivering
The Audience SurveyWho wants
to explain it toa team
member?Who has heard of Technical
Debt?
Conversations Between Us
Commonunderstanding
Meaningfulconversations
Big Problem
Origin
The Experience Report
Ward Cunningham
“the debtmetaphor”
WyCashfinancialsystem
1992
The Experience Report"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...
Entire engineering organizations can be brought to a stand-still under the debt load of an unconsolidated implementation, object-oriented or otherwise."
The danger occurs when the debt is not repaid. Every minute spent on not-quite-right code counts as interest on that debt.
1992
The Experience Report"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...
Entire engineering organizations can be brought to a stand-still under the debt load of an unconsolidated implementation, object-oriented or otherwise."
The danger occurs when the debt is not repaid. Every minute spent on not-quite-right code counts as interest on that debt.
1992
Good Metaphor
It stuck Explainthe
rewriteUniversal
terms
Yes
Evolution
Interpretations
Differencebetween
Poor code
Good joblater
“Hacking it”
“Doing itProperly”
Okay to
Metaphor Explained
Code shouldalways reflect understanding
Not to explain writing
bad code
Explainrefactoring
toBusiness
2009
RobertC.
Martin
“A Mess is not
TechnicalDebt”
Evenif
partial
Confusion
2009
Technical Debt Quadrant
Instead ofdebt / non-debt
debates
Metaphor
2009
Communicationtool
MartinFowler
Conveythinking
about designdecisions
Classifydebt
Responsibilityand
Awareness
Technical Debt Quadrant
Deliberate
Inadvertent
“We don’t have time for
design”
“We must ship now and deal
with the consequences
”
“What’s layering?”
“Now we know how we should have done it”
Reckless Prudent
Awar
enes
s
Responsibility
“This code barely
changes”
2009
Whereyouare
Stimulatemeaningful
conversations
I like this!
Delivering
What?
Buildcommon
understanding
Mapmetaphor
Development ProcessFeature / Story
Developer
Learning LearningLearning
Code
Domain
Principles(SOLID, DRY
… etc)
Domain
Tech
Domain
Mapping the MetaphorFeature / Story
Asset
PrincipalPrincipal is
what you payinterest on
How?
Developer
Learning LearningLearning
Code
InterestFeature / Story
Developer
Learning LearningLearning
Code
Idea
Idea
Costscognitiveresources,interest!
Codestate
Mindstate
… ohyea it’s called“Person” now
Translation
TemporalMapping
User==
Person
Where is my“User” class
Paying DebtFeature / Story
Code
Developer
Learning LearningLearning
Learning LearningLearning Because“Person”is called“Person” Less
cognitiveresources
Consolidatelearning
(refactoring) Notemporalmappingneeded
Unconsolidated Code in a TeamFeature / Story
Developer 1
Learning
Developer 2
Code
???
???
Developer 2pays 100%
interest
Consolidated Code in a TeamFeature / Story
Developer 1
Learning
Developer 2
Code
Learning
???
Developer 2pays 0%interest
Deliver your learningFeature / Story
Code Deliver
Kept internal
Code
Developer
Learning LearningLearning
Learning
Deliver your learningFeature / Story
CodeDeliver
Code
Developer
Learning LearningLearning
Learning
How?
Record it
Treat it likea feature
Prioritise,track, …
Hard
Red Bin
Ability to distinguishthem fromfeatures
LEANmanufacturing
Place anyonecan put
Red Bin Items
The Red Bin
Feature 5
Red Bin 1
Feature 2 Featur
e 3Featur
e 1
Red Bin 2
Red Bin 3
Feature 4
Red Bin Backlog Queue WIP Done
Feature 6
During the course of the day During the stand up the next day
Deliver learning like a feature
Feature 1
Red Bin 2
Feature 4
Red Bin Backlog Queue WIP Done
Feature 3
Red Bin 1
Feature 6Featur
e 5Feature 2
End of the sprint
Red Bin 2
Why?
Honestdelivery
Projecthealth
indicator
Better clientrelationships
Embrace& addressyour debt
Summary
Metaphor
Colourfulpast
Honestdelivery
Definewhat it means
Thank you!Questions?
@brendonpaginate#DeliverTechnicalDebt