SlideShare a Scribd company logo
What it is…
Phat Vu
#scrumbreakfast, Jan-2017
www.axon.vnfb.com/AxonActiveVietNam
1. What is technical debt
2. The cost
3. Good or bad
4. Suggestions on how to deal
5. Learn from you
AIM
Technical Debt
www.axon.vnfb.com/AxonActiveVietNam
3 mins Check-in
50 mins talk in Technical Debt
What it is
Metaphors
Cost
Bad or good
7 mins Hard choices game introduction
15 mins Break
25 mins Play the game
20 mins Talk in how to deal with the debt
10 mins + after
What is your experience?
Timeline
Technical Debt
www.axon.vnfb.com/AxonActiveVietNam
Check-in
• How are you today?
• Have you though about how you can buy a
house/car?
• Do you think (financial) debt is good or bad?
• How often do you prepare meals in your kitchen?
Technical Debt
www.axon.vnfb.com/AxonActiveVietNam
50 mins Talk in Technical Debt
What it is
Metaphors
Cost
Bad or good
Technical Debt
www.axon.vnfb.com/AxonActiveVietNam
Need…
Technical Debt
www.axon.vnfb.com/AxonActiveVietNamTechnical Debt
But,
www.axon.vnfb.com/AxonActiveVietNamTechnical Debt
www.axon.vnfb.com/AxonActiveVietNam
You have these?
Technical Debt
www.axon.vnfb.com/AxonActiveVietNamTechnical Debt
You love them?
www.axon.vnfb.com/AxonActiveVietNamTechnical Debt
is dangerous if the incurred interest and the debt itself are not payed
Financial Debt
www.axon.vnfb.com/AxonActiveVietNamTechnical Debt
is not always a bad thing. It lets us buy what we want or what we need and keep us live
at some level
Financial Debt
www.axon.vnfb.com/AxonActiveVietNam
If…
Technical Debt
You:
•Take loans if acceptable (no way
better)
•Having loans under control
•Have payment plan clearly
•Pay soon, in schedule (weekly,
monthly)
www.axon.vnfb.com/AxonActiveVietNamTechnical Debt
Do you know him?
www.axon.vnfb.com/AxonActiveVietNamTechnical Debt
Technical Debt
is a metaphor developed by Ward Cunningham in 1992
from
Financial Debt
(also known as design debt)
www.axon.vnfb.com/AxonActiveVietNamTechnical Debt
Technical Debt is
Very similar
to Financial Debt
www.axon.vnfb.com/AxonActiveVietNamTechnical Debt
“Technical Debt includes internal things that you choose not to
do now, but which will impede future development if left undone.
This includes deferred refactoring, but doesn’t include deferred
functionality”
What is Technical Debt?
Ward Cunningham
internal things : might architecture/design structure
impede: delay
deferred: postpone
www.axon.vnfb.com/AxonActiveVietNamTechnical Debt
“You have a piece of functionality that you need to add to your
system. You see two ways to do it, one is quick to do but is
messy – you are sure that it will make further changes harder in
the future. The other results in a cleaner design, but will take
longer to put in place”
What is Technical Debt?
Martin Fowler
www.axon.vnfb.com/AxonActiveVietNamTechnical Debt
A metaphor, NOT a theory or a scientific concept
Technical Debt...
www.axon.vnfb.com/AxonActiveVietNamTechnical Debt
The Kitchen Metaphor
Prepare dinner Enjoy with your friend soon A day after…
Have to prepare breakfastYour kitchen is mess A week later ???
www.axon.vnfb.com/AxonActiveVietNamTechnical Debt
The Kitchen Metaphor
Kitchen
Software System
Meals
New features
Cooking
Coding
(add, modify codebase)
Mess
www.axon.vnfb.com/AxonActiveVietNamTechnical Debt
Imagine that you have a project that has two potential options..
Decision making
Quick and dirty way,
get your features sooner, but make the
future changes very hard
Clean and smart way,
takes longer to implement but make changes
easier in the future
www.axon.vnfb.com/AxonActiveVietNamTechnical Debt
In development, releasing code as a quick and easy approach is like incurring
debt - it comes with the obligation of interest, which comes in the form of extra
work in the future.
Taking the time to refactor is equivalent to paying down principal
www.axon.vnfb.com/AxonActiveVietNamTechnical Debt
“Shipping first time code is like going into debt”
“It’s a question of pay me now or pay me later”
Ward Cunningham
www.axon.vnfb.com/AxonActiveVietNamTechnical Debt
Messy Code is not Technical Debt
www.axon.vnfb.com/AxonActiveVietNamTechnical Debt
“The ability to pay back debt [...] depends upon you
writing code that is clean enough to be able to
refactor as you come to understand your problem.”
Ward Cunningham
www.axon.vnfb.com/AxonActiveVietNamTechnical Debt
Technical debt is GOOD or BAD?
www.axon.vnfb.com/AxonActiveVietNamTechnical Debt
BAD
If you don’t pay the debt now (fix the code today) you will have to pay some
interest in the future (spend more time to fix the same code)
Re-build the whole codebase
Technical debt costs money, time and
effort to stakeholders, developers,
companies, even to economies
www.axon.vnfb.com/AxonActiveVietNamTechnical Debt
BAD
“Most companies have to spend 80% of their software development budget
maintaining code”
Aaron Erickson, Informit.com
“Technical debt is like smoking addiction. Once you start hacking your code,
the code asks for more. You never know what that will cost in the future.”
Lemi Orhan Ergin, Agilistanbul.com
“High amount of Technical Debt is #1 impediment to teams being agile”
Dan Rawsthorne
www.axon.vnfb.com/AxonActiveVietNamTechnical Debt
GOOD
• Most people borrow money when they start a business, and they hope that
the investment will pay off.
• House loan or a car loan, generally considered acceptable types of debt.
• With credit card, you can pay a week or a month later.
• Most people would agree that it’s absolutely fine to leave the kitchen a mess
for a little while.
• Similar, it’s OK to have technical debt for some period of time.
www.axon.vnfb.com/AxonActiveVietNamTechnical Debt
GOOD
• It is NOT some terrible monster that needs to be avoided.
• In software development, there is always a constant need to balance speed
and quality
• Some quality have to be sacrificed to release features within a
reasonable timeframe. Then, can get feedbacks soon.
• Shortcuts will be tasked as future projects (pay off)
www.axon.vnfb.com/AxonActiveVietNamTechnical Debt
GOOD
• Since there’s always someone who is cooking in the kitchen
(since developers add/modify/remove code all the time)
• There’s no such thing as software without technical debt
Actually
Question
• How long are we allowed to leave the kitchen in such a mess?
• There’s no one-size-fits-all answer
Prefer approach
• Before someone else wants to use the kitchen, clean it up and put
everything back in its place
• Before you move to the next feature or bug fix, make sure you already pay
off technical debt in the codebase.
www.axon.vnfb.com/AxonActiveVietNamTechnical Debt
Flavors of Technical Debt
• Design & Architectural Debt
• Testing Debt
• Documentation Debt
• Defect Debt
• Framework & 3rd
parties libraries Debt
www.axon.vnfb.com/AxonActiveVietNamTechnical Debt
Design & Architectural Debt
• Perhaps the most well-known type of technical debt, which is caused by
poor design and architecture
• Developers put bad code into codebase. Root causes:
• Copy-paste programming (duplications)
• The absence of design patterns
• Not following coding standards or best practices
• But why would developers — even the best ones — write bad code?
www.axon.vnfb.com/AxonActiveVietNamTechnical Debt
Design & Architectural Debt
• In theory, if you apply care to the quality, then you will
constantly have low technical debt.
• In reality, almost all development teams work under
pressure and at some point are forced to take
shortcuts that sacrifice the quality of their code
boost their short-term productivity to quickly deliver
customer features
www.axon.vnfb.com/AxonActiveVietNamTechnical Debt
Testing Debt
Lack of testing or poor testing quality. The most common patterns
• Complete absence of (automated) testing
• Tests that should run but don’t
• Tests that are unreliable because they randomly fail or take too long to
finish
• Mismatches between test scenarios and actual testing
• Outdated tests
• Too much time spending for regression testing
Writing software without testing is like participating in extreme sports without
wearing any protective gear.
www.axon.vnfb.com/AxonActiveVietNamTechnical Debt
Testing Debt
Automated, fast & correct testing encourage refactoring
www.axon.vnfb.com/AxonActiveVietNamTechnical Debt
Testing Debt
www.axon.vnfb.com/AxonActiveVietNamTechnical Debt
Documentation Debt
• Documentation is hard work
• Writing clean and readable code over comments and documentation
• Partially agree
• Things that need to be well documented and kept continuously up to date:
• API and common libraries documentation
• Requirements, user stories, and any other sources that describe the
system functionality (JIRA, Confluence, etc.)
• High-level design and architecture documentation
www.axon.vnfb.com/AxonActiveVietNamTechnical Debt
Defect Debt
Describes the known defects that are not yet fixed because:
• low priority
• low severity
• a known work-around
• rarely reproduced or are reproduced only under extreme or corner
cases
www.axon.vnfb.com/AxonActiveVietNamTechnical Debt
Framework & 3rd parties libraries Debt
• Not really suitable frameworks
• Outdated
• Complicated to implement, not flexible
• Libraries
www.axon.vnfb.com/AxonActiveVietNamTechnical Debt
Everyday Indicators of Technical Debt
“Don’t worry about the documentation for now”
“The only one who can change this code is Thomas”
“It’s ok for now but we’ll refactor it later.”
“ToDo/FixMe: this should be fixed before release”
“Let’s just copy and paste this part”
“I know if I touch that code everything else breaks”
“Let’s finish the testing in the next release”
“The release is coming up, so just get it done”
www.axon.vnfb.com/AxonActiveVietNam
25 mins Play the game
Technical Debt
www.axon.vnfb.com/AxonActiveVietNam
www.axon.vnfb.com/AxonActiveVietNam
Game rules
• The game may be played by 4 or 5 people
• The first player to reach END gets 5 points, second gets 3 points,
third gets 1 point
• When a player reaches End, he or she also gets 1 point for each tool card
• To enter the "Finish" cell the player should roll anything equal or greater than the
remaining squares
• The game ends when there is 1 player remaining on the board
• The player with the most points at the end of the game WINS
• When a player crosses a “hard choices” square, he or she must decide whether to go
over the shortcut bridge or whether to go the long way and try to collect one or more
tool cards
“hard choices”
square
www.axon.vnfb.com/AxonActiveVietNam
Short cut
Debt
www.axon.vnfb.com/AxonActiveVietNam
20 mins Talk in how to deal with the debt
I’ll suggest
You too ;)
Technical Debt
www.axon.vnfb.com/AxonActiveVietNamTechnical Debt
Management plan
Register & estimate new debts on technical debt backlog
www.axon.vnfb.com/AxonActiveVietNamTechnical Debt
Establish a debt payment plan
• When faced with different types of debt, where do we start?
• it depends on the team’s skill sets and level
• key is to put a plan in place prioritize and execute on it
• Minimal iteration debt payment
• half a day in a week
• every sprint
• Monitor the debt and keep it manageable
• Pay of the debt continuously
• calculate effort within tasks
• buffer tasks for refactoring 10% of the team's time
www.axon.vnfb.com/AxonActiveVietNamTechnical Debt
Lowest priority
Java class encrypt & decrypt password
It works
www.axon.vnfb.com/AxonActiveVietNamTechnical Debt
Assess existing debt
Inspect and assess the level of existing debt we have and also register it.
SonarQube helps us assess debt across multiple categories like duplication, rule
violation, code coverage, complexity, documentation
www.axon.vnfb.com/AxonActiveVietNamTechnical Debt
Assess existing debt
Wow, this module is
really bad. It’s going to
be very hard to make
any changes to it
Wow, this module is
really bad. It’s going to
be very hard to make
any changes to it
Bobby
Developer
Bruno
Product Owner
www.axon.vnfb.com/AxonActiveVietNamTechnical Debt
Assess existing debt
Bobby
Developer
Bruno
Product Owner
Hello Bruno, I think we should
take some time to refactor
this module in the next
release
Hello Bruno, I think we should
take some time to refactor
this module in the next
release
www.axon.vnfb.com/AxonActiveVietNamTechnical Debt
Assess existing debt
Bobby
Developer
Bruno
Product Owner
Why would we do that?
That would take a lot of
time and effort
Why would we do that?
That would take a lot of
time and effort
www.axon.vnfb.com/AxonActiveVietNamTechnical Debt
Assess existing debt
Bobby
Developer
Bruno
Product Owner
But if we don’t refactor it
soon, I have a gut feeling it’s
going to cause major
problems later
But if we don’t refactor it
soon, I have a gut feeling it’s
going to cause major
problems later
www.axon.vnfb.com/AxonActiveVietNamTechnical Debt
Assess existing debt
Bobby
Developer
Bruno
Product Owner
David is pretty smart,
and he’s usually right
about these kinds of
things
David is pretty smart,
and he’s usually right
about these kinds of
things
www.axon.vnfb.com/AxonActiveVietNamTechnical Debt
Assess existing debt
Bobby
Developer
Bruno
Product Owner
OK, I’ll put in the plan for
Manager the next release
OK, I’ll put in the plan for
Manager the next release
www.axon.vnfb.com/AxonActiveVietNamTechnical Debt
Before
•What is a good amount of debt?
• it depends on your appetite for risk
•Manage and monitor it and when we reach a certain threshold
• need to slow down on new features until we have our debt under control.
• negotiate with your PO
www.axon.vnfb.com/AxonActiveVietNamTechnical Debt
After
www.axon.vnfb.com/AxonActiveVietNamTechnical Debt
Establish a debt limit
•What is a good amount of debt?
• it depends on your appetite for risk
•Manage and monitor it and when we reach a certain threshold
• need to slow down on new features until we have our debt under control.
• negotiate with your PO
www.axon.vnfb.com/AxonActiveVietNamTechnical Debt
www.axon.vnfb.com/AxonActiveVietNamTechnical Debt
www.axon.vnfb.com/AxonActiveVietNam
Debt backlog
Conclusion
Interest
Pay off
Reliable
Debt limit
Technical debt
Metaphor
Financial debt
Kitchen metaphor
Messy code
Shortcut
Refactor
41/41
Strategy
Priority
Technical Debt
www.axon.vnfb.com/AxonActiveVietNam
10 mins + after
What is your experience?
Technical Debt

More Related Content

PPTX
PPTX
MOB PROGRAMMING
PPTX
[HCM Scrum Breakfast - April 17] Dysfunctional Scrum Roles
PPTX
[HCM Scrum Breakfast - June 2017] Distributed Team
PDF
Setup a new development team: Real-Life Experience. Speaker: Mr. Huy Nguyen
PDF
Real-life multiple scrum teams - Mr. Thong & Ms. Diem
PDF
Full stack developer with Scrum - Thanh Le & Khanh Vo
MOB PROGRAMMING
[HCM Scrum Breakfast - April 17] Dysfunctional Scrum Roles
[HCM Scrum Breakfast - June 2017] Distributed Team
Setup a new development team: Real-Life Experience. Speaker: Mr. Huy Nguyen
Real-life multiple scrum teams - Mr. Thong & Ms. Diem
Full stack developer with Scrum - Thanh Le & Khanh Vo

What's hot (20)

PDF
HCM Scrum Breakfast – The real life of Scrumban team
PDF
[HCM Scrum Breakfast] How to improve product quality in Scrum Team
PPTX
Human programming
PDF
Getting started with #Noestimates
PDF
Continuous Delivery - Mr. Vu Hong Phat
PPTX
The power of funny retrospectives - Speaker: Ms. Linh Pham
PPTX
Intro to Web Development with Microsoft Technologies
PDF
Don't lose revenue. Go viral with no downtime.
PDF
Wc miami 2013 beginner's workshop
PDF
FA102a assignment 5
PPTX
WordPress Management & Marketing Tools
PDF
Maintaining Retainers as a WordPress Developer
KEY
(For non-developers) HTML5: A richer web for everyone
PDF
It's the Little Things: Creating a Delightful WordPress Experience for Your C...
PDF
MaGIC Startup Academy Launch : Day 1 - MVP Prototyping In An Agile Environmen...
PPTX
How WPMaintain Improved Page Speed by 16%
PPTX
Webinar: You Are Too Cheap!
PPTX
MVP Design Hacks: Sprint 5
PDF
Agile Product Management
PPTX
How to Copy Pages & Posts in WordPress
HCM Scrum Breakfast – The real life of Scrumban team
[HCM Scrum Breakfast] How to improve product quality in Scrum Team
Human programming
Getting started with #Noestimates
Continuous Delivery - Mr. Vu Hong Phat
The power of funny retrospectives - Speaker: Ms. Linh Pham
Intro to Web Development with Microsoft Technologies
Don't lose revenue. Go viral with no downtime.
Wc miami 2013 beginner's workshop
FA102a assignment 5
WordPress Management & Marketing Tools
Maintaining Retainers as a WordPress Developer
(For non-developers) HTML5: A richer web for everyone
It's the Little Things: Creating a Delightful WordPress Experience for Your C...
MaGIC Startup Academy Launch : Day 1 - MVP Prototyping In An Agile Environmen...
How WPMaintain Improved Page Speed by 16%
Webinar: You Are Too Cheap!
MVP Design Hacks: Sprint 5
Agile Product Management
How to Copy Pages & Posts in WordPress
Ad

Viewers also liked (14)

PPTX
[HCM Scrum Breakfast] Agile estimation - Story points
PDF
Oikmel genera l-civilliability2015gr
PDF
Self Organization - Thang Nguyen
PDF
Scrum Misinterpretations
PDF
스크럼을 이용한 게임 개발
PDF
What makes a failed Retro - Muon Nguyen
PDF
[Scrum Breakfast] How to apply Lean and Kanban in your business - Speaker: Ph...
PDF
Build Your MVP
PDF
Scrum and kanban with jira
PDF
How to Build Your MVP
PDF
SCRUM on a page - by Axon Active Vietnam
PDF
Bài 1: Làm quen với ASP.NET - Giáo trình FPT - Có ví dụ kèm theo
PPT
EMPOWERMENT POWERPOINT
PPTX
ppt on empowerment
[HCM Scrum Breakfast] Agile estimation - Story points
Oikmel genera l-civilliability2015gr
Self Organization - Thang Nguyen
Scrum Misinterpretations
스크럼을 이용한 게임 개발
What makes a failed Retro - Muon Nguyen
[Scrum Breakfast] How to apply Lean and Kanban in your business - Speaker: Ph...
Build Your MVP
Scrum and kanban with jira
How to Build Your MVP
SCRUM on a page - by Axon Active Vietnam
Bài 1: Làm quen với ASP.NET - Giáo trình FPT - Có ví dụ kèm theo
EMPOWERMENT POWERPOINT
ppt on empowerment
Ad

Similar to [Da Nang Scrum Breakfast] Dealing with Technical Debt (20)

PDF
Managing technical debt
PPTX
Technical debt
PPTX
Technical Debt
PPT
Managing Technical Debt - by Michael Hall
PPTX
Technical stories v1.2
PDF
Beyond Technical Debt: Unconventional techniques to uncover technical and soc...
PPT
Technical Debt | PMI - ACP Webinar Series | iZenBridge
PDF
How can agile help you in clearing the technical debt
PPTX
Citrix Troubleshooting 101
PPT
Database repair
PPTX
Citrix troubleshooting 101
PPTX
Tackling technical debt
PDF
How to justify technical debt mitigations in Software Engineering
PDF
Content as a Service: What to Know About Decoupled CMS
PDF
Software architecture for developers by Simon Brown
PPT
MS PowerPoint format
PDF
Lessons learned failing to manage technical debt - PMDay Autumn Kyiv 2018
PDF
Antonio cobo
PDF
How to improve the quality of your application
PDF
5 Steps To Deliver The Fastest Mobile Shopping Experience This Holiday Season
Managing technical debt
Technical debt
Technical Debt
Managing Technical Debt - by Michael Hall
Technical stories v1.2
Beyond Technical Debt: Unconventional techniques to uncover technical and soc...
Technical Debt | PMI - ACP Webinar Series | iZenBridge
How can agile help you in clearing the technical debt
Citrix Troubleshooting 101
Database repair
Citrix troubleshooting 101
Tackling technical debt
How to justify technical debt mitigations in Software Engineering
Content as a Service: What to Know About Decoupled CMS
Software architecture for developers by Simon Brown
MS PowerPoint format
Lessons learned failing to manage technical debt - PMDay Autumn Kyiv 2018
Antonio cobo
How to improve the quality of your application
5 Steps To Deliver The Fastest Mobile Shopping Experience This Holiday Season

More from Scrum Breakfast Vietnam (20)

PPTX
[Scrum Breakfast DN] Is it possible to make 100% Unit Test coverage for your ...
PDF
Zero to hero in agile automation testing
PDF
Retrospective Toolbox - HCMC Scrum Breakfast - 30/11/2019
PDF
UI/UX Design in Agile process
PPTX
Team building in the Infinite game - HCMC Scrum Breakfast - 28/09/2019
PPTX
Design Thinking in Solving Problem - HCMC Scrum Breakfast - July 27, 2019
PPTX
Make your Scrum team great again - DN Scrum Breakfast - June 21, 2019
PPTX
Working as a remote team - HCM Scrum Breakfast - May 25, 2019
PPTX
Reactive programming by spring webflux - DN Scrum Breakfast - Nov 2018
PPTX
Benefits of BPMN in Software Development - DN Scrum Breakfast - September 29,...
PPTX
CSS Flexbox and Grid: The future of website layouts - DN Scrum Breakfast - Au...
PPTX
Automation Testing in Agile - HCM Scrum Breakfast - July 2018
PPTX
[DN Scrum Breakfast] API Automation Testing Using Retrofit & Cucumber
PPTX
[HCM Scrum Breakfast - April 2018] Teamwork: The Leader Job (Pt.1)
PDF
[DN Scrum Breakfast] Effective Cloud Computing
PPTX
[HCM Scrum Breakfast - January 2018] ElasticSearch In Action
PPTX
[DN Scrum Breakfast] Automation E2E Testing with Chimp Framework and WebdriverIO
PPTX
[DN Scrum Breakfast] Scrum Master, do we really need one_by Nam Dang_Mar2016
PPTX
[DN Scrum Breakfast] Protractor: E2E Testing for AngularJS (by Thuy Nguyen)
PPTX
[Da Nang Scrum Breakfast] Angular Tour
[Scrum Breakfast DN] Is it possible to make 100% Unit Test coverage for your ...
Zero to hero in agile automation testing
Retrospective Toolbox - HCMC Scrum Breakfast - 30/11/2019
UI/UX Design in Agile process
Team building in the Infinite game - HCMC Scrum Breakfast - 28/09/2019
Design Thinking in Solving Problem - HCMC Scrum Breakfast - July 27, 2019
Make your Scrum team great again - DN Scrum Breakfast - June 21, 2019
Working as a remote team - HCM Scrum Breakfast - May 25, 2019
Reactive programming by spring webflux - DN Scrum Breakfast - Nov 2018
Benefits of BPMN in Software Development - DN Scrum Breakfast - September 29,...
CSS Flexbox and Grid: The future of website layouts - DN Scrum Breakfast - Au...
Automation Testing in Agile - HCM Scrum Breakfast - July 2018
[DN Scrum Breakfast] API Automation Testing Using Retrofit & Cucumber
[HCM Scrum Breakfast - April 2018] Teamwork: The Leader Job (Pt.1)
[DN Scrum Breakfast] Effective Cloud Computing
[HCM Scrum Breakfast - January 2018] ElasticSearch In Action
[DN Scrum Breakfast] Automation E2E Testing with Chimp Framework and WebdriverIO
[DN Scrum Breakfast] Scrum Master, do we really need one_by Nam Dang_Mar2016
[DN Scrum Breakfast] Protractor: E2E Testing for AngularJS (by Thuy Nguyen)
[Da Nang Scrum Breakfast] Angular Tour

Recently uploaded (20)

PDF
Odoo Companies in India – Driving Business Transformation.pdf
PPTX
Operating system designcfffgfgggggggvggggggggg
PDF
AI in Product Development-omnex systems
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PPTX
L1 - Introduction to python Backend.pptx
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PPTX
ManageIQ - Sprint 268 Review - Slide Deck
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PDF
Softaken Excel to vCard Converter Software.pdf
PPTX
Transform Your Business with a Software ERP System
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PPT
Introduction Database Management System for Course Database
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PPTX
Introduction to Artificial Intelligence
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
Odoo Companies in India – Driving Business Transformation.pdf
Operating system designcfffgfgggggggvggggggggg
AI in Product Development-omnex systems
How to Migrate SBCGlobal Email to Yahoo Easily
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Upgrade and Innovation Strategies for SAP ERP Customers
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
L1 - Introduction to python Backend.pptx
VVF-Customer-Presentation2025-Ver1.9.pptx
ManageIQ - Sprint 268 Review - Slide Deck
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
Softaken Excel to vCard Converter Software.pdf
Transform Your Business with a Software ERP System
Navsoft: AI-Powered Business Solutions & Custom Software Development
Introduction Database Management System for Course Database
2025 Textile ERP Trends: SAP, Odoo & Oracle
Introduction to Artificial Intelligence
How to Choose the Right IT Partner for Your Business in Malaysia

[Da Nang Scrum Breakfast] Dealing with Technical Debt

Editor's Notes

  • #3: Software is eating the world You can find cars, phones, houses, aircrafts, and lot of devices we use in our everyday lives that are controlled by some type of software system. Now that everyone is aware that software has indeed eaten the world, we need to understand why technical debt is eating software http://thinkapps.com/blog/development/technical-debt-definition-importance/
  • #10: Anyone who are using Credit card?
  • #12: Financial debt is a silent killer Financial debt hides problems and leads to other problems
  • #21: If you Google the term “technical debt,” I’m sure you will find many good definitions, descriptions, and explanations. Let me explain the concept of technical debt using a kitchen metaphor.   Imagine that you are an excellent cook. It’s Friday night and you have invited some friends to your place for a dinner party. You want to prepare a delicious meal. But, at the same time, you want to spend as much time as you can with your guests. When dinner is ready to be served, you decide to leave the kitchen without cleaning up and go back to your friends. The next morning, you wake up and want to make a quick breakfast before starting your day. The kitchen is a mess from the previous night’s meal. But you woke up late and don’t want to lose the whole day by doing a deep clean. http://thinkapps.com/blog/development/technical-debt-definition-importance/
  • #29: The big difference, however, is that financial debt is usually relatively stable, whereas technical debt increases exponentially over time.
  • #31: That’s an example of how debt can be a good thing
  • #32: http://logz.io/blog/technical-debt/ https://www.excella.com/insights/good-technical-debt-vs-bad-technical-debt http://thinkapps.com/blog/development/technical-debt-definition-importance/
  • #33: There’s no one-size-fits-all answer. I can’t give you a specific number in hours or days or even weeks.
  • #36: The higher the quality, the lower the technical debt that you have to pay and vice versa. This choice usually allows teams to run a 100m sprint and boost their short-term productivity to quickly deliver customer features. If they don’t get back as soon as possible to improve the quality, however, future changes that they will need to make to that part of the code will be more expensive. And the next time they have to fix something in the code within a tight deadline, they will be imprisoned again in the same cell. They will not have the time to properly refactor the code and will add some more technical debt. And it becomes a vicious cycle that never ends.
  • #37: Test suites are the safety pillow for every software system Increase in testing If the team does the same tests again and again on every release or testing takes too much time, the debt seems to be in critical level.
  • #40: Developers sometimes seem to consider documentation to be hard work Partially agree with those who prefer writing clean and readable code rather than comments and documentation But, that is only one side of the coin. You don’t need to keep every little piece of the system updated but a document presenting the overall architecture and possible integrations should always be available Knowledge debt, only 1 person know a feature/implementation deeply
  • #41: Give example, admin tool Last but not least, there is a type of technical debt known as defect debt. Defect debt describes the known defects that are not yet fixed because they are low priority, low severity, or there’s a known work-around. Some other cases include defects that have been reported but are rarely reproduced or are reproduced only under extreme or corner cases. Sometimes defect debt is computed as part of the design debt. But in some cases, it’s better to have a clear picture of the defect debt on its own, such as when you need to make important decisions about the future of a product.
  • #49: The first step is to register our debt. Whenever we make a decision to take a shortcut or a quick and dirty approach, we need to log our decision and add it to our technical debt backlog, along with an estimate of how long it would take to fix. The estimate of course only makes sense if we are going to pay the debt off immediately. Usually, the longer we wait, the longer it will take to apply the fix and our initial estimate becomes invalid. Our technical debt register provides visibility into the prudent and deliberate debt decision we are making and when we plan to pay them back.
  • #50: When faced with different types of debt, where do we start? Once again, it depends. Does the team know how to write tests to increase code coverage? Does the team know how to reduce complexity? If not, come up with a training and coaching plan. Does the team understand the rules they are violating? If so, start there. How about removing duplication and refactoring? Where to start is going to depend on the team’s skill sets and level, but the key is to put a plan in place and execute on it. Don’t quickly jump to the most complex class. Remember, there are long-term debts and short-term debts. We want to first reduce our short-term debt which is usually like credit card debt. This kind of debt has the highest interest rate. In code, this means we want to tackle first the classes that are constantly changing the most. The more changes we make the more interest we pay. If we have a class with no test coverage at all or one that is very complex but is never or rarely modified, we need to leave it alone for now. Consider it a low-interest debt and focus on the higher interest debts first.
  • #52: What about debt in our existing code base? And what about the inadvertent debt that we might be piling on without knowing it? For that, we have to inspect and assess the level of existing debt we have and also register it. Luckily, there are tools that help us do that. SonarQube helps us assess debt across multiple categories like duplication, rule violation, code coverage, complexity, documentation, etc… and provides us with multiple ways to visualize the debt and plan on how to pay it back
  • #61: What about debt in our existing code base? And what about the inadvertent debt that we might be piling on without knowing it? For that, we have to inspect and assess the level of existing debt we have and also register it. Luckily, there are tools that help us do that. SonarQube helps us assess debt across multiple categories like duplication, rule violation, code coverage, complexity, documentation, etc… and provides us with multiple ways to visualize the debt and plan on how to pay it back