Technical debt a Business Perspective
-
Upload
michael-vax -
Category
Software
-
view
115 -
download
0
Transcript of Technical debt a Business Perspective
![Page 1: Technical debt a Business Perspective](https://reader034.fdocuments.in/reader034/viewer/2022052214/5a6569427f8b9af3678b4baf/html5/thumbnails/1.jpg)
Technical Debt a Business Perspective
Michael VaxCTO/CPO , WebInterpret
Based on work of Prof. Philippe Kruchten and others
![Page 2: Technical debt a Business Perspective](https://reader034.fdocuments.in/reader034/viewer/2022052214/5a6569427f8b9af3678b4baf/html5/thumbnails/2.jpg)
About me
• ~15 yearsDeveloper, tech. lead, architect
• 15+ yearsCTO, VP of Development, Head of Product Management
• Practicing Agile since 2005
• One of organizers of Agile Vancouver
• Born and raised in Moscow
• In Canada since 1992• 4 years in Munich• 1 month in Warsaw
![Page 3: Technical debt a Business Perspective](https://reader034.fdocuments.in/reader034/viewer/2022052214/5a6569427f8b9af3678b4baf/html5/thumbnails/3.jpg)
About Webinterpret
“Open worldwide commerce”
$3 Billion+ 29,333 54 Million+
GMV generated by
retailers using
WebInterpret
Professional retailers
using
Webinterpret
Product listings localised
2007 250+ 5 Offices
Enabling and growing
Cross Border Trade for
over 8 years
Over 250 employees USA, UK, France,
Germany & Poland
Partners :
![Page 4: Technical debt a Business Perspective](https://reader034.fdocuments.in/reader034/viewer/2022052214/5a6569427f8b9af3678b4baf/html5/thumbnails/4.jpg)
Technical Debt Definitions
![Page 5: Technical debt a Business Perspective](https://reader034.fdocuments.in/reader034/viewer/2022052214/5a6569427f8b9af3678b4baf/html5/thumbnails/5.jpg)
Technical DebtIntroduced by Ward Cunningham
• Drags long-lived projects and products down
• Technical debt is more a rhetorical category than a technical or ontological category.
– The concept resonates well with the development community and the business community
– Both sides “get” the metaphor.
• Technical debt is a concept that bridges the gap between:
– Business decisions makers
– Software designers/developers
![Page 6: Technical debt a Business Perspective](https://reader034.fdocuments.in/reader034/viewer/2022052214/5a6569427f8b9af3678b4baf/html5/thumbnails/6.jpg)
Technical DebtSteven McConnell
• Type1 - unintentional, non-strategic– Poor design decisions
– Poor coding
– No tests
• Type 2 - intentional and strategic– Optimize for the present not for the future
– Not moveable release date
– 2a Short term: paid off quickly with
refactoring•Large chunks: easy to track
•Many small bits: cannot track
– 2b Long-term
![Page 7: Technical debt a Business Perspective](https://reader034.fdocuments.in/reader034/viewer/2022052214/5a6569427f8b9af3678b4baf/html5/thumbnails/7.jpg)
Technical DebtMartin Fowler
Fowler 2009, 2010
Reckless
"We don't have time for design"
Prudent
"We must ship now and deal with
consequences"
"What is Layering?" "Now we know how we should
have done it"
Ina
dvert
en
t
Deli
bera
te
![Page 8: Technical debt a Business Perspective](https://reader034.fdocuments.in/reader034/viewer/2022052214/5a6569427f8b9af3678b4baf/html5/thumbnails/8.jpg)
Technical Debt as Cost of Change, Jim Highsmith
• Once on the far right of the
curve, all choices are hard
• If nothing is done, it is just
gets worse
• In application with high
technical debt estimations
are practically impossible
![Page 9: Technical debt a Business Perspective](https://reader034.fdocuments.in/reader034/viewer/2022052214/5a6569427f8b9af3678b4baf/html5/thumbnails/9.jpg)
Technical Debt Causes
![Page 10: Technical debt a Business Perspective](https://reader034.fdocuments.in/reader034/viewer/2022052214/5a6569427f8b9af3678b4baf/html5/thumbnails/10.jpg)
TD CausesPeople
▫ Making bad assumptions▫ Inexperience▫ Poor leadership and team dynamics▫ "Superstars" - egos get in the way ▫ No push back against customers
/sales▫ Staff turn over with no knowledge
transfer▫ Subcontractors
Lim at al. 2012Copyright @KESL 2012
![Page 11: Technical debt a Business Perspective](https://reader034.fdocuments.in/reader034/viewer/2022052214/5a6569427f8b9af3678b4baf/html5/thumbnails/11.jpg)
TD CausesProcess
▫ Little consideration of code maintenance
▫ Unclear requirements▫ Cutting back on process (code
reviews)▫ Little or no history of design
decisions▫ Not knowing or adopting best
practices
Lim at al. 2012Copyright @KESL 2012
![Page 12: Technical debt a Business Perspective](https://reader034.fdocuments.in/reader034/viewer/2022052214/5a6569427f8b9af3678b4baf/html5/thumbnails/12.jpg)
TD CausesTechnology ▫ Technology limitations
▫ Legacy code
▫ Changes in technology
▫ Growing complexity of the
product
Lim at al. 2012Copyright @KESL 2012
![Page 13: Technical debt a Business Perspective](https://reader034.fdocuments.in/reader034/viewer/2022052214/5a6569427f8b9af3678b4baf/html5/thumbnails/13.jpg)
TD CausesProduct
▫ Schedule and budget constraints▫ Poor communication between
developers and management▫ Changing priorities▫ Lack of vision, plan, strategy▫ Trying to make every customer happy▫ Unclear goals, objectives, and
priorities▫ Consequences of decisions is not
clear
Lim at al. 2012Copyright @KESL 2012
![Page 14: Technical debt a Business Perspective](https://reader034.fdocuments.in/reader034/viewer/2022052214/5a6569427f8b9af3678b4baf/html5/thumbnails/14.jpg)
TD CausesBusiness ▫ Changes in Business models
▫ Targeting different customer
segments
▫ Merges and acquisitions
▫ Extending product line
![Page 15: Technical debt a Business Perspective](https://reader034.fdocuments.in/reader034/viewer/2022052214/5a6569427f8b9af3678b4baf/html5/thumbnails/15.jpg)
Technical Debt What is it exactly
![Page 16: Technical debt a Business Perspective](https://reader034.fdocuments.in/reader034/viewer/2022052214/5a6569427f8b9af3678b4baf/html5/thumbnails/16.jpg)
What we consider a Technical Debt?
• Badly written, poorly structured code• Code without test coverage• Duplicated code• Code that is not used • Poorly named classes & modules• Fragile tests
![Page 17: Technical debt a Business Perspective](https://reader034.fdocuments.in/reader034/viewer/2022052214/5a6569427f8b9af3678b4baf/html5/thumbnails/17.jpg)
as well as
• Lack of product documentation• Incorrect documentation is even worse• Upgrade debt (using outdated versions of
libraries and 3rd party s/w)• Manual setup of test environments• Not automated build and deployment • Not adequate monitoring of production
environment
![Page 18: Technical debt a Business Perspective](https://reader034.fdocuments.in/reader034/viewer/2022052214/5a6569427f8b9af3678b4baf/html5/thumbnails/18.jpg)
Technical Debt Money Perspective
![Page 19: Technical debt a Business Perspective](https://reader034.fdocuments.in/reader034/viewer/2022052214/5a6569427f8b9af3678b4baf/html5/thumbnails/19.jpg)
Time is Money
Think of the amount of money the borrowed time represent - the grant total required to eliminate all issues found in the code
Copyright @ 2011 Philippe Kruchten
Code smells 167 days
Missing tests 298 days
Design 670 days
Documentation 67 days
Total days 1,202 days
Total cost $1,202,000 Assuming Cost of one
developer day is $1000
![Page 20: Technical debt a Business Perspective](https://reader034.fdocuments.in/reader034/viewer/2022052214/5a6569427f8b9af3678b4baf/html5/thumbnails/20.jpg)
Cost of fixing Technical debt isBorrowed amount (Principal)
Lost of productivity caused by Technical Debt is Interest you pay on Principal
![Page 21: Technical debt a Business Perspective](https://reader034.fdocuments.in/reader034/viewer/2022052214/5a6569427f8b9af3678b4baf/html5/thumbnails/21.jpg)
“Interests”
In presence of technical debt:• Cost of adding new features is higher • When repaying (fixing), additional cost for
retrofitting already implemented features • Technical debt not repaid => leads to increased
cost, forever!!! • Cost of fixing increases over time • Onboarding new team member takes longer
“Every minute spent on not-quite-right code counts as interest” Ward Cunningham
Copyright @ 2011 Philippe Kruchten
![Page 22: Technical debt a Business Perspective](https://reader034.fdocuments.in/reader034/viewer/2022052214/5a6569427f8b9af3678b4baf/html5/thumbnails/22.jpg)
Value of Your Product
Visible Hidden
Positive Value Features Good Architecture
Negative value Bugs Technical Debt
Value of the software $100,000
Cost of bug fixing -$15,000
To address TD -$25,000
Real value of software $60,000
Copyright @ 2011 Philippe Kruchten
![Page 23: Technical debt a Business Perspective](https://reader034.fdocuments.in/reader034/viewer/2022052214/5a6569427f8b9af3678b4baf/html5/thumbnails/23.jpg)
Technical Debt How to address
![Page 24: Technical debt a Business Perspective](https://reader034.fdocuments.in/reader034/viewer/2022052214/5a6569427f8b9af3678b4baf/html5/thumbnails/24.jpg)
Common Approaches to Technical Debt Reduction
We are way too busy to deal with
it nowNext release, next
year for sure
Let’s stop developing new
features until we fix ALL this mess
![Page 25: Technical debt a Business Perspective](https://reader034.fdocuments.in/reader034/viewer/2022052214/5a6569427f8b9af3678b4baf/html5/thumbnails/25.jpg)
Three Strategies
1. Do nothing2. Replace
3. Incremental
Refactoring
It will get worse
Customers are
getting unhappy
with missed
deliveries and poor
quality
Delivery is late
we need to take
more shortcuts
Technical Debt
continues to
grow and
slowing down
development
![Page 26: Technical debt a Business Perspective](https://reader034.fdocuments.in/reader034/viewer/2022052214/5a6569427f8b9af3678b4baf/html5/thumbnails/26.jpg)
Three Strategies1. Do nothing
2. Replace3. Incremental
Refactoring
▫ High-cost
▫ High-riskRewrite projects have the highest failure rate
![Page 27: Technical debt a Business Perspective](https://reader034.fdocuments.in/reader034/viewer/2022052214/5a6569427f8b9af3678b4baf/html5/thumbnails/27.jpg)
Three Strategies1. Do nothing
2. Replace
3. Incremental
Refactoring
▫ Debt reduction
▫ Requires commitment &
discipline
▫ Control amount of new debt
added to the product
![Page 28: Technical debt a Business Perspective](https://reader034.fdocuments.in/reader034/viewer/2022052214/5a6569427f8b9af3678b4baf/html5/thumbnails/28.jpg)
Reducing Debt
▫ Make it visible
▫ Incorporate debt reduction as a regular activity
▫ Look for opportunities to combine it with feature
development
▫ Finish what you’ve started
▫ Make it quick
▫ Don’t touch if it does not hurt
![Page 29: Technical debt a Business Perspective](https://reader034.fdocuments.in/reader034/viewer/2022052214/5a6569427f8b9af3678b4baf/html5/thumbnails/29.jpg)
Technical Debt Reduction Story
4.0 4.5 4.8 5.0 5.4 5.6 5.7 6.0
B2B
B2CB2CB2CB2CB2CB2CB2CB2C
B2BB2BB2BB2BB2BB2B
TelcoTelcoTelco
ChinaChina
B2C 4.5 copy
B2C 4.0 copy
B2C 5.0 copy
Insurance
China
Telco
InsuranceInsurance
China
Insurance
Telco Telco
Copies
Add-ons
Versions
Travel
China
![Page 30: Technical debt a Business Perspective](https://reader034.fdocuments.in/reader034/viewer/2022052214/5a6569427f8b9af3678b4baf/html5/thumbnails/30.jpg)
Social Debt & Friction
Social debt is a state of a development project which is the result of the accumulation over time of decisions about the way the development team (or community) communicates,
collaborates and coordinates.
In other words, decisions about the organizational structure, the process, the governance, the social interactions, or some
elements inherited through the people: their knowledge, personality, working style, etc.
Copyright @ 2011 Philippe Kruchten
![Page 31: Technical debt a Business Perspective](https://reader034.fdocuments.in/reader034/viewer/2022052214/5a6569427f8b9af3678b4baf/html5/thumbnails/31.jpg)
Thank You
Staying in touchhttps://www.linkedin.com/in/michaelvax