7/25/2018 | 1 Why you should care about Technical DebtTechnical Debt metaphor › Debt is a...
Transcript of 7/25/2018 | 1 Why you should care about Technical DebtTechnical Debt metaphor › Debt is a...
![Page 1: 7/25/2018 | 1 Why you should care about Technical DebtTechnical Debt metaphor › Debt is a necessary tradeoff •Loan for investment •Quality-- for business value++ › Pay back](https://reader034.fdocuments.us/reader034/viewer/2022050207/5f5a8440c385d63fc07b145c/html5/thumbnails/1.jpg)
7/25/2018 | 1
Why you should care about Technical Debt
Prof. dr.ir. Paris Avgeriou - [email protected]
Software Engineering and Architecture Group
http://www.cs.rug.nl/~paris/
![Page 2: 7/25/2018 | 1 Why you should care about Technical DebtTechnical Debt metaphor › Debt is a necessary tradeoff •Loan for investment •Quality-- for business value++ › Pay back](https://reader034.fdocuments.us/reader034/viewer/2022050207/5f5a8440c385d63fc07b145c/html5/thumbnails/2.jpg)
The Known Universe
![Page 3: 7/25/2018 | 1 Why you should care about Technical DebtTechnical Debt metaphor › Debt is a necessary tradeoff •Loan for investment •Quality-- for business value++ › Pay back](https://reader034.fdocuments.us/reader034/viewer/2022050207/5f5a8440c385d63fc07b145c/html5/thumbnails/3.jpg)
7/25/2018 | 3
Rankings - Top 100 university
Founded in 1614
#83 Times Higher Education Worldwide
#59 Academic Ranking of World Universities
#86 U.S. News ‘Best Global Universities Ranking’
![Page 4: 7/25/2018 | 1 Why you should care about Technical DebtTechnical Debt metaphor › Debt is a necessary tradeoff •Loan for investment •Quality-- for business value++ › Pay back](https://reader034.fdocuments.us/reader034/viewer/2022050207/5f5a8440c385d63fc07b145c/html5/thumbnails/4.jpg)
| 4
Research Philosophy
› Core business: Software Architecture
› With Dutch & European industry (real problems)
• Embedded Systems & Enterprise Applications
› Automated Software Engineering
› Evidence-based Software Engineering
• Evidence matters - empirical research methods
![Page 5: 7/25/2018 | 1 Why you should care about Technical DebtTechnical Debt metaphor › Debt is a necessary tradeoff •Loan for investment •Quality-- for business value++ › Pay back](https://reader034.fdocuments.us/reader034/viewer/2022050207/5f5a8440c385d63fc07b145c/html5/thumbnails/5.jpg)
7/25/2018 | 5
Outline
› Introducing the metaphor
› Emergence of TD
› Concepts of TD and management
› Present and Future
![Page 6: 7/25/2018 | 1 Why you should care about Technical DebtTechnical Debt metaphor › Debt is a necessary tradeoff •Loan for investment •Quality-- for business value++ › Pay back](https://reader034.fdocuments.us/reader034/viewer/2022050207/5f5a8440c385d63fc07b145c/html5/thumbnails/6.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 … ”
“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. ”
Ward Cunningham, The WyCash portfolio management system, OOPSLA ‘92
![Page 7: 7/25/2018 | 1 Why you should care about Technical DebtTechnical Debt metaphor › Debt is a necessary tradeoff •Loan for investment •Quality-- for business value++ › Pay back](https://reader034.fdocuments.us/reader034/viewer/2022050207/5f5a8440c385d63fc07b145c/html5/thumbnails/7.jpg)
Technical Debt is a collection of design or implementation constructs
that are expedient in the short term,
but set up a technical context that
can make future changes more costly or impossible
Dagstuhl April 2016
7/25/2018 | 8
![Page 8: 7/25/2018 | 1 Why you should care about Technical DebtTechnical Debt metaphor › Debt is a necessary tradeoff •Loan for investment •Quality-- for business value++ › Pay back](https://reader034.fdocuments.us/reader034/viewer/2022050207/5f5a8440c385d63fc07b145c/html5/thumbnails/8.jpg)
Technical Debt illustrated
7/25/2018 | 10
Images from https://refactoring.guru/smells
![Page 9: 7/25/2018 | 1 Why you should care about Technical DebtTechnical Debt metaphor › Debt is a necessary tradeoff •Loan for investment •Quality-- for business value++ › Pay back](https://reader034.fdocuments.us/reader034/viewer/2022050207/5f5a8440c385d63fc07b145c/html5/thumbnails/9.jpg)
Technical Debt metaphor
› Debt is a necessary tradeoff
• Loan for investment
• Quality-- for business value++
› Pay back principal (fix TD) + interest (maintain SW)
› Debt should be monitored and managed
• Risk – accumulation may spiral out of control
7/25/2018 | 11
![Page 10: 7/25/2018 | 1 Why you should care about Technical DebtTechnical Debt metaphor › Debt is a necessary tradeoff •Loan for investment •Quality-- for business value++ › Pay back](https://reader034.fdocuments.us/reader034/viewer/2022050207/5f5a8440c385d63fc07b145c/html5/thumbnails/10.jpg)
Typical symptoms
› Taking more time to build a feature or fix defects
› Changes ripple through the system
› Rework is often and unexpected
› Deadlines/milestones continuously slipping
› Velocity drops
› Testing becomes very expensive
7/25/2018 | 12
![Page 11: 7/25/2018 | 1 Why you should care about Technical DebtTechnical Debt metaphor › Debt is a necessary tradeoff •Loan for investment •Quality-- for business value++ › Pay back](https://reader034.fdocuments.us/reader034/viewer/2022050207/5f5a8440c385d63fc07b145c/html5/thumbnails/11.jpg)
7/25/2018 | 13
Outline
› Introducing the metaphor
› Emergence of TD
› Concepts of TD and management
› Present and Future
![Page 12: 7/25/2018 | 1 Why you should care about Technical DebtTechnical Debt metaphor › Debt is a necessary tradeoff •Loan for investment •Quality-- for business value++ › Pay back](https://reader034.fdocuments.us/reader034/viewer/2022050207/5f5a8440c385d63fc07b145c/html5/thumbnails/12.jpg)
For every 100 KLOC an average software application had approx.
US$361,000 of technical debt*
*B. Curtis et al. “Estimating the Principal of an Application’s TD,” IEEE Software ‘12
![Page 13: 7/25/2018 | 1 Why you should care about Technical DebtTechnical Debt metaphor › Debt is a necessary tradeoff •Loan for investment •Quality-- for business value++ › Pay back](https://reader034.fdocuments.us/reader034/viewer/2022050207/5f5a8440c385d63fc07b145c/html5/thumbnails/13.jpg)
Is this really new?
Communities
› Maintenance & evolution
› Reengineering / refactoring
Terms
› Aging
› Decay
› Sustainability
› Little progress
› “Dull” topic
7/25/2018 | 17
![Page 14: 7/25/2018 | 1 Why you should care about Technical DebtTechnical Debt metaphor › Debt is a necessary tradeoff •Loan for investment •Quality-- for business value++ › Pay back](https://reader034.fdocuments.us/reader034/viewer/2022050207/5f5a8440c385d63fc07b145c/html5/thumbnails/14.jpg)
Convergence of SE disciplines
› Program analysis/comprehension
› SW Quality measurement
› Qualitative research methods
› SW risk management
Managing TD>sum of parts!
7/25/2018 | 18
P. Avgeriou et al. Reducing Friction in Software Development, IEEE SW ‘16
![Page 15: 7/25/2018 | 1 Why you should care about Technical DebtTechnical Debt metaphor › Debt is a necessary tradeoff •Loan for investment •Quality-- for business value++ › Pay back](https://reader034.fdocuments.us/reader034/viewer/2022050207/5f5a8440c385d63fc07b145c/html5/thumbnails/15.jpg)
7/25/2018 | 20
Z. Li et al., A systematic mapping study on technical debt and its management, JSS 2015
![Page 16: 7/25/2018 | 1 Why you should care about Technical DebtTechnical Debt metaphor › Debt is a necessary tradeoff •Loan for investment •Quality-- for business value++ › Pay back](https://reader034.fdocuments.us/reader034/viewer/2022050207/5f5a8440c385d63fc07b145c/html5/thumbnails/16.jpg)
Technical Debt
![Page 17: 7/25/2018 | 1 Why you should care about Technical DebtTechnical Debt metaphor › Debt is a necessary tradeoff •Loan for investment •Quality-- for business value++ › Pay back](https://reader034.fdocuments.us/reader034/viewer/2022050207/5f5a8440c385d63fc07b145c/html5/thumbnails/17.jpg)
7/25/2018 | 22
Outline
› Introducing the metaphor
› Emergence of TD
› Concepts of TD and management
› Present and Future
![Page 18: 7/25/2018 | 1 Why you should care about Technical DebtTechnical Debt metaphor › Debt is a necessary tradeoff •Loan for investment •Quality-- for business value++ › Pay back](https://reader034.fdocuments.us/reader034/viewer/2022050207/5f5a8440c385d63fc07b145c/html5/thumbnails/18.jpg)
Vicious circle of technical debt
7/25/2018 | 23
Incur TD Lower
Dev Velocity
Business Pressure
![Page 19: 7/25/2018 | 1 Why you should care about Technical DebtTechnical Debt metaphor › Debt is a necessary tradeoff •Loan for investment •Quality-- for business value++ › Pay back](https://reader034.fdocuments.us/reader034/viewer/2022050207/5f5a8440c385d63fc07b145c/html5/thumbnails/19.jpg)
Debt=Principal+Interest
7/25/2018 | 25
Ampatzoglou et al., A Financial Approach for Managing Interest in TD, BMSD ‘15
![Page 20: 7/25/2018 | 1 Why you should care about Technical DebtTechnical Debt metaphor › Debt is a necessary tradeoff •Loan for investment •Quality-- for business value++ › Pay back](https://reader034.fdocuments.us/reader034/viewer/2022050207/5f5a8440c385d63fc07b145c/html5/thumbnails/20.jpg)
Breaking point: principal vs. interest
7/25/2018 | 26
Ampatzoglou et al., A Financial Approach for Managing Interest in TD, BMSD ‘15
![Page 21: 7/25/2018 | 1 Why you should care about Technical DebtTechnical Debt metaphor › Debt is a necessary tradeoff •Loan for investment •Quality-- for business value++ › Pay back](https://reader034.fdocuments.us/reader034/viewer/2022050207/5f5a8440c385d63fc07b145c/html5/thumbnails/21.jpg)
Just the code?
Not quite right
› Code
› Requirements
› Architecture
› Design
› Test
› Build
› Documentation
› Infrastructure
› Versioning …
7/25/2018 | 32
Technical debt is pervasive
![Page 22: 7/25/2018 | 1 Why you should care about Technical DebtTechnical Debt metaphor › Debt is a necessary tradeoff •Loan for investment •Quality-- for business value++ › Pay back](https://reader034.fdocuments.us/reader034/viewer/2022050207/5f5a8440c385d63fc07b145c/html5/thumbnails/22.jpg)
Just the code?
› Code
› Requirements
› Architecture
› Design
› Test
› Build
› Documentation
› Infrastructure
› Versioning
7/25/2018 | 33
Complex dependencies Architecture smells Architecture drift
![Page 23: 7/25/2018 | 1 Why you should care about Technical DebtTechnical Debt metaphor › Debt is a necessary tradeoff •Loan for investment •Quality-- for business value++ › Pay back](https://reader034.fdocuments.us/reader034/viewer/2022050207/5f5a8440c385d63fc07b145c/html5/thumbnails/23.jpg)
Just the code?
› Code
› Requirements
› Architecture
› Design
› Test
› Build
› Documentation
› Infrastructure
› Versioning
7/25/2018 | 35
Low code coverage Lack of test automation
Residual defects not found
![Page 24: 7/25/2018 | 1 Why you should care about Technical DebtTechnical Debt metaphor › Debt is a necessary tradeoff •Loan for investment •Quality-- for business value++ › Pay back](https://reader034.fdocuments.us/reader034/viewer/2022050207/5f5a8440c385d63fc07b145c/html5/thumbnails/24.jpg)
Just the code?
› Code
› Requirements
› Architecture
› Design
› Test
› Build
› Documentation
› Infrastructure
› Versioning
7/25/2018 | 36
Insufficient/incomplete/out of date Lack of code comments
![Page 25: 7/25/2018 | 1 Why you should care about Technical DebtTechnical Debt metaphor › Debt is a necessary tradeoff •Loan for investment •Quality-- for business value++ › Pay back](https://reader034.fdocuments.us/reader034/viewer/2022050207/5f5a8440c385d63fc07b145c/html5/thumbnails/25.jpg)
Architecture TD is dominant
7/25/2018 | 37
https://insights.sei.cmu.edu/sei_blog/2015/07/a-field-study-of-technical-debt.html
Although the architectural complex
problems only account for 8% of the
defects, they absorb 52% of the effort
spent in repairing defects
Bill Curtis, CISQ
![Page 26: 7/25/2018 | 1 Why you should care about Technical DebtTechnical Debt metaphor › Debt is a necessary tradeoff •Loan for investment •Quality-- for business value++ › Pay back](https://reader034.fdocuments.us/reader034/viewer/2022050207/5f5a8440c385d63fc07b145c/html5/thumbnails/26.jpg)
7/25/2018 | 39
![Page 27: 7/25/2018 | 1 Why you should care about Technical DebtTechnical Debt metaphor › Debt is a necessary tradeoff •Loan for investment •Quality-- for business value++ › Pay back](https://reader034.fdocuments.us/reader034/viewer/2022050207/5f5a8440c385d63fc07b145c/html5/thumbnails/27.jpg)
Managing TD
› TD prevention
› TD identification
› TD measurement
› TD prioritization
› TD monitoring
› TD repayment
› TD representation/documentation
› TD communication
7/25/2018 | 40
Li et al., Architectural Debt Management in Value-oriented Architecting, Elsevier ‘14
![Page 28: 7/25/2018 | 1 Why you should care about Technical DebtTechnical Debt metaphor › Debt is a necessary tradeoff •Loan for investment •Quality-- for business value++ › Pay back](https://reader034.fdocuments.us/reader034/viewer/2022050207/5f5a8440c385d63fc07b145c/html5/thumbnails/28.jpg)
Managing TD
› TD prevention
› TD identification
› TD measurement
› TD prioritization
› TD monitoring
› TD repayment
› TD representation/documentation
› TD communication
7/25/2018 | 41
Code analysis Dependency analysis Solution comparison Reverse engineering
![Page 29: 7/25/2018 | 1 Why you should care about Technical DebtTechnical Debt metaphor › Debt is a necessary tradeoff •Loan for investment •Quality-- for business value++ › Pay back](https://reader034.fdocuments.us/reader034/viewer/2022050207/5f5a8440c385d63fc07b145c/html5/thumbnails/29.jpg)
TD Identification
7/25/2018 | 42
![Page 30: 7/25/2018 | 1 Why you should care about Technical DebtTechnical Debt metaphor › Debt is a necessary tradeoff •Loan for investment •Quality-- for business value++ › Pay back](https://reader034.fdocuments.us/reader034/viewer/2022050207/5f5a8440c385d63fc07b145c/html5/thumbnails/30.jpg)
Managing TD
› TD prevention
› TD identification
› TD measurement
› TD prioritization
› TD monitoring
› TD repayment
› TD representation/documentation
› TD communication
7/25/2018 | 43
Mathematical models Code metrics
Human estimation
![Page 31: 7/25/2018 | 1 Why you should care about Technical DebtTechnical Debt metaphor › Debt is a necessary tradeoff •Loan for investment •Quality-- for business value++ › Pay back](https://reader034.fdocuments.us/reader034/viewer/2022050207/5f5a8440c385d63fc07b145c/html5/thumbnails/31.jpg)
SonarQube
7/25/2018 | 44
![Page 32: 7/25/2018 | 1 Why you should care about Technical DebtTechnical Debt metaphor › Debt is a necessary tradeoff •Loan for investment •Quality-- for business value++ › Pay back](https://reader034.fdocuments.us/reader034/viewer/2022050207/5f5a8440c385d63fc07b145c/html5/thumbnails/32.jpg)
Managing TD
› TD prevention
› TD identification
› TD measurement
› TD prioritization
› TD monitoring
› TD repayment
› TD representation/documentation
› TD communication
7/25/2018 | 47
Refactoring Automating manual tasks
![Page 33: 7/25/2018 | 1 Why you should care about Technical DebtTechnical Debt metaphor › Debt is a necessary tradeoff •Loan for investment •Quality-- for business value++ › Pay back](https://reader034.fdocuments.us/reader034/viewer/2022050207/5f5a8440c385d63fc07b145c/html5/thumbnails/33.jpg)
Refactoring
7/25/2018 | 48
![Page 34: 7/25/2018 | 1 Why you should care about Technical DebtTechnical Debt metaphor › Debt is a necessary tradeoff •Loan for investment •Quality-- for business value++ › Pay back](https://reader034.fdocuments.us/reader034/viewer/2022050207/5f5a8440c385d63fc07b145c/html5/thumbnails/34.jpg)
Repaying TD
7/25/2018 | 49
Digkas et al., The Evolution of TD in the Apache Ecosystem, ECSA ‘17
![Page 35: 7/25/2018 | 1 Why you should care about Technical DebtTechnical Debt metaphor › Debt is a necessary tradeoff •Loan for investment •Quality-- for business value++ › Pay back](https://reader034.fdocuments.us/reader034/viewer/2022050207/5f5a8440c385d63fc07b145c/html5/thumbnails/35.jpg)
Repaying TD
› Large variation in survivability of issues
• 10% fixed within the first month
• 50% in the first year
• Some take up to ten years
› Very few issues types with fixing rate >50%
› Duplication and exception handling
• Frequently encountered
• Rarely fixed
7/25/2018 | 50
Digkas et al., How Do Developers Fix Issues and Pay Back TD in the Apache Ecosystem, SANER ‘18
![Page 36: 7/25/2018 | 1 Why you should care about Technical DebtTechnical Debt metaphor › Debt is a necessary tradeoff •Loan for investment •Quality-- for business value++ › Pay back](https://reader034.fdocuments.us/reader034/viewer/2022050207/5f5a8440c385d63fc07b145c/html5/thumbnails/36.jpg)
7/25/2018 | 53
Outline
› Introducing the metaphor
› Emergence of TD
› Concepts of TD and management
› Present and Future
![Page 37: 7/25/2018 | 1 Why you should care about Technical DebtTechnical Debt metaphor › Debt is a necessary tradeoff •Loan for investment •Quality-- for business value++ › Pay back](https://reader034.fdocuments.us/reader034/viewer/2022050207/5f5a8440c385d63fc07b145c/html5/thumbnails/37.jpg)
SW Engineers don’t like TD
Managers don’t mind TD
Short deadline vs.
Long-term sustainability
Communication bridge Investment opportunity
![Page 38: 7/25/2018 | 1 Why you should care about Technical DebtTechnical Debt metaphor › Debt is a necessary tradeoff •Loan for investment •Quality-- for business value++ › Pay back](https://reader034.fdocuments.us/reader034/viewer/2022050207/5f5a8440c385d63fc07b145c/html5/thumbnails/38.jpg)
State of the art
› Whole lifecycle but mostly code and design
› Basic concepts are mature
› Tooling (industrial & prototypes)
› Economic theories
7/25/2018 | 56
![Page 39: 7/25/2018 | 1 Why you should care about Technical DebtTechnical Debt metaphor › Debt is a necessary tradeoff •Loan for investment •Quality-- for business value++ › Pay back](https://reader034.fdocuments.us/reader034/viewer/2022050207/5f5a8440c385d63fc07b145c/html5/thumbnails/39.jpg)
State of practice
SW engineers
› Understand the concept and challenges
› Deal with it during maintenance
› TD management in place but with constraints
• Resource-intensive
• Realistically only a portion managed
7/25/2018 | 57
![Page 40: 7/25/2018 | 1 Why you should care about Technical DebtTechnical Debt metaphor › Debt is a necessary tradeoff •Loan for investment •Quality-- for business value++ › Pay back](https://reader034.fdocuments.us/reader034/viewer/2022050207/5f5a8440c385d63fc07b145c/html5/thumbnails/40.jpg)
Interplay between qualities
› Theory: Qualities studied as islands
› Practice: Qualities interplay
• Run-time vs. design time
› Communities needs to interact
› Interoperability
• Methods and tools
7/25/2018 | 58
https://sdk4ed.eu/
![Page 41: 7/25/2018 | 1 Why you should care about Technical DebtTechnical Debt metaphor › Debt is a necessary tradeoff •Loan for investment •Quality-- for business value++ › Pay back](https://reader034.fdocuments.us/reader034/viewer/2022050207/5f5a8440c385d63fc07b145c/html5/thumbnails/41.jpg)
7/25/2018 | 59
![Page 42: 7/25/2018 | 1 Why you should care about Technical DebtTechnical Debt metaphor › Debt is a necessary tradeoff •Loan for investment •Quality-- for business value++ › Pay back](https://reader034.fdocuments.us/reader034/viewer/2022050207/5f5a8440c385d63fc07b145c/html5/thumbnails/42.jpg)
![Page 43: 7/25/2018 | 1 Why you should care about Technical DebtTechnical Debt metaphor › Debt is a necessary tradeoff •Loan for investment •Quality-- for business value++ › Pay back](https://reader034.fdocuments.us/reader034/viewer/2022050207/5f5a8440c385d63fc07b145c/html5/thumbnails/43.jpg)
7/25/2018 | 61
![Page 44: 7/25/2018 | 1 Why you should care about Technical DebtTechnical Debt metaphor › Debt is a necessary tradeoff •Loan for investment •Quality-- for business value++ › Pay back](https://reader034.fdocuments.us/reader034/viewer/2022050207/5f5a8440c385d63fc07b145c/html5/thumbnails/44.jpg)
Join the community
› Bridging the gap between research and practice
› Join efforts
7/25/2018 | 62
Tech Debt conf @
![Page 45: 7/25/2018 | 1 Why you should care about Technical DebtTechnical Debt metaphor › Debt is a necessary tradeoff •Loan for investment •Quality-- for business value++ › Pay back](https://reader034.fdocuments.us/reader034/viewer/2022050207/5f5a8440c385d63fc07b145c/html5/thumbnails/45.jpg)
Thank you
Credits:
Philippe Kruchten
Robert Nord
Ipek Ozkaya
Carolyn Seaman
Zengyang Li
Peng Liang
Areti Ampatzoglou
Apostolos Ampatzoglou
Alexander Chatzigeorgiou