Technical Debt Prof. dr.ir. Paris Avgeriou - paris@cs.rug.nl - - PowerPoint PPT Presentation

technical debt
SMART_READER_LITE
LIVE PREVIEW

Technical Debt Prof. dr.ir. Paris Avgeriou - paris@cs.rug.nl - - PowerPoint PPT Presentation

7/25/2018 | 1 Why you should care about Technical Debt Prof. dr.ir. Paris Avgeriou - paris@cs.rug.nl Software Engineering and Architecture Group http://www.cs.rug.nl/~paris/ The Known Universe Rankings - Top 100 university 7/25/2018 | 3


slide-1
SLIDE 1

7/25/2018 | 1

Why you should care about Technical Debt

  • Prof. dr.ir. Paris Avgeriou - paris@cs.rug.nl

Software Engineering and Architecture Group http://www.cs.rug.nl/~paris/

slide-2
SLIDE 2

The Known Universe

slide-3
SLIDE 3

7/25/2018 | 3

Rankings - Top 100 university

Founded in 1614

#83 Times Higher Education Worldwide #59 Academic Ranking

  • f World Universities

#86 U.S. News ‘Best Global Universities Ranking’

slide-4
SLIDE 4

| 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
slide-5
SLIDE 5

7/25/2018 | 5

Outline

› Introducing the metaphor › Emergence of TD › Concepts of TD and management › Present and Future

slide-6
SLIDE 6

“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

  • rganizations can be brought to a stand-still under

the debt load of an unconsolidated implementation,

  • bject-oriented or otherwise. ”

Ward Cunningham, The WyCash portfolio management system, OOPSLA ‘92

slide-7
SLIDE 7

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

slide-8
SLIDE 8

Technical Debt illustrated

7/25/2018 | 10

Images from https://refactoring.guru/smells

slide-9
SLIDE 9

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

slide-10
SLIDE 10

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

slide-11
SLIDE 11

7/25/2018 | 13

Outline

› Introducing the metaphor › Emergence of TD › Concepts of TD and management › Present and Future

slide-12
SLIDE 12

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

slide-13
SLIDE 13

Is this really new?

Communities › Maintenance & evolution › Reengineering / refactoring Terms › Aging › Decay › Sustainability › Little progress › “Dull” topic

7/25/2018 | 17

slide-14
SLIDE 14

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
slide-15
SLIDE 15

7/25/2018 | 20

  • Z. Li et al., A systematic mapping study on technical debt and its management,

JSS 2015

slide-16
SLIDE 16

Technical Debt

slide-17
SLIDE 17

7/25/2018 | 22

Outline

› Introducing the metaphor › Emergence of TD › Concepts of TD and management › Present and Future

slide-18
SLIDE 18

Vicious circle of technical debt

7/25/2018 | 23

Incur TD Lower Dev Velocity Business Pressure

slide-19
SLIDE 19

Debt=Principal+Interest

7/25/2018 | 25

Ampatzoglou et al., A Financial Approach for Managing Interest in TD, BMSD ‘15

slide-20
SLIDE 20

Breaking point: principal vs. interest

7/25/2018 | 26

Ampatzoglou et al., A Financial Approach for Managing Interest in TD, BMSD ‘15

slide-21
SLIDE 21

Just the code?

Not quite right › Code › Requirements › Architecture › Design › Test › Build › Documentation › Infrastructure › Versioning …

7/25/2018 | 32

Technical debt is pervasive

slide-22
SLIDE 22

Just the code?

› Code › Requirements › Architecture › Design › Test › Build › Documentation › Infrastructure › Versioning

7/25/2018 | 33

Complex dependencies Architecture smells Architecture drift

slide-23
SLIDE 23

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

slide-24
SLIDE 24

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

slide-25
SLIDE 25

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

slide-26
SLIDE 26

7/25/2018 | 39

slide-27
SLIDE 27

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

slide-28
SLIDE 28

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

slide-29
SLIDE 29

TD Identification

7/25/2018 | 42

slide-30
SLIDE 30

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

slide-31
SLIDE 31

SonarQube

7/25/2018 | 44

slide-32
SLIDE 32

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

slide-33
SLIDE 33

Refactoring

7/25/2018 | 48

slide-34
SLIDE 34

Repaying TD

7/25/2018 | 49

Digkas et al., The Evolution of TD in the Apache Ecosystem, ECSA ‘17

slide-35
SLIDE 35

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

slide-36
SLIDE 36

7/25/2018 | 53

Outline

› Introducing the metaphor › Emergence of TD › Concepts of TD and management › Present and Future

slide-37
SLIDE 37

SW Engineers don’t like TD Managers don’t mind TD Short deadline vs. Long-term sustainability Communication bridge Investment opportunity

slide-38
SLIDE 38

State of the art

› Whole lifecycle but mostly code and design › Basic concepts are mature › Tooling (industrial & prototypes) › Economic theories

7/25/2018 | 56

slide-39
SLIDE 39

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

slide-40
SLIDE 40

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/

slide-41
SLIDE 41

7/25/2018 | 59

slide-42
SLIDE 42
slide-43
SLIDE 43

7/25/2018 | 61

slide-44
SLIDE 44

Join the community

› Bridging the gap between research and practice › Join efforts

7/25/2018 | 62

Tech Debt conf @

slide-45
SLIDE 45

Thank you

Credits: Philippe Kruchten Robert Nord Ipek Ozkaya Carolyn Seaman Zengyang Li Peng Liang Areti Ampatzoglou Apostolos Ampatzoglou Alexander Chatzigeorgiou