delivering technical debt
TRANSCRIPT
![Page 1: Delivering Technical Debt](https://reader035.vdocuments.site/reader035/viewer/2022062821/58ae91db1a28abdf068b5de5/html5/thumbnails/1.jpg)
Delivering Technical DebtBrendon Page
@brendonpaginate
![Page 2: Delivering Technical Debt](https://reader035.vdocuments.site/reader035/viewer/2022062821/58ae91db1a28abdf068b5de5/html5/thumbnails/2.jpg)
Software Developer
@brendonpaginate#DeliverTechnicalDebt
![Page 3: Delivering Technical Debt](https://reader035.vdocuments.site/reader035/viewer/2022062821/58ae91db1a28abdf068b5de5/html5/thumbnails/3.jpg)
OverviewOrigin
Evolution
Delivering
![Page 4: Delivering Technical Debt](https://reader035.vdocuments.site/reader035/viewer/2022062821/58ae91db1a28abdf068b5de5/html5/thumbnails/4.jpg)
The Audience SurveyWho wants
to explain it toa team
member?Who has heard of Technical
Debt?
![Page 5: Delivering Technical Debt](https://reader035.vdocuments.site/reader035/viewer/2022062821/58ae91db1a28abdf068b5de5/html5/thumbnails/5.jpg)
Conversations Between Us
Commonunderstanding
Meaningfulconversations
Big Problem
![Page 6: Delivering Technical Debt](https://reader035.vdocuments.site/reader035/viewer/2022062821/58ae91db1a28abdf068b5de5/html5/thumbnails/6.jpg)
Origin
![Page 7: Delivering Technical Debt](https://reader035.vdocuments.site/reader035/viewer/2022062821/58ae91db1a28abdf068b5de5/html5/thumbnails/7.jpg)
The Experience Report
Ward Cunningham
“the debtmetaphor”
WyCashfinancialsystem
1992
![Page 8: Delivering Technical Debt](https://reader035.vdocuments.site/reader035/viewer/2022062821/58ae91db1a28abdf068b5de5/html5/thumbnails/8.jpg)
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
![Page 9: Delivering Technical Debt](https://reader035.vdocuments.site/reader035/viewer/2022062821/58ae91db1a28abdf068b5de5/html5/thumbnails/9.jpg)
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
![Page 10: Delivering Technical Debt](https://reader035.vdocuments.site/reader035/viewer/2022062821/58ae91db1a28abdf068b5de5/html5/thumbnails/10.jpg)
Good Metaphor
It stuck Explainthe
rewriteUniversal
terms
Yes
![Page 11: Delivering Technical Debt](https://reader035.vdocuments.site/reader035/viewer/2022062821/58ae91db1a28abdf068b5de5/html5/thumbnails/11.jpg)
Evolution
![Page 12: Delivering Technical Debt](https://reader035.vdocuments.site/reader035/viewer/2022062821/58ae91db1a28abdf068b5de5/html5/thumbnails/12.jpg)
Interpretations
Differencebetween
Poor code
Good joblater
“Hacking it”
“Doing itProperly”
Okay to
![Page 13: Delivering Technical Debt](https://reader035.vdocuments.site/reader035/viewer/2022062821/58ae91db1a28abdf068b5de5/html5/thumbnails/13.jpg)
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
![Page 14: Delivering Technical Debt](https://reader035.vdocuments.site/reader035/viewer/2022062821/58ae91db1a28abdf068b5de5/html5/thumbnails/14.jpg)
Technical Debt Quadrant
Instead ofdebt / non-debt
debates
Metaphor
2009
Communicationtool
MartinFowler
Conveythinking
about designdecisions
Classifydebt
Responsibilityand
Awareness
![Page 15: Delivering Technical Debt](https://reader035.vdocuments.site/reader035/viewer/2022062821/58ae91db1a28abdf068b5de5/html5/thumbnails/15.jpg)
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!
![Page 16: Delivering Technical Debt](https://reader035.vdocuments.site/reader035/viewer/2022062821/58ae91db1a28abdf068b5de5/html5/thumbnails/16.jpg)
Delivering
![Page 17: Delivering Technical Debt](https://reader035.vdocuments.site/reader035/viewer/2022062821/58ae91db1a28abdf068b5de5/html5/thumbnails/17.jpg)
What?
Buildcommon
understanding
Mapmetaphor
![Page 18: Delivering Technical Debt](https://reader035.vdocuments.site/reader035/viewer/2022062821/58ae91db1a28abdf068b5de5/html5/thumbnails/18.jpg)
Development ProcessFeature / Story
Developer
Learning LearningLearning
Code
Domain
Principles(SOLID, DRY
… etc)
Domain
Tech
Domain
![Page 19: Delivering Technical Debt](https://reader035.vdocuments.site/reader035/viewer/2022062821/58ae91db1a28abdf068b5de5/html5/thumbnails/19.jpg)
Mapping the MetaphorFeature / Story
Asset
PrincipalPrincipal is
what you payinterest on
How?
Developer
Learning LearningLearning
Code
![Page 20: Delivering Technical Debt](https://reader035.vdocuments.site/reader035/viewer/2022062821/58ae91db1a28abdf068b5de5/html5/thumbnails/20.jpg)
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
![Page 21: Delivering Technical Debt](https://reader035.vdocuments.site/reader035/viewer/2022062821/58ae91db1a28abdf068b5de5/html5/thumbnails/21.jpg)
Paying DebtFeature / Story
Code
Developer
Learning LearningLearning
Learning LearningLearning Because“Person”is called“Person” Less
cognitiveresources
Consolidatelearning
(refactoring) Notemporalmappingneeded
![Page 22: Delivering Technical Debt](https://reader035.vdocuments.site/reader035/viewer/2022062821/58ae91db1a28abdf068b5de5/html5/thumbnails/22.jpg)
Unconsolidated Code in a TeamFeature / Story
Developer 1
Learning
Developer 2
Code
???
???
Developer 2pays 100%
interest
![Page 23: Delivering Technical Debt](https://reader035.vdocuments.site/reader035/viewer/2022062821/58ae91db1a28abdf068b5de5/html5/thumbnails/23.jpg)
Consolidated Code in a TeamFeature / Story
Developer 1
Learning
Developer 2
Code
Learning
???
Developer 2pays 0%interest
![Page 24: Delivering Technical Debt](https://reader035.vdocuments.site/reader035/viewer/2022062821/58ae91db1a28abdf068b5de5/html5/thumbnails/24.jpg)
Deliver your learningFeature / Story
Code Deliver
Kept internal
Code
Developer
Learning LearningLearning
Learning
![Page 25: Delivering Technical Debt](https://reader035.vdocuments.site/reader035/viewer/2022062821/58ae91db1a28abdf068b5de5/html5/thumbnails/25.jpg)
Deliver your learningFeature / Story
CodeDeliver
Code
Developer
Learning LearningLearning
Learning
![Page 26: Delivering Technical Debt](https://reader035.vdocuments.site/reader035/viewer/2022062821/58ae91db1a28abdf068b5de5/html5/thumbnails/26.jpg)
How?
Record it
Treat it likea feature
Prioritise,track, …
Hard
![Page 27: Delivering Technical Debt](https://reader035.vdocuments.site/reader035/viewer/2022062821/58ae91db1a28abdf068b5de5/html5/thumbnails/27.jpg)
Red Bin
Ability to distinguishthem fromfeatures
LEANmanufacturing
Place anyonecan put
Red Bin Items
![Page 28: Delivering Technical Debt](https://reader035.vdocuments.site/reader035/viewer/2022062821/58ae91db1a28abdf068b5de5/html5/thumbnails/28.jpg)
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
![Page 29: Delivering Technical Debt](https://reader035.vdocuments.site/reader035/viewer/2022062821/58ae91db1a28abdf068b5de5/html5/thumbnails/29.jpg)
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
![Page 30: Delivering Technical Debt](https://reader035.vdocuments.site/reader035/viewer/2022062821/58ae91db1a28abdf068b5de5/html5/thumbnails/30.jpg)
Why?
Honestdelivery
Projecthealth
indicator
Better clientrelationships
Embrace& addressyour debt
![Page 31: Delivering Technical Debt](https://reader035.vdocuments.site/reader035/viewer/2022062821/58ae91db1a28abdf068b5de5/html5/thumbnails/31.jpg)
Summary
Metaphor
Colourfulpast
Honestdelivery
Definewhat it means
![Page 32: Delivering Technical Debt](https://reader035.vdocuments.site/reader035/viewer/2022062821/58ae91db1a28abdf068b5de5/html5/thumbnails/32.jpg)
Thank you!Questions?
@brendonpaginate#DeliverTechnicalDebt