SlideShare a Scribd company logo
Why you should stop
using the generic term
Technical Debt
And start resolving specific problems instead!
by Oleksii Fedorov @ Pivotal
1
Why you should stop using the generic term Technical Debt
2
This code sucks!
Let me rewrite it to this
new JS framework!Is it really that
bad?
Why you should stop using the generic term Technical Debt
3
“We have so much technical debt!
We don’t even know how to start
fixing it!”
Why you should stop using the generic term Technical Debt
4
Why rewrite is 99.99999% a bad idea
• Business valuable features will be put on hold
• If not, then rewrite will have to “race” with the old
system. It is going to end up with more issues.
• Executing a good rewrite requires certain skills.
Are you sure your team has them?
Why you should stop using the generic term Technical Debt
5
Skills needed for a good rewrite
• Good, non-over-engineering, software design skill
• Skill for back-filling of tests for existing code
• Test-driven development skills
• Mastery of clean code
• etc.
Why you should stop using the generic term Technical Debt
6
Developer with such profile
• software design skill
• patient back-filling tests skill
• TDD skills
• Clean code
• etc.
Will not complain about
technical debt
Why you should stop using the generic term Technical Debt
7
They will just refactor code they touch
all the time, bit by bit
WHILE
delivering business-valuable
functionality
Why you should stop using the generic term Technical Debt
8
“So when should we do the rewrite?”
Why you should stop using the generic term Technical Debt
9
Almost never.
Why you should stop using the generic term Technical Debt
10
Make incremental changes towards
the goal all the time.
Why you should stop using the generic term Technical Debt
11
“How?!”
Why you should stop using the generic term Technical Debt
12
Ugh. I don’t
know.
So what is the issue
you are currently
facing?
Why you should stop using the generic term Technical Debt
13
It is just so
outdated
Why you should stop using the generic term Technical Debt
14
It is so
convoluted
Why you should stop using the generic term Technical Debt
15
Hundreds
of tests break on every
change
Why you should stop using the generic term Technical Debt
16
Somebody
else wrote this
Why you should stop using the generic term Technical Debt
17
This library is
taking more time than
saving us
Why you should stop using the generic term Technical Debt
18
I don’t like this
framework
Why you should stop using the generic term Technical Debt
19
<INSERT YOUR
OWN EXCUSE>
Why you should stop using the generic term Technical Debt
20
….
Why is that?
Why you should stop using the generic term Technical Debt
21
What should have
been a “1-pointer” turned out
to be a “3-pointer”
And how is that a
problem for us?
Why you should stop using the generic term Technical Debt
22
Whenever we touch
this module we deliver 10-20
bugs
And how is that a
problem for us?
Why you should stop using the generic term Technical Debt
23
Now we are talking!
bonus points if you could distinguish
complaints from real problems.
Why you should stop using the generic term Technical Debt
24
What just happened?
1. Talk about a specific problem at hand

(instead of a generic complaint/feeling)
2. Figure out the reason behind the problem

(5 WHYs)
3. Talk about real specific impacts of a problem

(e.g., unexpected complexity slowing team
down, screwing with estimates, harming
mental health of team members, etc.)
4. Start tracking all of the above
Why you should stop using the generic term Technical Debt
25
“I know which problems are serious.
Now what?”
Why you should stop using the generic term Technical Debt
26
Identify which problems are worth fixing
Why you should stop using the generic term Technical Debt
27
Wishlist
So this module, to
which product area it
belongs?
No need to fix it
now then
Why you should stop using the generic term Technical Debt
28
Hold on. It also
affects shopping cart
heavily!
Well. This IS a problem!
Let’s decouple them
Why you should stop using the generic term Technical Debt
29
“Product areas?”
Why you should stop using the generic term Technical Debt
30
Yep.

We need to think about these problems
through the lenses of Product as well.
Why you should stop using the generic term Technical Debt
31
Identify product areas that you have
Wishlist
Checkout
Shopping
cart
Offers
search/filter
And more…
Why you should stop using the generic term Technical Debt
32
How much more value business will gain
if it could work in Area X twice as fast?
Wishlist
Checkout
Shopping
cart
Offers
search/filter
And more…
1
4
5
5
Why you should stop using the generic term Technical Debt
33
On a horizon, how frequent business
wants to change Area X?
Wishlist
Checkout
Shopping
cart
Offers
search/filter
And more…
1
4
5
5
frequent
frequent
rare
maintenance
Why you should stop using the generic term Technical Debt
34
What problems do we have in the Area X
and how severe they are?
Offers
search/filter
4
frequent
Shopping
cart
5
frequent Checkout
5
rare
Wishlist
1
maintenance
• bad library Z
• flakey test suite
• etc.
• too coupled

with Wishlist
• low test

coverage
• etc.
• Filtering is
very slow
• Tests are
too coupled
• etc.
• Very long
methods
• etc.
Why you should stop using the generic term Technical Debt
35
Now you should prioritise these problems

And start scheduling them in iterations
Why you should stop using the generic term Technical Debt
36
And one last anecdote
Why you should stop using the generic term Technical Debt
37
BTW, today I’ve been
working on this feature for
checkout product area
Yeah, what’s
up with it?
I’ve split one of
the long methods while working
on it. Everybody on the team is
happy!
Why you should stop using the generic term Technical Debt
38
“And, most importantly

I’ve understood how Checkout works
much more than ever before!”
Why you should stop using the generic term Technical Debt
39
Let’s recap
1. Track specific problems, their WHYs, and
their impacts on team/business
2. Track importance of product areas
3. Be aware of how issues affect product areas
4. Prioritise most impactful problems (max ROI)
and schedule 1-2 for your next iteration
5. Refactor small issues “inline” while delivering
(Campsite rule: “Leave campsite cleaner
than you’ve found it”)
Why you should stop using the generic term Technical Debt
40
Thank you!

Q & A time!
Learn more about technical debt and more at
ThroughLensesOfCTO.com

More Related Content

PPTX
Performance testing mistakes newbies make
PPTX
Why unvalidated assumption is the enemy of good product
PDF
Joe Beale - Automation is What We Do
PPTX
Quick & easy problem solving tools
PDF
Solving Flaky Automated Tests Using Machine Learning
PPTX
SAMPLE SIZE – The indispensable A/B test calculation that you’re not making
PPTX
eMetrics London - The AB Testing Hype Cycle
PPT
Kens Scrum Presentation
Performance testing mistakes newbies make
Why unvalidated assumption is the enemy of good product
Joe Beale - Automation is What We Do
Quick & easy problem solving tools
Solving Flaky Automated Tests Using Machine Learning
SAMPLE SIZE – The indispensable A/B test calculation that you’re not making
eMetrics London - The AB Testing Hype Cycle
Kens Scrum Presentation

What's hot (20)

PPTX
PPTX
Condensed testing syrup - @OptimiseorDie @sydney sep 2011 - 4 years of testin...
PPTX
Top 15 reasons to choose qa testing as career
PDF
Solution validation best practices
PPTX
Problem solving overview
PDF
SXSW 2016 - Everything you think about A/B testing is wrong
PDF
Your A/B Tests are Lying to You
PDF
Your A/B Tests are Lying to You
PPTX
TestWorksConf: Experience exploratory testing
PPTX
Stop Wasting Time and Become More Productive
PPTX
In-depth problem solving tool
PPTX
Why do my AB tests suck? measurecamp
PDF
Validation Missteps Making Us Full Time Firefighters
PPTX
Lean responsive - Expanded
PDF
Test Driven Development – how it benefits business and teams alike
PDF
Craig Sullivan - Oh Boy! These A/B tests look like total bullshit! MKTFEST 2014
PPTX
Mobile presentation - Sydney Online Retailer - 26 Sep 2011
PPTX
Neverstop
PPTX
Advancing Testing Using Axioms
PDF
Why Your Selenium Tests are so Dang Brittle, and What to Do About It
Condensed testing syrup - @OptimiseorDie @sydney sep 2011 - 4 years of testin...
Top 15 reasons to choose qa testing as career
Solution validation best practices
Problem solving overview
SXSW 2016 - Everything you think about A/B testing is wrong
Your A/B Tests are Lying to You
Your A/B Tests are Lying to You
TestWorksConf: Experience exploratory testing
Stop Wasting Time and Become More Productive
In-depth problem solving tool
Why do my AB tests suck? measurecamp
Validation Missteps Making Us Full Time Firefighters
Lean responsive - Expanded
Test Driven Development – how it benefits business and teams alike
Craig Sullivan - Oh Boy! These A/B tests look like total bullshit! MKTFEST 2014
Mobile presentation - Sydney Online Retailer - 26 Sep 2011
Neverstop
Advancing Testing Using Axioms
Why Your Selenium Tests are so Dang Brittle, and What to Do About It
Ad

Similar to Why you should stop using the generic term “Technical Debt” and start resolving specific problems instead (20)

PDF
Lessons from replatforming and increasing conversion through content testing ...
PPTX
Manufacturing simulation
PDF
Startup Operating Systems
PDF
Seven Classic Startup Failure Modes
PDF
How to justify technical debt mitigations in Software Engineering
PDF
Greythorn Whiteboard Interview Guide
PDF
Mini-Training: Using root-cause analysis for problem management
PPTX
Rules of productivity
PDF
DevOps Year One
PPTX
How Software Developers Destroy Business Value.pptx
PPTX
Підтримка легасі-платформи. Погляд менеджера
PPTX
SOFTWARE TESTING TRAFUNDAMENTALS OF SOFTWARE TESTING.pptx
PDF
Lean Kanban India 2015 | Kanban - Myths or Facts | Mahesh Vardhrajan
PPTX
Session 3 - Solution interviews
PDF
Clean Code - 5
PPTX
5 Why Training Presentation for Industry
PPTX
Fixing the Problems in Your Operations Problem-Solving Methods
PPTX
Failing With Agile
PDF
Failing @ Scaling Agile? Don’t Panic! & Carry a Towel
PPTX
Stop! you're testing too much
Lessons from replatforming and increasing conversion through content testing ...
Manufacturing simulation
Startup Operating Systems
Seven Classic Startup Failure Modes
How to justify technical debt mitigations in Software Engineering
Greythorn Whiteboard Interview Guide
Mini-Training: Using root-cause analysis for problem management
Rules of productivity
DevOps Year One
How Software Developers Destroy Business Value.pptx
Підтримка легасі-платформи. Погляд менеджера
SOFTWARE TESTING TRAFUNDAMENTALS OF SOFTWARE TESTING.pptx
Lean Kanban India 2015 | Kanban - Myths or Facts | Mahesh Vardhrajan
Session 3 - Solution interviews
Clean Code - 5
5 Why Training Presentation for Industry
Fixing the Problems in Your Operations Problem-Solving Methods
Failing With Agile
Failing @ Scaling Agile? Don’t Panic! & Carry a Towel
Stop! you're testing too much
Ad

Recently uploaded (20)

PPTX
INTELLECTUAL PROPERTY LAW IN UGANDA.pptx
PDF
CISSP Domain 5: Identity and Access Management (IAM)
PDF
MANAGEMENT LESSONS FROM ANCIENT KNOWLEDGE SYSTEM-ARTHASHASTRA AND THIRUKKURAL...
PDF
Timeless Leadership Principles from History’s Greatest Figures by Alfonso Ken...
PDF
1_Corporate Goverance presentation topic
PPTX
Course Overview of the Course Titled.pptx
PPTX
Human Resource Management | Introduction,Meaning and Definition
PPTX
Empowering Project Management Through Servant Leadership - PMI UK.pptx
PDF
Features of Effective decision making in Management
PDF
The Sustainable Site: Boosting Productivity in Construction – Pipe Dream or P...
PPTX
Strategic Plan 2023-2024 Presentation.pptx
PPTX
_ISO_Presentation_ISO 9001 and 45001.pptx
PPTX
Five S Training Program - Principles of 5S
PPTX
BASIC H2S TRAINING for oil and gas industries
PPTX
TCoE_IT_Concrete industry.why is it required
PDF
Leveraging Intangible Assets Through Campus Entrepreneurship and Tech Transfer
PPTX
Supervisory Styles and When to Use Them!
PPT
Claims and Adjustment Business_Communication.pptx.ppt
PPTX
Concluding Session_Wrapup-India Jun 5 2024-Oct 5 2025 ZS.pptx
PPTX
Chapter Three for international political
INTELLECTUAL PROPERTY LAW IN UGANDA.pptx
CISSP Domain 5: Identity and Access Management (IAM)
MANAGEMENT LESSONS FROM ANCIENT KNOWLEDGE SYSTEM-ARTHASHASTRA AND THIRUKKURAL...
Timeless Leadership Principles from History’s Greatest Figures by Alfonso Ken...
1_Corporate Goverance presentation topic
Course Overview of the Course Titled.pptx
Human Resource Management | Introduction,Meaning and Definition
Empowering Project Management Through Servant Leadership - PMI UK.pptx
Features of Effective decision making in Management
The Sustainable Site: Boosting Productivity in Construction – Pipe Dream or P...
Strategic Plan 2023-2024 Presentation.pptx
_ISO_Presentation_ISO 9001 and 45001.pptx
Five S Training Program - Principles of 5S
BASIC H2S TRAINING for oil and gas industries
TCoE_IT_Concrete industry.why is it required
Leveraging Intangible Assets Through Campus Entrepreneurship and Tech Transfer
Supervisory Styles and When to Use Them!
Claims and Adjustment Business_Communication.pptx.ppt
Concluding Session_Wrapup-India Jun 5 2024-Oct 5 2025 ZS.pptx
Chapter Three for international political

Why you should stop using the generic term “Technical Debt” and start resolving specific problems instead

  • 1. Why you should stop using the generic term Technical Debt And start resolving specific problems instead! by Oleksii Fedorov @ Pivotal 1
  • 2. Why you should stop using the generic term Technical Debt 2 This code sucks! Let me rewrite it to this new JS framework!Is it really that bad?
  • 3. Why you should stop using the generic term Technical Debt 3 “We have so much technical debt! We don’t even know how to start fixing it!”
  • 4. Why you should stop using the generic term Technical Debt 4 Why rewrite is 99.99999% a bad idea • Business valuable features will be put on hold • If not, then rewrite will have to “race” with the old system. It is going to end up with more issues. • Executing a good rewrite requires certain skills. Are you sure your team has them?
  • 5. Why you should stop using the generic term Technical Debt 5 Skills needed for a good rewrite • Good, non-over-engineering, software design skill • Skill for back-filling of tests for existing code • Test-driven development skills • Mastery of clean code • etc.
  • 6. Why you should stop using the generic term Technical Debt 6 Developer with such profile • software design skill • patient back-filling tests skill • TDD skills • Clean code • etc. Will not complain about technical debt
  • 7. Why you should stop using the generic term Technical Debt 7 They will just refactor code they touch all the time, bit by bit WHILE delivering business-valuable functionality
  • 8. Why you should stop using the generic term Technical Debt 8 “So when should we do the rewrite?”
  • 9. Why you should stop using the generic term Technical Debt 9 Almost never.
  • 10. Why you should stop using the generic term Technical Debt 10 Make incremental changes towards the goal all the time.
  • 11. Why you should stop using the generic term Technical Debt 11 “How?!”
  • 12. Why you should stop using the generic term Technical Debt 12 Ugh. I don’t know. So what is the issue you are currently facing?
  • 13. Why you should stop using the generic term Technical Debt 13 It is just so outdated
  • 14. Why you should stop using the generic term Technical Debt 14 It is so convoluted
  • 15. Why you should stop using the generic term Technical Debt 15 Hundreds of tests break on every change
  • 16. Why you should stop using the generic term Technical Debt 16 Somebody else wrote this
  • 17. Why you should stop using the generic term Technical Debt 17 This library is taking more time than saving us
  • 18. Why you should stop using the generic term Technical Debt 18 I don’t like this framework
  • 19. Why you should stop using the generic term Technical Debt 19 <INSERT YOUR OWN EXCUSE>
  • 20. Why you should stop using the generic term Technical Debt 20 …. Why is that?
  • 21. Why you should stop using the generic term Technical Debt 21 What should have been a “1-pointer” turned out to be a “3-pointer” And how is that a problem for us?
  • 22. Why you should stop using the generic term Technical Debt 22 Whenever we touch this module we deliver 10-20 bugs And how is that a problem for us?
  • 23. Why you should stop using the generic term Technical Debt 23 Now we are talking! bonus points if you could distinguish complaints from real problems.
  • 24. Why you should stop using the generic term Technical Debt 24 What just happened? 1. Talk about a specific problem at hand
 (instead of a generic complaint/feeling) 2. Figure out the reason behind the problem
 (5 WHYs) 3. Talk about real specific impacts of a problem
 (e.g., unexpected complexity slowing team down, screwing with estimates, harming mental health of team members, etc.) 4. Start tracking all of the above
  • 25. Why you should stop using the generic term Technical Debt 25 “I know which problems are serious. Now what?”
  • 26. Why you should stop using the generic term Technical Debt 26 Identify which problems are worth fixing
  • 27. Why you should stop using the generic term Technical Debt 27 Wishlist So this module, to which product area it belongs? No need to fix it now then
  • 28. Why you should stop using the generic term Technical Debt 28 Hold on. It also affects shopping cart heavily! Well. This IS a problem! Let’s decouple them
  • 29. Why you should stop using the generic term Technical Debt 29 “Product areas?”
  • 30. Why you should stop using the generic term Technical Debt 30 Yep.
 We need to think about these problems through the lenses of Product as well.
  • 31. Why you should stop using the generic term Technical Debt 31 Identify product areas that you have Wishlist Checkout Shopping cart Offers search/filter And more…
  • 32. Why you should stop using the generic term Technical Debt 32 How much more value business will gain if it could work in Area X twice as fast? Wishlist Checkout Shopping cart Offers search/filter And more… 1 4 5 5
  • 33. Why you should stop using the generic term Technical Debt 33 On a horizon, how frequent business wants to change Area X? Wishlist Checkout Shopping cart Offers search/filter And more… 1 4 5 5 frequent frequent rare maintenance
  • 34. Why you should stop using the generic term Technical Debt 34 What problems do we have in the Area X and how severe they are? Offers search/filter 4 frequent Shopping cart 5 frequent Checkout 5 rare Wishlist 1 maintenance • bad library Z • flakey test suite • etc. • too coupled
 with Wishlist • low test
 coverage • etc. • Filtering is very slow • Tests are too coupled • etc. • Very long methods • etc.
  • 35. Why you should stop using the generic term Technical Debt 35 Now you should prioritise these problems
 And start scheduling them in iterations
  • 36. Why you should stop using the generic term Technical Debt 36 And one last anecdote
  • 37. Why you should stop using the generic term Technical Debt 37 BTW, today I’ve been working on this feature for checkout product area Yeah, what’s up with it? I’ve split one of the long methods while working on it. Everybody on the team is happy!
  • 38. Why you should stop using the generic term Technical Debt 38 “And, most importantly
 I’ve understood how Checkout works much more than ever before!”
  • 39. Why you should stop using the generic term Technical Debt 39 Let’s recap 1. Track specific problems, their WHYs, and their impacts on team/business 2. Track importance of product areas 3. Be aware of how issues affect product areas 4. Prioritise most impactful problems (max ROI) and schedule 1-2 for your next iteration 5. Refactor small issues “inline” while delivering (Campsite rule: “Leave campsite cleaner than you’ve found it”)
  • 40. Why you should stop using the generic term Technical Debt 40 Thank you!
 Q & A time! Learn more about technical debt and more at ThroughLensesOfCTO.com