technical debt 101
DESCRIPTION
What is Technical Debt? It doesn't have to be negative, but it does have to be carefully managed. Here is a quick run-down of best practice to approaching Technical Debt management.TRANSCRIPT
![Page 2: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/2.jpg)
"Shipping first-time code is like going into debt. A little debt speeds development
so long as it is paid back promptly with a rewrite. Objects make the cost of this
transaction tolerable. The danger occurs when the debt is not repaid. Every minute
spent on not-quite-right code counts as interest on that debt. Entire engineering
organizations can be brought to a stand-still under the debt load of an
unconsolidated implementation, object-oriented or otherwise."
“Technical Debt” was defined by Ward Cunningham in 1992
![Page 3: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/3.jpg)
The cost of having Technical Debt…
Physical: time & effort to generate the feature
Opportunity: time to wait for benefits to be realised
Competitive: inability to be as quick to market with new features
1
2
3
![Page 4: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/4.jpg)
While it’s true that technical debt can be a very negative force… very negative
![Page 5: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/5.jpg)
…it can also be
positive
![Page 6: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/6.jpg)
There is benefit in the building of all systems
It can make sense to go into Technical Debt to get those benefits sooner
![Page 7: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/7.jpg)
Let’s first talk about types of
Technical Debt to watch out for…
…then define some “good” and
“bad” forms of Technical Debt!
![Page 8: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/8.jpg)
What types of Technical Debt should you watch out for?
![Page 9: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/9.jpg)
The departed genius “x wrote this and no-one else understands it”
1
![Page 10: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/10.jpg)
The next big thing “x wrote this in a new tech that’s no longer supported,
no-one else understands it”
2
![Page 11: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/11.jpg)
The self sufficient developer “x didn’t agree with / understand what y had done so he
re-wrote the same functionality to run alongside it”
3
![Page 12: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/12.jpg)
The uncommunicative developer “x didn’t talk to y so didn’t realise they were working on
nearly the same functionality so it is in there twice”
4
![Page 13: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/13.jpg)
The grumpy developer “x would never let anyone see his code or work on his areas of the system”
5
![Page 14: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/14.jpg)
The unhappy supplier “That was developed by x before he fell out with the MD so we don’t have the source code and can’t make any changes”
6
![Page 15: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/15.jpg)
Some positive forms of Technical Debt
![Page 16: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/16.jpg)
Positive forms of Technical Debt #1
A “Director’s Loan”
Tech equivalent:
Debt that is never required to be repaid
![Page 17: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/17.jpg)
Positive forms of Technical Debt #1
A “Director’s Loan”
An example could be a simple system that won’t change much.
![Page 18: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/18.jpg)
Positive forms of Technical Debt #1
A “Director’s Loan”
An example could be a simple system that won’t change much.
It solves a problem, i.e. replaces a manual process…
![Page 19: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/19.jpg)
Positive forms of Technical Debt #1
A “Director’s Loan”
An example could be a simple system that won’t change much.
It solves a problem, i.e. replaces a manual process…
… and can survive without ever needing to repay the debt.
![Page 20: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/20.jpg)
Positive forms of Technical Debt #2
“Structured Finance”
Tech equivalent:
When compromises are made in order to get a
system up and running sooner
![Page 21: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/21.jpg)
The agile principle of “You Aren’t Gonna Need It” says
that to see the benefits of a system as soon as possible,
you need to get a minimum viable product out in the
quickest way possible.
Positive forms of Technical Debt #2
“Structured Finance”
![Page 22: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/22.jpg)
The agile principle of “You Aren’t Gonna Need It” says
that to see the benefits of a system as soon as possible,
you need to get a minimum viable product out in the
quickest way possible.
Positive forms of Technical Debt #2
“Structured Finance”
By this principle, Technical Debt should be embraced as a
way to quickly prove the potential benefit of your system.
![Page 23: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/23.jpg)
There is, however, interest to be paid back on these debts
Positive forms of Technical Debt #2
“Structured Finance”
![Page 24: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/24.jpg)
There is, however, interest to be paid back on these debts
The additional cost associated with introducing new
features because of having to deal with the short cuts
taken in earlier
1
Positive forms of Technical Debt #2
“Structured Finance”
![Page 25: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/25.jpg)
There is, however, interest to be paid back on these debts
The additional cost associated with introducing new
features because of having to deal with the short cuts
taken in earlier
1
The reduction in benefit associated with the
workarounds, manual processes and missing features in
the system
2
Positive forms of Technical Debt #2
“Structured Finance”
![Page 26: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/26.jpg)
Positive forms of Technical Debt #2
“Structured Finance”
So when does the debt need to be repaid?
![Page 27: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/27.jpg)
Positive forms of Technical Debt #2
“Structured Finance”
So when does the debt need to be repaid?
When the cost of the changes
to the system outweighs the
benefit gained
![Page 28: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/28.jpg)
Positive forms of Technical Debt #2
“Structured Finance”
So when does the debt need to be repaid?
When the cost of the changes
to the system outweighs the
benefit gained
(Technical negative equity)
![Page 29: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/29.jpg)
Positive forms of Technical Debt #3
Investor demanding pay-out
Tech equivalent:
When a technology is chosen because it’s the
easiest/fastest to implement, but at a certain
point becomes unviable moving forward
![Page 30: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/30.jpg)
Positive forms of Technical Debt #3
Investor demanding pay-out
The technology has reached the capacity for your current usage level
When does this happen?
![Page 31: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/31.jpg)
Positive forms of Technical Debt #3
Investor demanding pay-out
The technology or platform is no longer available – more common
in 3rd party/cloud based services
When does this happen?
![Page 32: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/32.jpg)
Positive forms of Technical Debt #3
Investor demanding pay-out
How can it be dealt with?
![Page 33: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/33.jpg)
Positive forms of Technical Debt #3
Investor demanding pay-out
Systems should be designed to be abstract of the technology so as to
make swapping to another platform as easy as possible
How can it be dealt with?
![Page 34: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/34.jpg)
Positive forms of Technical Debt #3
Investor demanding pay-out
Systems should be designed to be abstract of the technology so as to
make swapping to another platform as easy as possible
How can it be dealt with?
The technology should be carefully aligned with the system’s growth
plan with an estimate of the technology’s longevity
![Page 35: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/35.jpg)
Some negative forms of Technical Debt
![Page 36: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/36.jpg)
Negative forms of Technical Debt #1
“Credit card” debt
Tech equivalent:
Unplanned Technical Debt introduced through
poor project management / inexperienced
developers
![Page 37: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/37.jpg)
Negative forms of Technical Debt #1
“Credit card” debt
This happens when a system…
![Page 38: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/38.jpg)
Negative forms of Technical Debt #1
“Credit card” debt
…was “developed by x and we don’t dare change it because we’ve no
idea how it works”
This happens when a system…
![Page 39: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/39.jpg)
Negative forms of Technical Debt #1
“Credit card” debt
…was “developed by x and we don’t dare change it because we’ve no
idea how it works”
… has areas that were knocked up by the owner/his nephew who was
doing A-Level computers and it would be too big a job to rewrite it now
This happens when a system…
![Page 40: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/40.jpg)
Negative forms of Technical Debt #1
“Credit card” debt
…was “developed by x and we don’t dare change it because we’ve no
idea how it works”
… has areas that were knocked up by the owner/his nephew who was
doing A-Level computers and it would be too big a job to rewrite it now
… was written in [insert language] because someone wanted to have a
play with it/was good at it and no one here now knows that language
This happens when a system…
![Page 41: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/41.jpg)
Negative forms of Technical Debt #1
“Credit card” debt
How to deal with it
![Page 42: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/42.jpg)
Negative forms of Technical Debt #1
“Credit card” debt
How to deal with it
Get someone to sit down with the “credit card statements” and understand the
interest that is being paid on this debt - until that is completed there is no way to
understand if it needs dealing with and what the cost of dealing with it is
![Page 43: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/43.jpg)
Negative forms of Technical Debt #2
“Over-funding”
Tech equivalent:
Over-engineering to a level of complexity that is
just not needed for the system being built
![Page 44: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/44.jpg)
Negative forms of Technical Debt #2
“Over-funding”
![Page 45: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/45.jpg)
Negative forms of Technical Debt #2
“Over-funding”
“You Aren’t Gonna Need It!”
![Page 46: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/46.jpg)
Negative forms of Technical Debt #2
“Over-funding”
Or… if you don’t need it, don’t build it…!
“You Aren’t Gonna Need It!”
![Page 47: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/47.jpg)
Negative forms of Technical Debt #2
“Over-funding”
This type of Technical Debt is
hard to control…
![Page 48: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/48.jpg)
Negative forms of Technical Debt #2
“Over-funding”
This type of Technical Debt is
hard to control…
… because it only becomes apparent when
it’s already in existence
![Page 49: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/49.jpg)
Negative forms of Technical Debt #2
“Over-funding”
This type of Technical Debt is
hard to control…
… because it only becomes apparent when
it’s already in existence
(why build a feature you know you don’t need?)
![Page 50: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/50.jpg)
Negative forms of Technical Debt #2
“Over-funding”
Mitigate it with
![Page 51: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/51.jpg)
Negative forms of Technical Debt #2
“Over-funding”
Mitigate it with
Agile practices
![Page 52: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/52.jpg)
Negative forms of Technical Debt #2
“Over-funding”
Mitigate it with
Agile practices
Focused development
![Page 53: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/53.jpg)
Negative forms of Technical Debt #2
“Over-funding”
Mitigate it with
Agile practices
Focused development
Regular architectural reviews
![Page 54: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/54.jpg)
Negative forms of Technical Debt #2
“Over-funding”
Mitigate it with
Agile practices
Focused development
Regular architectural reviews
Experienced developers
![Page 55: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/55.jpg)
So how can we minimize the risk of
Technical Debt?
![Page 56: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/56.jpg)
Good system architecture
![Page 57: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/57.jpg)
Abstract systems to ease technology swap-out
![Page 58: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/58.jpg)
Robust system management
![Page 59: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/59.jpg)
Enough testing to enable low risk re-engineering if needed
![Page 60: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/60.jpg)
Removal of dependency on individuals
![Page 61: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/61.jpg)
Technical debt management
![Page 62: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/62.jpg)
Awareness of the types of debt and their impact
![Page 63: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/63.jpg)
Paying off the debt
Lump sum payment
Take everyone out of feature production for a set
period and resolve the main areas of technical debt -
Make technical debt everyone’s problem for a short
time
![Page 64: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/64.jpg)
Paying off the debt
On-going small payments
Make a commitment that with every feature
introduced an area of technical debt will also be
addressed - Make technical debt everyone’s on-going
problem
![Page 65: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/65.jpg)
Paying off the debt
Dedicated payment plan
Create a dedicated technical debt team who do
nothing but resolve technical debt issues and run this
alongside the development program - Create some
people who have technical debt as their only problem.
![Page 66: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/66.jpg)
wajakemek | rashdanothman
walknboston
bruckerrlb
EvanHahn
Lawrence Whittemore
Wysz
ThomasThomas
Clio20
Sam UL
Bert Kaufmann
Jonkeelty
JohnFinn
gerlos
Image credits
MyTudut
CarbonNYC
Mukumbura
mutsmuts
Matthew (WMF)
Digger/ATL
Tripp
Todd Ehlers
miuenski
grafixtek
xJason.Rogersx
SFB579 :)
stevendepolo
Flickr Creative Commons:
![Page 67: Technical Debt 101](https://reader034.vdocuments.mx/reader034/viewer/2022052523/554fb367b4c905ad218b53a9/html5/thumbnails/67.jpg)
intechnica.co.uk
blog.intechnica.co.uk
@intechnica
perforancebydesign.co.uk
Read more detailed blogs
about Technical Debt at
http://ow.ly/oQ0uv