SlideShare a Scribd company logo
1 of 55
MANAGING
TECHNICAL
DEBT
Shortcuts that save money
and time today can cost you
down the road

Presented by:
Dr. Hassan Amin
About the Instructor
Introduction/Course Description


Introduction
 Introductory

notes

 Introductory

notes

 Introductory

notes
About Technical Debt
Ward Cunningham proposed the concept of
technical debt in 1992.
Technical debt is acquired when engineers take
shortcuts that fall short of best practices, such
as:
 Sneaking around an abstraction because it is
too hard (or impossible) to figure how to ―do it
right‖
 Skipping on documentation (both in the code
and external documentation)
 Using an obscure or incomplete error
message because it’s just too hard to create
something more informative
What is Technical Debt








Implementing code using a simple but slow
algorithm even though they know that a better
algorithm will be needed in production
using void* when you really should have
created an appropriate union*
Skimping on good security practices
Not writing unit test cases
You know refactoring is required, because
 Bad

Smells of Code
 Bad Smells of Design
About Technical Debt




Technical debt may also be taken on
intentionally as a strategy to save time or
money
Not all technical debt is bad. Using a simple
but slow algorithm in a prototype can be
exactly the correct path, as long as you know
how to update the code before it ships.
About Technical Debt
That means:
 Allowing time in the schedule
 Making sure the issue is tracked so it doesn’t
get lost in the shuffle
 Knowing when you implement the code that a
good algorithm actually does exist that will
work in this instance
 and trusting that management will support you.
Comparison with
Financial Debt
Properties of Financial Debt




Repayment is a must
It is paid back with interest
Inability to repay means that there is a very
high cost, be it declaring bankruptcy, losing
your house
Technical debt (Similarities)






You generally do have to plan pay back
strategy (i.e., rewrite the code or otherwise fix
the problem)
―interest‖ is accrued every time you or anyone
else (support-desk workers, future
programmers, customers, etc.) working with
your system is delayed because of bugs,
performance problems, time spent researching
what has gone wrong, etc.
Failure to fix problems can result in the utter
collapse of a system—the customer gives up
and goes elsewhere, the system becomes so
slow and brittle that it has to be rewritten from
scratch, and so on.
Technical Debt (Differences)
The person who takes on technical debt isn’t
necessarily the one who has to pay it off:
 Generally developers do not maintain their
own code.
 Many time end users have to pay.
This gives the initial developer little incentive to
do the job right the first time unless such an
incentive is explicitly created by Project Manager
and Product owner .
Paying Back Technical Debt

The cost of paying back technical debt
comes in the form of the engineering
time it takes to rewrite or refactor the
code or otherwise fix the problem.
Technical debt (Differences)






Unlike financial debt, technical debt almost
never has to be paid off in its entirety.
Most (probably all) production systems have
bugs/shortcomings that don’t have significant
impact on the usability or long-term
maintainability of the final system.
The problem is that it can be difficult to know
in advance which debts will ultimately have the
highest cost.
Variables in Engineering


Variables are:
Time
 Functionality
 Resources
 Debt









Commonly debt is the free variable in the equation.
Debt can seem ―free‖ at first, but technical debt
tends to build on itself.
Debt involves interest in the form of increased effort
to maintain and extend the system.
So as you take on debt, it gets harder and takes
longer to do maintenance and extension.
Realms of Technical Debt
Technical debt has much wider implications:
 Avoiding a disk-array upgrade is a tradeoff between
technical debt and financial costs.
 Failure to consider power and cooling requirements
when adding new, hotter equipment to a machine
room is a debt.
 Failure to automate a simple-but-tedious manual
process is a debt.
 Systems administrators who have neither documented
the systems they support nor trained co-workers
before going on vacation are another example.
 Having parts of systems that are understood by only
one person is another form of debt.
Managing your Debt
Introduction
Technical debt is inevitable. The reality is that
requirements always change.
You can manage technical debt in the following
ways:
 Agile programming
 Documentation
 System security
 Release cycle management
Agile Programming




It is often better to have a working prototype
(even though it isn’t complete or perfect) so
that you and the customers can start gaining
experience with the system.
This is the philosophy behind Agile
programming, which accepts some technical
debt as inevitable but also mandates a ―plan
for change‖.
Documentation




Failure to write the documentation (both internal
and external) for the initial prototype may be a
good tradeoff, but the longer it goes the harder it
is to write.
Human memory is transient, and if you show
most people code they wrote a year ago they will
have to study it to remember why they did it that
way.
System Security






Some forms of technical debt are so expensive
that they should be avoided entirely whenever
possible.
Security is an area where taking shortcuts can
lead to disaster.
Always have passwords and other security
checks in place.
Release Cycle Management






The modern trend to ―release early and often,‖
especially in the context of web-based services,
has made it easier to take on technical debt and
still easier to resolve it.
When well-managed, taking on debt earlier allows
you to release more functionality earlier, allowing
immediate feedback from customers, resulting in
a product that is more responsive to user needs.
If that debt is not paid off promptly, however, it
also compounds more quickly, and the system
can bog down at a truly frightening rate.
Technical Debt - Originators
Not all technical debt is the result of programmer
laziness.
 Management all too often aids and abets this
problem.
 Marketing departments often encourage
engineering to move on to the next great thing
rather than spending the time necessary to
consolidate, clean up, and document the
existing system.
An Agile Approach to
Reduce Technical Debt
Introduction




Agile development methods and principles have
lent visibility to technical debt.
Different factors influencing the way agile
development teams tackle technical debt are:
Developers know about technical debt and are aware
that it is important to face this problem.
 It’s not clear who is responsible for the reduction of
technical debt: the team, IT leads, product owner, or
the scum master
 It’s difficult to plan the work and define a strategy to
reduce technical debt because it is not a part of the
regular development process which mainly focuses on
implementing features.









Product Owner often doesn’t understand the need
and benefits of reducing technical debt and don’t
consider or allow technical projects / stories in
their backlog and release plan.
Problems and goals regarding technical debt are
neither structured nor documented.
At best the things to do are quite clear among
team members and partly exist in fragmented
documentations.
But it could also be worst case that topic owners
left the company and took all their knowledge and
expertise with them.
Here is a pragmatic approach that allows to
understand and reduce the existing debt in an
agile way (iterative, prioritized, focused).
 Step 1: Involve the Product Owner and
―promote‖ him to be the sponsor of technical
debt reduction.
 Step 2: Inventory and structure known
technical debt
 Step 3: Agile prioritization and estimation of
the work




Step 4: Analysis of the data and development
of the right strategy.
Step 5: Integration into the existing
development process.
Involve the Product Owner
Step 1: Involve the Product Owner and
“Promote” him to be the sponsor of technical
debt reduction.
 Give your product owner the guarantee that
growth of the product will stay the most
important part – but not just in a short team
(Performance) but also in a long term (Health)
manner.
 Present different options of how to reduce
technical debt to him and involve him in
discussion to find the best approaches.
Inventory and Structure Known
Debt
Step 2: Inventory and Structure Known
Technical Debt
It’s about extracting knowledge about the systems
from the heads to develop a common picture of
existing technical problems.
 Write the names / identifiers of all applications and
modules you own on cards.
 Pin these cards on a whiteboard.
 Extracted to-do’s (to solve existing problems) from
all documentation media you use (wiki, jira,
confluence, code documentation, paper), write
them on post-its and stick them next to the
application name it belongs to.
Every team member is responsible to complete,
restructure, and correct the board during this period
so that you can go on with a round portfolio of the
existing debt in the system.
Prioritization & Estimation of
Work
Step 3: Agile Prioritization and Estimation of
the Work
 Now a repayment plan is needed.
 The goal is to find good hints for defining a
strategy to reduce or even remove the existing
debt in an effective way.
 Start by establishing two abstract units that are
somehow semantically based on concrete
dimensions


On Y axis:
 TechDollar

for the size of repayment for each
item, which is in sum the gross amount of debt
you have (1, 5, 20, 50, 200).
 This number doesn’t relate to the real costs or
benefits, it is just an abstract number that allows
you to compare items with each other and to
generate a feeling about how big the technical
debt is.


On the X axis:
 Animal

Sizes (later mapped to story points) for
the size / effort of each item. (ant = 1, hamster =
3, dog = 8, donkey = 13, elephant = 20).
 Again this number does not relate to any real
number but allows you to compare items with
each other without handling all the complexity
behind each item.




First order the items based on the y axis using
tech dollar.
Compare items with each other and ask
questions like ―Compared to item X how much
of your pain would be gone after finishing item
Y?


In the second step, distribute the items of each
row (benefit) among the animal sizes. ―How
big is item X compared to Y? How long does it
take? How complex is it? How uncertain is the
field?…‖




At the end of this exercise, you will have a
matrix with ToDos, i.e. technical stories, that
are understood by each team member.
The positioning in the matrix gives you good
hints to develop a strategy for the reduction of
technical debt in the next step.
Analysis
Step 4: Analysis of the data and development
of the right strategy.
 First we created stories marked as
―TechnicalDebtItems‖ in JIRA for each task we
defined.
 For bringing those items into a prioritized order
and for drawing the right conclusions, create a
chart to visualize how the efforts relate to the
payment and vise versa.
This is the result:


The Y-axis shows the gross debt. The red line
visualizes the amount of repayment distributed
over the effort. The distribution of efforts on the
X-axis on the other hand results from the sum
of effort / story points per point category.
Earlier, the team only saw the big blockers and
the high amount of different tasks without any
order or prioritization. Now we have found a
way to focus on each next step without losing
the whole thing out of focus.
This overview is also a great tool for working
with the product owner and other stakeholders
because it gives a good transparency regarding
technical debt.
Integration
Step 5: Integration into the existing
development process.
 The longest run the team must go is to actually
work on the items, reduce the debt and
transform a buggy system into a sustainable,
solid platform.
 You now have a debt burndown which shows
the payment over time (calendar weeks).
 The team and the product owner can also
agree on including bigger technical stories (> 3
points) into the feature planning and
development process.
Smaller stories (1-3 points) will be done
spontaneously by the developers using their
20% tech and innovation time.
The defined portfolio of technical stories is not
static.
 Developing new stuff always means new debt.
 Working with legacy code often results in
finding code that is far from being structured
well.








The team may agree on collecting such things
on a wiki page when it’s not a bug or critical
blocker.
Collected items can be reviewed in a quarterly
review and if necessary added to the gross
debt.
Finding and discussing improvements to the
process can be part of regular retrospectives
the team holds every other week.
In the quarterly review, the process and results
can be inspected in detail by the team.
Cost of Debt from
Various Perspectives
Technical debt affects everyone, but in different
ways.
Customers

Customers are the ultimate victims.

When the mobile network goes out, when
they can’t get their work submitted on time,
when their company loses business because
they are fighting the software, they pay.





Help desk
Help-desk personnel suffer from almost
every aspect of technical debt: poorly
designed interfaces, bad or nonexistent
documentation, slow algorithms, etc.
Customers get more ornery the longer it
takes to fix their problem, while the desk often
has no direct access to the people who can
solve the problem.


Operations
 In

a service-oriented environment the operations
people spend much of their time paying for
decisions that other people made without
consulting them.
 Sometimes they get to look at the code,
sometimes not.
 In any case they get to look at the
documentation—if it exists.


Engineers
 Doing

a quick, highly functional initial
implementation makes the programmer look good
at the cost of hampering engineers who join the
party later.
 Such super-stud programmers may not even
realize they are taking on the debt if they have
limited experience maintaining mature code.


Marketing
 Marketing

people can often be the ones pushing
hardest for short product development times
because they are pressured by sales and the
customers to provide new functionality as quickly
as possible.
 When that new functionality doesn’t work properly
in the field, however, they are also the ones on
the wrong side of the firing line.


Management
 Bad

management often favors a single
department to the detriment of others.
 If the favored department is marketing or sales,
management will be inclined to take on technical
debt without understanding the costs.
 Management also pays a price.
Conclusion






Technical debt comes from a multitude of
causes, often has difficult-to-predict effects,
and usually involves a gamble about what will
happen in the future.
Much of managing technical debt is the same
as risk management, and similar techniques
can be applied.
If technical debt isn’t managed, then it will tend
to build up over time, possibly until a crisis
results.
Questions/Discussions
Learn More
Thank you

More Related Content

What's hot

Helping you to Understand Maintenance Management Software
Helping you to Understand Maintenance Management SoftwareHelping you to Understand Maintenance Management Software
Helping you to Understand Maintenance Management SoftwareChris Lee
 
Why care about technical debt?
Why care about technical debt?Why care about technical debt?
Why care about technical debt?Tushar Sharma
 
Todd williams
Todd williamsTodd williams
Todd williamsNASAPMC
 
Technical Debt - PHPBenelux
Technical Debt - PHPBeneluxTechnical Debt - PHPBenelux
Technical Debt - PHPBeneluxenaramore
 
Business Continuation - The basics according to John Small 2014-02-21
Business Continuation - The basics according to John Small 2014-02-21Business Continuation - The basics according to John Small 2014-02-21
Business Continuation - The basics according to John Small 2014-02-21Business As Usual, Inc.
 
Project management
Project managementProject management
Project managementDavid Terry
 
St josephs project management
St josephs project managementSt josephs project management
St josephs project managementDavid Terry
 
Breaking Through the Roadblocks of a New ELM Implementation eBook
Breaking Through the Roadblocks of a New ELM Implementation eBookBreaking Through the Roadblocks of a New ELM Implementation eBook
Breaking Through the Roadblocks of a New ELM Implementation eBookJason Emanis
 
Lecture-3: Traditional Approaches to System Development and Enterprise Engine...
Lecture-3: Traditional Approaches to System Development and Enterprise Engine...Lecture-3: Traditional Approaches to System Development and Enterprise Engine...
Lecture-3: Traditional Approaches to System Development and Enterprise Engine...Mubashir Ali
 
Real world risks for all Knowledge areas of PMBOK
Real world risks for all Knowledge areas of PMBOKReal world risks for all Knowledge areas of PMBOK
Real world risks for all Knowledge areas of PMBOKKhushboo Wadhwani
 
Service now vulnerability patching_move
Service now vulnerability patching_moveService now vulnerability patching_move
Service now vulnerability patching_moveSubrat Kumar Dash
 
Accounting System Design and Development - System Planning and Development
Accounting System Design and Development - System Planning and Development Accounting System Design and Development - System Planning and Development
Accounting System Design and Development - System Planning and Development HelpWithAssignment.com
 
3.11 training and supporting users
3.11 training and supporting users3.11 training and supporting users
3.11 training and supporting usersmrmwood
 
Domain-level Technical Debt - "Domain Debt"
Domain-level Technical Debt - "Domain Debt"Domain-level Technical Debt - "Domain Debt"
Domain-level Technical Debt - "Domain Debt"QAware GmbH
 
Agile Software Consulting
Agile Software ConsultingAgile Software Consulting
Agile Software ConsultingVictor Olex
 
Vistacom in the Facilities Management Journal (September-October 2015)
Vistacom in the Facilities Management Journal (September-October 2015)Vistacom in the Facilities Management Journal (September-October 2015)
Vistacom in the Facilities Management Journal (September-October 2015)Destiny Heimbecker
 

What's hot (20)

Is project failure
Is project failureIs project failure
Is project failure
 
Helping you to Understand Maintenance Management Software
Helping you to Understand Maintenance Management SoftwareHelping you to Understand Maintenance Management Software
Helping you to Understand Maintenance Management Software
 
Why care about technical debt?
Why care about technical debt?Why care about technical debt?
Why care about technical debt?
 
Todd williams
Todd williamsTodd williams
Todd williams
 
Technical Debt - PHPBenelux
Technical Debt - PHPBeneluxTechnical Debt - PHPBenelux
Technical Debt - PHPBenelux
 
Spm intro
Spm introSpm intro
Spm intro
 
Business Continuation - The basics according to John Small 2014-02-21
Business Continuation - The basics according to John Small 2014-02-21Business Continuation - The basics according to John Small 2014-02-21
Business Continuation - The basics according to John Small 2014-02-21
 
Why it project fail
Why it project failWhy it project fail
Why it project fail
 
Project management
Project managementProject management
Project management
 
St josephs project management
St josephs project managementSt josephs project management
St josephs project management
 
Breaking Through the Roadblocks of a New ELM Implementation eBook
Breaking Through the Roadblocks of a New ELM Implementation eBookBreaking Through the Roadblocks of a New ELM Implementation eBook
Breaking Through the Roadblocks of a New ELM Implementation eBook
 
Lecture-3: Traditional Approaches to System Development and Enterprise Engine...
Lecture-3: Traditional Approaches to System Development and Enterprise Engine...Lecture-3: Traditional Approaches to System Development and Enterprise Engine...
Lecture-3: Traditional Approaches to System Development and Enterprise Engine...
 
Real world risks for all Knowledge areas of PMBOK
Real world risks for all Knowledge areas of PMBOKReal world risks for all Knowledge areas of PMBOK
Real world risks for all Knowledge areas of PMBOK
 
Service now vulnerability patching_move
Service now vulnerability patching_moveService now vulnerability patching_move
Service now vulnerability patching_move
 
Accounting System Design and Development - System Planning and Development
Accounting System Design and Development - System Planning and Development Accounting System Design and Development - System Planning and Development
Accounting System Design and Development - System Planning and Development
 
3.11 training and supporting users
3.11 training and supporting users3.11 training and supporting users
3.11 training and supporting users
 
Domain-level Technical Debt - "Domain Debt"
Domain-level Technical Debt - "Domain Debt"Domain-level Technical Debt - "Domain Debt"
Domain-level Technical Debt - "Domain Debt"
 
Agile Software Consulting
Agile Software ConsultingAgile Software Consulting
Agile Software Consulting
 
Vistacom in the Facilities Management Journal (September-October 2015)
Vistacom in the Facilities Management Journal (September-October 2015)Vistacom in the Facilities Management Journal (September-October 2015)
Vistacom in the Facilities Management Journal (September-October 2015)
 
Evaluating Project Success
Evaluating Project SuccessEvaluating Project Success
Evaluating Project Success
 

Similar to Understanding and Managing Technical Debt

How to justify technical debt mitigations in Software Engineering
How to justify technical debt mitigations in Software EngineeringHow to justify technical debt mitigations in Software Engineering
How to justify technical debt mitigations in Software EngineeringAndré Agostinho
 
Managing Technical Debt
Managing Technical DebtManaging Technical Debt
Managing Technical DebtAndre Perkins
 
Deloitte Tech Trends 2014 Technical Debt
Deloitte Tech Trends 2014 Technical DebtDeloitte Tech Trends 2014 Technical Debt
Deloitte Tech Trends 2014 Technical DebtCAST
 
From Technical Debt to Technical Health
From Technical Debt to Technical HealthFrom Technical Debt to Technical Health
From Technical Debt to Technical HealthMikael Vesavuori
 
How To Manage And Reduce Development Techical Debt
How To Manage And Reduce Development Techical DebtHow To Manage And Reduce Development Techical Debt
How To Manage And Reduce Development Techical DebtAbdul Khan
 
Technical Debt, Unplanned Work and the Toyota Way
Technical Debt, Unplanned Work and the Toyota WayTechnical Debt, Unplanned Work and the Toyota Way
Technical Debt, Unplanned Work and the Toyota WayHans Nygaard
 
calculate-business-costs-of-technical-debt.pdf
calculate-business-costs-of-technical-debt.pdfcalculate-business-costs-of-technical-debt.pdf
calculate-business-costs-of-technical-debt.pdfNicanor Sachahuaman
 
Managing Technical Debt - A Practical Approach Using Continuous Integration a...
Managing Technical Debt - A Practical Approach Using Continuous Integration a...Managing Technical Debt - A Practical Approach Using Continuous Integration a...
Managing Technical Debt - A Practical Approach Using Continuous Integration a...Jaguaraci Silva
 
DOES14 - Pat Reed - Project Labor Cost Accounting for Agile Projects
DOES14 - Pat Reed - Project Labor Cost Accounting for Agile ProjectsDOES14 - Pat Reed - Project Labor Cost Accounting for Agile Projects
DOES14 - Pat Reed - Project Labor Cost Accounting for Agile ProjectsGene Kim
 
Mi0040 technology management
Mi0040  technology managementMi0040  technology management
Mi0040 technology managementsmumbahelp
 
Discussion 1 post responses.Please respond to the following.docx
Discussion 1 post responses.Please respond to the following.docxDiscussion 1 post responses.Please respond to the following.docx
Discussion 1 post responses.Please respond to the following.docxcuddietheresa
 
Software Outsourcing: Pitfalls and Best Practices
Software Outsourcing: Pitfalls and Best PracticesSoftware Outsourcing: Pitfalls and Best Practices
Software Outsourcing: Pitfalls and Best PracticesSitrusLLC
 
Slowing down to Speed up: Agile & Technical Debt - SGPRG 2015
Slowing down to Speed up: Agile & Technical Debt - SGPRG 2015Slowing down to Speed up: Agile & Technical Debt - SGPRG 2015
Slowing down to Speed up: Agile & Technical Debt - SGPRG 2015Taghi Paksima
 
Prioritizing technical debt using bcg matrix in agile engagement
Prioritizing technical debt using bcg matrix in agile engagementPrioritizing technical debt using bcg matrix in agile engagement
Prioritizing technical debt using bcg matrix in agile engagementsandeep sapre
 
Technical Debt for Product Managers by Square Sr PM
Technical Debt for Product Managers by Square Sr PMTechnical Debt for Product Managers by Square Sr PM
Technical Debt for Product Managers by Square Sr PMProduct School
 
Fear and Loathing in Agility: Long Live the Accounting Department
Fear and Loathing in Agility: Long Live the Accounting DepartmentFear and Loathing in Agility: Long Live the Accounting Department
Fear and Loathing in Agility: Long Live the Accounting DepartmentAccenture | SolutionsIQ
 

Similar to Understanding and Managing Technical Debt (20)

How to justify technical debt mitigations in Software Engineering
How to justify technical debt mitigations in Software EngineeringHow to justify technical debt mitigations in Software Engineering
How to justify technical debt mitigations in Software Engineering
 
Managing Technical Debt
Managing Technical DebtManaging Technical Debt
Managing Technical Debt
 
Technical debt
Technical debtTechnical debt
Technical debt
 
Technical Debt
Technical DebtTechnical Debt
Technical Debt
 
Deloitte Tech Trends 2014 Technical Debt
Deloitte Tech Trends 2014 Technical DebtDeloitte Tech Trends 2014 Technical Debt
Deloitte Tech Trends 2014 Technical Debt
 
From Technical Debt to Technical Health
From Technical Debt to Technical HealthFrom Technical Debt to Technical Health
From Technical Debt to Technical Health
 
How To Manage And Reduce Development Techical Debt
How To Manage And Reduce Development Techical DebtHow To Manage And Reduce Development Techical Debt
How To Manage And Reduce Development Techical Debt
 
Technical Debt, Unplanned Work and the Toyota Way
Technical Debt, Unplanned Work and the Toyota WayTechnical Debt, Unplanned Work and the Toyota Way
Technical Debt, Unplanned Work and the Toyota Way
 
calculate-business-costs-of-technical-debt.pdf
calculate-business-costs-of-technical-debt.pdfcalculate-business-costs-of-technical-debt.pdf
calculate-business-costs-of-technical-debt.pdf
 
Managing Technical Debt - A Practical Approach Using Continuous Integration a...
Managing Technical Debt - A Practical Approach Using Continuous Integration a...Managing Technical Debt - A Practical Approach Using Continuous Integration a...
Managing Technical Debt - A Practical Approach Using Continuous Integration a...
 
DOES14 - Pat Reed - Project Labor Cost Accounting for Agile Projects
DOES14 - Pat Reed - Project Labor Cost Accounting for Agile ProjectsDOES14 - Pat Reed - Project Labor Cost Accounting for Agile Projects
DOES14 - Pat Reed - Project Labor Cost Accounting for Agile Projects
 
An Introduction to Project management(project management tutorials)
An Introduction to Project management(project management tutorials)An Introduction to Project management(project management tutorials)
An Introduction to Project management(project management tutorials)
 
CS PRACRICLE.docx
CS PRACRICLE.docxCS PRACRICLE.docx
CS PRACRICLE.docx
 
Mi0040 technology management
Mi0040  technology managementMi0040  technology management
Mi0040 technology management
 
Discussion 1 post responses.Please respond to the following.docx
Discussion 1 post responses.Please respond to the following.docxDiscussion 1 post responses.Please respond to the following.docx
Discussion 1 post responses.Please respond to the following.docx
 
Software Outsourcing: Pitfalls and Best Practices
Software Outsourcing: Pitfalls and Best PracticesSoftware Outsourcing: Pitfalls and Best Practices
Software Outsourcing: Pitfalls and Best Practices
 
Slowing down to Speed up: Agile & Technical Debt - SGPRG 2015
Slowing down to Speed up: Agile & Technical Debt - SGPRG 2015Slowing down to Speed up: Agile & Technical Debt - SGPRG 2015
Slowing down to Speed up: Agile & Technical Debt - SGPRG 2015
 
Prioritizing technical debt using bcg matrix in agile engagement
Prioritizing technical debt using bcg matrix in agile engagementPrioritizing technical debt using bcg matrix in agile engagement
Prioritizing technical debt using bcg matrix in agile engagement
 
Technical Debt for Product Managers by Square Sr PM
Technical Debt for Product Managers by Square Sr PMTechnical Debt for Product Managers by Square Sr PM
Technical Debt for Product Managers by Square Sr PM
 
Fear and Loathing in Agility: Long Live the Accounting Department
Fear and Loathing in Agility: Long Live the Accounting DepartmentFear and Loathing in Agility: Long Live the Accounting Department
Fear and Loathing in Agility: Long Live the Accounting Department
 

More from Dr. Syed Hassan Amin

Greenplum versus redshift and actian vectorwise comparison
Greenplum versus redshift and actian vectorwise comparisonGreenplum versus redshift and actian vectorwise comparison
Greenplum versus redshift and actian vectorwise comparisonDr. Syed Hassan Amin
 
Multitier holistic Approach for urdu Nastaliq Recognition
Multitier holistic Approach for urdu Nastaliq RecognitionMultitier holistic Approach for urdu Nastaliq Recognition
Multitier holistic Approach for urdu Nastaliq RecognitionDr. Syed Hassan Amin
 
Thin Controllers Fat Models - How to Write Better Code
Thin Controllers Fat Models - How to Write Better CodeThin Controllers Fat Models - How to Write Better Code
Thin Controllers Fat Models - How to Write Better CodeDr. Syed Hassan Amin
 
Improving Code Quality Through Effective Review Process
Improving Code Quality Through Effective  Review ProcessImproving Code Quality Through Effective  Review Process
Improving Code Quality Through Effective Review ProcessDr. Syed Hassan Amin
 
Software Project Management Tips and Tricks
Software Project Management Tips and TricksSoftware Project Management Tips and Tricks
Software Project Management Tips and TricksDr. Syed Hassan Amin
 
Improving Software Quality Using Object Oriented Design Principles
Improving Software Quality Using Object Oriented Design PrinciplesImproving Software Quality Using Object Oriented Design Principles
Improving Software Quality Using Object Oriented Design PrinciplesDr. Syed Hassan Amin
 
Learning Technology Leadership from Steve Jobs
Learning Technology Leadership from Steve JobsLearning Technology Leadership from Steve Jobs
Learning Technology Leadership from Steve JobsDr. Syed Hassan Amin
 
An OCR System for recognition of Urdu text in Nastaliq Font
An OCR System for recognition of Urdu text in Nastaliq FontAn OCR System for recognition of Urdu text in Nastaliq Font
An OCR System for recognition of Urdu text in Nastaliq FontDr. Syed Hassan Amin
 

More from Dr. Syed Hassan Amin (12)

Greenplum versus redshift and actian vectorwise comparison
Greenplum versus redshift and actian vectorwise comparisonGreenplum versus redshift and actian vectorwise comparison
Greenplum versus redshift and actian vectorwise comparison
 
Introduction To Docker
Introduction To  DockerIntroduction To  Docker
Introduction To Docker
 
Laravel Unit Testing
Laravel Unit TestingLaravel Unit Testing
Laravel Unit Testing
 
Multitier holistic Approach for urdu Nastaliq Recognition
Multitier holistic Approach for urdu Nastaliq RecognitionMultitier holistic Approach for urdu Nastaliq Recognition
Multitier holistic Approach for urdu Nastaliq Recognition
 
Understandig PCA and LDA
Understandig PCA and LDAUnderstandig PCA and LDA
Understandig PCA and LDA
 
Agile Scrum Methodology
Agile Scrum MethodologyAgile Scrum Methodology
Agile Scrum Methodology
 
Thin Controllers Fat Models - How to Write Better Code
Thin Controllers Fat Models - How to Write Better CodeThin Controllers Fat Models - How to Write Better Code
Thin Controllers Fat Models - How to Write Better Code
 
Improving Code Quality Through Effective Review Process
Improving Code Quality Through Effective  Review ProcessImproving Code Quality Through Effective  Review Process
Improving Code Quality Through Effective Review Process
 
Software Project Management Tips and Tricks
Software Project Management Tips and TricksSoftware Project Management Tips and Tricks
Software Project Management Tips and Tricks
 
Improving Software Quality Using Object Oriented Design Principles
Improving Software Quality Using Object Oriented Design PrinciplesImproving Software Quality Using Object Oriented Design Principles
Improving Software Quality Using Object Oriented Design Principles
 
Learning Technology Leadership from Steve Jobs
Learning Technology Leadership from Steve JobsLearning Technology Leadership from Steve Jobs
Learning Technology Leadership from Steve Jobs
 
An OCR System for recognition of Urdu text in Nastaliq Font
An OCR System for recognition of Urdu text in Nastaliq FontAn OCR System for recognition of Urdu text in Nastaliq Font
An OCR System for recognition of Urdu text in Nastaliq Font
 

Recently uploaded

High Class Call Girls Nagpur Grishma Call 7001035870 Meet With Nagpur Escorts
High Class Call Girls Nagpur Grishma Call 7001035870 Meet With Nagpur EscortsHigh Class Call Girls Nagpur Grishma Call 7001035870 Meet With Nagpur Escorts
High Class Call Girls Nagpur Grishma Call 7001035870 Meet With Nagpur Escortsranjana rawat
 
VIP Kolkata Call Girl Jodhpur Park 👉 8250192130 Available With Room
VIP Kolkata Call Girl Jodhpur Park 👉 8250192130  Available With RoomVIP Kolkata Call Girl Jodhpur Park 👉 8250192130  Available With Room
VIP Kolkata Call Girl Jodhpur Park 👉 8250192130 Available With Roomdivyansh0kumar0
 
call girls in Nand Nagri (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in  Nand Nagri (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in  Nand Nagri (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Nand Nagri (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
Andheri Call Girls In 9825968104 Mumbai Hot Models
Andheri Call Girls In 9825968104 Mumbai Hot ModelsAndheri Call Girls In 9825968104 Mumbai Hot Models
Andheri Call Girls In 9825968104 Mumbai Hot Modelshematsharma006
 
Bladex Earnings Call Presentation 1Q2024
Bladex Earnings Call Presentation 1Q2024Bladex Earnings Call Presentation 1Q2024
Bladex Earnings Call Presentation 1Q2024Bladex
 
VIP High Class Call Girls Saharanpur Anushka 8250192130 Independent Escort Se...
VIP High Class Call Girls Saharanpur Anushka 8250192130 Independent Escort Se...VIP High Class Call Girls Saharanpur Anushka 8250192130 Independent Escort Se...
VIP High Class Call Girls Saharanpur Anushka 8250192130 Independent Escort Se...Suhani Kapoor
 
SBP-Market-Operations and market managment
SBP-Market-Operations and market managmentSBP-Market-Operations and market managment
SBP-Market-Operations and market managmentfactical
 
government_intervention_in_business_ownership[1].pdf
government_intervention_in_business_ownership[1].pdfgovernment_intervention_in_business_ownership[1].pdf
government_intervention_in_business_ownership[1].pdfshaunmashale756
 
House of Commons ; CDC schemes overview document
House of Commons ; CDC schemes overview documentHouse of Commons ; CDC schemes overview document
House of Commons ; CDC schemes overview documentHenry Tapper
 
Q3 2024 Earnings Conference Call and Webcast Slides
Q3 2024 Earnings Conference Call and Webcast SlidesQ3 2024 Earnings Conference Call and Webcast Slides
Q3 2024 Earnings Conference Call and Webcast SlidesMarketing847413
 
Russian Call Girls In Gtb Nagar (Delhi) 9711199012 💋✔💕😘 Naughty Call Girls Se...
Russian Call Girls In Gtb Nagar (Delhi) 9711199012 💋✔💕😘 Naughty Call Girls Se...Russian Call Girls In Gtb Nagar (Delhi) 9711199012 💋✔💕😘 Naughty Call Girls Se...
Russian Call Girls In Gtb Nagar (Delhi) 9711199012 💋✔💕😘 Naughty Call Girls Se...shivangimorya083
 
Independent Lucknow Call Girls 8923113531WhatsApp Lucknow Call Girls make you...
Independent Lucknow Call Girls 8923113531WhatsApp Lucknow Call Girls make you...Independent Lucknow Call Girls 8923113531WhatsApp Lucknow Call Girls make you...
Independent Lucknow Call Girls 8923113531WhatsApp Lucknow Call Girls make you...makika9823
 
(办理学位证)加拿大萨省大学毕业证成绩单原版一比一
(办理学位证)加拿大萨省大学毕业证成绩单原版一比一(办理学位证)加拿大萨省大学毕业证成绩单原版一比一
(办理学位证)加拿大萨省大学毕业证成绩单原版一比一S SDS
 
The Triple Threat | Article on Global Resession | Harsh Kumar
The Triple Threat | Article on Global Resession | Harsh KumarThe Triple Threat | Article on Global Resession | Harsh Kumar
The Triple Threat | Article on Global Resession | Harsh KumarHarsh Kumar
 
Vip B Aizawl Call Girls #9907093804 Contact Number Escorts Service Aizawl
Vip B Aizawl Call Girls #9907093804 Contact Number Escorts Service AizawlVip B Aizawl Call Girls #9907093804 Contact Number Escorts Service Aizawl
Vip B Aizawl Call Girls #9907093804 Contact Number Escorts Service Aizawlmakika9823
 
Log your LOA pain with Pension Lab's brilliant campaign
Log your LOA pain with Pension Lab's brilliant campaignLog your LOA pain with Pension Lab's brilliant campaign
Log your LOA pain with Pension Lab's brilliant campaignHenry Tapper
 
Chapter 2.ppt of macroeconomics by mankiw 9th edition
Chapter 2.ppt of macroeconomics by mankiw 9th editionChapter 2.ppt of macroeconomics by mankiw 9th edition
Chapter 2.ppt of macroeconomics by mankiw 9th editionMuhammadHusnain82237
 

Recently uploaded (20)

High Class Call Girls Nagpur Grishma Call 7001035870 Meet With Nagpur Escorts
High Class Call Girls Nagpur Grishma Call 7001035870 Meet With Nagpur EscortsHigh Class Call Girls Nagpur Grishma Call 7001035870 Meet With Nagpur Escorts
High Class Call Girls Nagpur Grishma Call 7001035870 Meet With Nagpur Escorts
 
VIP Kolkata Call Girl Jodhpur Park 👉 8250192130 Available With Room
VIP Kolkata Call Girl Jodhpur Park 👉 8250192130  Available With RoomVIP Kolkata Call Girl Jodhpur Park 👉 8250192130  Available With Room
VIP Kolkata Call Girl Jodhpur Park 👉 8250192130 Available With Room
 
call girls in Nand Nagri (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in  Nand Nagri (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in  Nand Nagri (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Nand Nagri (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
 
Andheri Call Girls In 9825968104 Mumbai Hot Models
Andheri Call Girls In 9825968104 Mumbai Hot ModelsAndheri Call Girls In 9825968104 Mumbai Hot Models
Andheri Call Girls In 9825968104 Mumbai Hot Models
 
Bladex Earnings Call Presentation 1Q2024
Bladex Earnings Call Presentation 1Q2024Bladex Earnings Call Presentation 1Q2024
Bladex Earnings Call Presentation 1Q2024
 
VIP High Class Call Girls Saharanpur Anushka 8250192130 Independent Escort Se...
VIP High Class Call Girls Saharanpur Anushka 8250192130 Independent Escort Se...VIP High Class Call Girls Saharanpur Anushka 8250192130 Independent Escort Se...
VIP High Class Call Girls Saharanpur Anushka 8250192130 Independent Escort Se...
 
SBP-Market-Operations and market managment
SBP-Market-Operations and market managmentSBP-Market-Operations and market managment
SBP-Market-Operations and market managment
 
Commercial Bank Economic Capsule - April 2024
Commercial Bank Economic Capsule - April 2024Commercial Bank Economic Capsule - April 2024
Commercial Bank Economic Capsule - April 2024
 
🔝+919953056974 🔝young Delhi Escort service Pusa Road
🔝+919953056974 🔝young Delhi Escort service Pusa Road🔝+919953056974 🔝young Delhi Escort service Pusa Road
🔝+919953056974 🔝young Delhi Escort service Pusa Road
 
government_intervention_in_business_ownership[1].pdf
government_intervention_in_business_ownership[1].pdfgovernment_intervention_in_business_ownership[1].pdf
government_intervention_in_business_ownership[1].pdf
 
House of Commons ; CDC schemes overview document
House of Commons ; CDC schemes overview documentHouse of Commons ; CDC schemes overview document
House of Commons ; CDC schemes overview document
 
Q3 2024 Earnings Conference Call and Webcast Slides
Q3 2024 Earnings Conference Call and Webcast SlidesQ3 2024 Earnings Conference Call and Webcast Slides
Q3 2024 Earnings Conference Call and Webcast Slides
 
Russian Call Girls In Gtb Nagar (Delhi) 9711199012 💋✔💕😘 Naughty Call Girls Se...
Russian Call Girls In Gtb Nagar (Delhi) 9711199012 💋✔💕😘 Naughty Call Girls Se...Russian Call Girls In Gtb Nagar (Delhi) 9711199012 💋✔💕😘 Naughty Call Girls Se...
Russian Call Girls In Gtb Nagar (Delhi) 9711199012 💋✔💕😘 Naughty Call Girls Se...
 
Independent Lucknow Call Girls 8923113531WhatsApp Lucknow Call Girls make you...
Independent Lucknow Call Girls 8923113531WhatsApp Lucknow Call Girls make you...Independent Lucknow Call Girls 8923113531WhatsApp Lucknow Call Girls make you...
Independent Lucknow Call Girls 8923113531WhatsApp Lucknow Call Girls make you...
 
(办理学位证)加拿大萨省大学毕业证成绩单原版一比一
(办理学位证)加拿大萨省大学毕业证成绩单原版一比一(办理学位证)加拿大萨省大学毕业证成绩单原版一比一
(办理学位证)加拿大萨省大学毕业证成绩单原版一比一
 
🔝9953056974 🔝Call Girls In Dwarka Escort Service Delhi NCR
🔝9953056974 🔝Call Girls In Dwarka Escort Service Delhi NCR🔝9953056974 🔝Call Girls In Dwarka Escort Service Delhi NCR
🔝9953056974 🔝Call Girls In Dwarka Escort Service Delhi NCR
 
The Triple Threat | Article on Global Resession | Harsh Kumar
The Triple Threat | Article on Global Resession | Harsh KumarThe Triple Threat | Article on Global Resession | Harsh Kumar
The Triple Threat | Article on Global Resession | Harsh Kumar
 
Vip B Aizawl Call Girls #9907093804 Contact Number Escorts Service Aizawl
Vip B Aizawl Call Girls #9907093804 Contact Number Escorts Service AizawlVip B Aizawl Call Girls #9907093804 Contact Number Escorts Service Aizawl
Vip B Aizawl Call Girls #9907093804 Contact Number Escorts Service Aizawl
 
Log your LOA pain with Pension Lab's brilliant campaign
Log your LOA pain with Pension Lab's brilliant campaignLog your LOA pain with Pension Lab's brilliant campaign
Log your LOA pain with Pension Lab's brilliant campaign
 
Chapter 2.ppt of macroeconomics by mankiw 9th edition
Chapter 2.ppt of macroeconomics by mankiw 9th editionChapter 2.ppt of macroeconomics by mankiw 9th edition
Chapter 2.ppt of macroeconomics by mankiw 9th edition
 

Understanding and Managing Technical Debt

  • 1. MANAGING TECHNICAL DEBT Shortcuts that save money and time today can cost you down the road Presented by: Dr. Hassan Amin
  • 4. About Technical Debt Ward Cunningham proposed the concept of technical debt in 1992. Technical debt is acquired when engineers take shortcuts that fall short of best practices, such as:  Sneaking around an abstraction because it is too hard (or impossible) to figure how to ―do it right‖  Skipping on documentation (both in the code and external documentation)  Using an obscure or incomplete error message because it’s just too hard to create something more informative
  • 5. What is Technical Debt      Implementing code using a simple but slow algorithm even though they know that a better algorithm will be needed in production using void* when you really should have created an appropriate union* Skimping on good security practices Not writing unit test cases You know refactoring is required, because  Bad Smells of Code  Bad Smells of Design
  • 6. About Technical Debt   Technical debt may also be taken on intentionally as a strategy to save time or money Not all technical debt is bad. Using a simple but slow algorithm in a prototype can be exactly the correct path, as long as you know how to update the code before it ships.
  • 7. About Technical Debt That means:  Allowing time in the schedule  Making sure the issue is tracked so it doesn’t get lost in the shuffle  Knowing when you implement the code that a good algorithm actually does exist that will work in this instance  and trusting that management will support you.
  • 9. Properties of Financial Debt    Repayment is a must It is paid back with interest Inability to repay means that there is a very high cost, be it declaring bankruptcy, losing your house
  • 10. Technical debt (Similarities)    You generally do have to plan pay back strategy (i.e., rewrite the code or otherwise fix the problem) ―interest‖ is accrued every time you or anyone else (support-desk workers, future programmers, customers, etc.) working with your system is delayed because of bugs, performance problems, time spent researching what has gone wrong, etc. Failure to fix problems can result in the utter collapse of a system—the customer gives up and goes elsewhere, the system becomes so slow and brittle that it has to be rewritten from scratch, and so on.
  • 11. Technical Debt (Differences) The person who takes on technical debt isn’t necessarily the one who has to pay it off:  Generally developers do not maintain their own code.  Many time end users have to pay. This gives the initial developer little incentive to do the job right the first time unless such an incentive is explicitly created by Project Manager and Product owner .
  • 12. Paying Back Technical Debt The cost of paying back technical debt comes in the form of the engineering time it takes to rewrite or refactor the code or otherwise fix the problem.
  • 13. Technical debt (Differences)    Unlike financial debt, technical debt almost never has to be paid off in its entirety. Most (probably all) production systems have bugs/shortcomings that don’t have significant impact on the usability or long-term maintainability of the final system. The problem is that it can be difficult to know in advance which debts will ultimately have the highest cost.
  • 14. Variables in Engineering  Variables are: Time  Functionality  Resources  Debt      Commonly debt is the free variable in the equation. Debt can seem ―free‖ at first, but technical debt tends to build on itself. Debt involves interest in the form of increased effort to maintain and extend the system. So as you take on debt, it gets harder and takes longer to do maintenance and extension.
  • 15. Realms of Technical Debt Technical debt has much wider implications:  Avoiding a disk-array upgrade is a tradeoff between technical debt and financial costs.  Failure to consider power and cooling requirements when adding new, hotter equipment to a machine room is a debt.  Failure to automate a simple-but-tedious manual process is a debt.  Systems administrators who have neither documented the systems they support nor trained co-workers before going on vacation are another example.  Having parts of systems that are understood by only one person is another form of debt.
  • 17. Introduction Technical debt is inevitable. The reality is that requirements always change. You can manage technical debt in the following ways:  Agile programming  Documentation  System security  Release cycle management
  • 18. Agile Programming   It is often better to have a working prototype (even though it isn’t complete or perfect) so that you and the customers can start gaining experience with the system. This is the philosophy behind Agile programming, which accepts some technical debt as inevitable but also mandates a ―plan for change‖.
  • 19. Documentation   Failure to write the documentation (both internal and external) for the initial prototype may be a good tradeoff, but the longer it goes the harder it is to write. Human memory is transient, and if you show most people code they wrote a year ago they will have to study it to remember why they did it that way.
  • 20. System Security    Some forms of technical debt are so expensive that they should be avoided entirely whenever possible. Security is an area where taking shortcuts can lead to disaster. Always have passwords and other security checks in place.
  • 21. Release Cycle Management    The modern trend to ―release early and often,‖ especially in the context of web-based services, has made it easier to take on technical debt and still easier to resolve it. When well-managed, taking on debt earlier allows you to release more functionality earlier, allowing immediate feedback from customers, resulting in a product that is more responsive to user needs. If that debt is not paid off promptly, however, it also compounds more quickly, and the system can bog down at a truly frightening rate.
  • 22. Technical Debt - Originators Not all technical debt is the result of programmer laziness.  Management all too often aids and abets this problem.  Marketing departments often encourage engineering to move on to the next great thing rather than spending the time necessary to consolidate, clean up, and document the existing system.
  • 23. An Agile Approach to Reduce Technical Debt
  • 24. Introduction   Agile development methods and principles have lent visibility to technical debt. Different factors influencing the way agile development teams tackle technical debt are: Developers know about technical debt and are aware that it is important to face this problem.  It’s not clear who is responsible for the reduction of technical debt: the team, IT leads, product owner, or the scum master  It’s difficult to plan the work and define a strategy to reduce technical debt because it is not a part of the regular development process which mainly focuses on implementing features. 
  • 25.     Product Owner often doesn’t understand the need and benefits of reducing technical debt and don’t consider or allow technical projects / stories in their backlog and release plan. Problems and goals regarding technical debt are neither structured nor documented. At best the things to do are quite clear among team members and partly exist in fragmented documentations. But it could also be worst case that topic owners left the company and took all their knowledge and expertise with them.
  • 26. Here is a pragmatic approach that allows to understand and reduce the existing debt in an agile way (iterative, prioritized, focused).  Step 1: Involve the Product Owner and ―promote‖ him to be the sponsor of technical debt reduction.  Step 2: Inventory and structure known technical debt  Step 3: Agile prioritization and estimation of the work
  • 27.   Step 4: Analysis of the data and development of the right strategy. Step 5: Integration into the existing development process.
  • 28. Involve the Product Owner Step 1: Involve the Product Owner and “Promote” him to be the sponsor of technical debt reduction.  Give your product owner the guarantee that growth of the product will stay the most important part – but not just in a short team (Performance) but also in a long term (Health) manner.  Present different options of how to reduce technical debt to him and involve him in discussion to find the best approaches.
  • 29. Inventory and Structure Known Debt Step 2: Inventory and Structure Known Technical Debt It’s about extracting knowledge about the systems from the heads to develop a common picture of existing technical problems.  Write the names / identifiers of all applications and modules you own on cards.  Pin these cards on a whiteboard.  Extracted to-do’s (to solve existing problems) from all documentation media you use (wiki, jira, confluence, code documentation, paper), write them on post-its and stick them next to the application name it belongs to.
  • 30. Every team member is responsible to complete, restructure, and correct the board during this period so that you can go on with a round portfolio of the existing debt in the system.
  • 31. Prioritization & Estimation of Work Step 3: Agile Prioritization and Estimation of the Work  Now a repayment plan is needed.  The goal is to find good hints for defining a strategy to reduce or even remove the existing debt in an effective way.  Start by establishing two abstract units that are somehow semantically based on concrete dimensions
  • 32.  On Y axis:  TechDollar for the size of repayment for each item, which is in sum the gross amount of debt you have (1, 5, 20, 50, 200).  This number doesn’t relate to the real costs or benefits, it is just an abstract number that allows you to compare items with each other and to generate a feeling about how big the technical debt is.
  • 33.  On the X axis:  Animal Sizes (later mapped to story points) for the size / effort of each item. (ant = 1, hamster = 3, dog = 8, donkey = 13, elephant = 20).  Again this number does not relate to any real number but allows you to compare items with each other without handling all the complexity behind each item.
  • 34.   First order the items based on the y axis using tech dollar. Compare items with each other and ask questions like ―Compared to item X how much of your pain would be gone after finishing item Y?
  • 35.  In the second step, distribute the items of each row (benefit) among the animal sizes. ―How big is item X compared to Y? How long does it take? How complex is it? How uncertain is the field?…‖
  • 36.   At the end of this exercise, you will have a matrix with ToDos, i.e. technical stories, that are understood by each team member. The positioning in the matrix gives you good hints to develop a strategy for the reduction of technical debt in the next step.
  • 37. Analysis Step 4: Analysis of the data and development of the right strategy.  First we created stories marked as ―TechnicalDebtItems‖ in JIRA for each task we defined.  For bringing those items into a prioritized order and for drawing the right conclusions, create a chart to visualize how the efforts relate to the payment and vise versa.
  • 38. This is the result:
  • 39.  The Y-axis shows the gross debt. The red line visualizes the amount of repayment distributed over the effort. The distribution of efforts on the X-axis on the other hand results from the sum of effort / story points per point category. Earlier, the team only saw the big blockers and the high amount of different tasks without any order or prioritization. Now we have found a way to focus on each next step without losing the whole thing out of focus.
  • 40. This overview is also a great tool for working with the product owner and other stakeholders because it gives a good transparency regarding technical debt.
  • 41. Integration Step 5: Integration into the existing development process.  The longest run the team must go is to actually work on the items, reduce the debt and transform a buggy system into a sustainable, solid platform.  You now have a debt burndown which shows the payment over time (calendar weeks).  The team and the product owner can also agree on including bigger technical stories (> 3 points) into the feature planning and development process.
  • 42.
  • 43. Smaller stories (1-3 points) will be done spontaneously by the developers using their 20% tech and innovation time. The defined portfolio of technical stories is not static.  Developing new stuff always means new debt.  Working with legacy code often results in finding code that is far from being structured well.
  • 44.     The team may agree on collecting such things on a wiki page when it’s not a bug or critical blocker. Collected items can be reviewed in a quarterly review and if necessary added to the gross debt. Finding and discussing improvements to the process can be part of regular retrospectives the team holds every other week. In the quarterly review, the process and results can be inspected in detail by the team.
  • 45. Cost of Debt from Various Perspectives
  • 46. Technical debt affects everyone, but in different ways. Customers  Customers are the ultimate victims.  When the mobile network goes out, when they can’t get their work submitted on time, when their company loses business because they are fighting the software, they pay.
  • 47.    Help desk Help-desk personnel suffer from almost every aspect of technical debt: poorly designed interfaces, bad or nonexistent documentation, slow algorithms, etc. Customers get more ornery the longer it takes to fix their problem, while the desk often has no direct access to the people who can solve the problem.
  • 48.  Operations  In a service-oriented environment the operations people spend much of their time paying for decisions that other people made without consulting them.  Sometimes they get to look at the code, sometimes not.  In any case they get to look at the documentation—if it exists.
  • 49.  Engineers  Doing a quick, highly functional initial implementation makes the programmer look good at the cost of hampering engineers who join the party later.  Such super-stud programmers may not even realize they are taking on the debt if they have limited experience maintaining mature code.
  • 50.  Marketing  Marketing people can often be the ones pushing hardest for short product development times because they are pressured by sales and the customers to provide new functionality as quickly as possible.  When that new functionality doesn’t work properly in the field, however, they are also the ones on the wrong side of the firing line.
  • 51.  Management  Bad management often favors a single department to the detriment of others.  If the favored department is marketing or sales, management will be inclined to take on technical debt without understanding the costs.  Management also pays a price.
  • 52. Conclusion    Technical debt comes from a multitude of causes, often has difficult-to-predict effects, and usually involves a gamble about what will happen in the future. Much of managing technical debt is the same as risk management, and similar techniques can be applied. If technical debt isn’t managed, then it will tend to build up over time, possibly until a crisis results.

Editor's Notes

  1. Objectives for instruction and expected results and/or skills developed from learning.
  2. Introductory notes.
  3. Relative vocabulary list.
  4. Relative vocabulary list.
  5. A schedule design for optional periods of time/objectives.
  6. Introductory notes.
  7. A schedule design for optional periods of time/objectives.
  8. A schedule design for optional periods of time/objectives.
  9. A schedule design for optional periods of time/objectives.
  10. A schedule design for optional periods of time/objectives.
  11. A schedule design for optional periods of time/objectives.
  12. Example graph/chart.
  13. Introductory notes.
  14. Example graph/chart.
  15. Conclusion to course, lecture, et al.
  16. Conclusion to course, lecture, et al.
  17. Conclusion to course, lecture, et al.
  18. Conclusion to course, lecture, et al.
  19. Conclusion to course, lecture, et al.
  20. Introductory notes.
  21. Example graph/chart.
  22. Introductory notes.
  23. Example graph/chart.
  24. Conclusion to course, lecture, et al.
  25. Conclusion to course, lecture, et al.
  26. Conclusion to course, lecture, et al.
  27. Conclusion to course, lecture, et al.
  28. An opportunity for questions and discussions.
  29. Introductory notes.
  30. A list of procedures and steps, or a lecture slide with media.