technical debt
play

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


  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/

  2. The Known Universe

  3. Rankings - Top 100 university 7/25/2018 | 3 #83 Times Higher Education Worldwide #59 Academic Ranking of World Universities #86 U.S. News ‘Best Global Universities Ranking’ Founded in 1614

  4. Research Philosophy | 4 › 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

  5. Outline 7/25/2018 | 5 › Introducing the metaphor › Emergence of TD › Concepts of TD and management › Present and Future

  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 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

  7. 7/25/2018 | 8 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

  8. Technical Debt illustrated 7/25/2018 | 10 Images from https://refactoring.guru/smells

  9. Technical Debt metaphor 7/25/2018 | 11 › 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

  10. Typical symptoms 7/25/2018 | 12 › 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

  11. Outline 7/25/2018 | 13 › Introducing the metaphor › Emergence of TD › Concepts of TD and management › Present and Future

  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

  13. Is this really new? 7/25/2018 | 17 Communities › Maintenance & evolution › Reengineering / refactoring Terms › Aging › Decay › Sustainability › Little progress › “Dull” topic

  14. Convergence of SE disciplines 7/25/2018 | 18 › Program analysis/comprehension › SW Quality measurement › Qualitative research methods › SW risk management Managing TD>sum of parts! P. Avgeriou et al. Reducing Friction in Software Development , IEEE SW ‘16

  15. 7/25/2018 | 20 Z. Li et al., A systematic mapping study on technical debt and its management, JSS 2015

  16. Technical Debt

  17. Outline 7/25/2018 | 22 › Introducing the metaphor › Emergence of TD › Concepts of TD and management › Present and Future

  18. Vicious circle of technical debt 7/25/2018 | 23 Business Pressure Lower Incur TD Dev Velocity

  19. Debt=Principal+Interest 7/25/2018 | 25 Ampatzoglou et al., A Financial Approach for Managing Interest in TD, BMSD ‘15

  20. Breaking point: principal vs. interest 7/25/2018 | 26 Ampatzoglou et al., A Financial Approach for Managing Interest in TD, BMSD ‘15

  21. Just the code? 7/25/2018 | 32 Not quite right › Code › Requirements › Architecture › Design Technical debt is pervasive › Test › Build › Documentation › Infrastructure › Versioning …

  22. Just the code? 7/25/2018 | 33 › Code Complex dependencies › Requirements Architecture smells › Architecture Architecture drift › Design › Test › Build › Documentation › Infrastructure › Versioning

  23. Just the code? 7/25/2018 | 35 › Code Low code coverage › Requirements Lack of test automation › Architecture Residual defects not found › Design › Test › Build › Documentation › Infrastructure › Versioning

  24. Just the code? 7/25/2018 | 36 › Code › Requirements Insufficient/incomplete/out of date › Architecture Lack of code comments › Design › Test › Build › Documentation › Infrastructure › Versioning

  25. Architecture TD is dominant 7/25/2018 | 37 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 https://insights.sei.cmu.edu/sei_blog/2015/07/a-field-study-of-technical-debt.html

  26. 7/25/2018 | 39

  27. Managing TD 7/25/2018 | 40 › TD prevention › TD identification › TD measurement › TD prioritization › TD monitoring › TD repayment › TD representation/documentation › TD communication Li et al., Architectural Debt Management in Value-oriented Architecting, Elsevier ‘14

  28. Managing TD 7/25/2018 | 41 › TD prevention › TD identification › TD measurement Code analysis Dependency analysis › TD prioritization Solution comparison › TD monitoring Reverse engineering › TD repayment › TD representation/documentation › TD communication

  29. TD Identification 7/25/2018 | 42

  30. Managing TD 7/25/2018 | 43 › TD prevention › TD identification › TD measurement Mathematical models Code metrics › TD prioritization Human estimation › TD monitoring › TD repayment › TD representation/documentation › TD communication

  31. SonarQube 7/25/2018 | 44

  32. Managing TD 7/25/2018 | 47 › TD prevention › TD identification › TD measurement Refactoring › TD prioritization Automating manual tasks › TD monitoring › TD repayment › TD representation/documentation › TD communication

  33. Refactoring 7/25/2018 | 48

  34. Repaying TD 7/25/2018 | 49 Digkas et al., The Evolution of TD in the Apache Ecosystem, ECSA ‘17

  35. Repaying TD 7/25/2018 | 50 › 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 Digkas et al., How Do Developers Fix Issues and Pay Back TD in the Apache Ecosystem, SANER ‘18

  36. Outline 7/25/2018 | 53 › Introducing the metaphor › Emergence of TD › Concepts of TD and management › Present and Future

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

  38. State of the art 7/25/2018 | 56 › Whole lifecycle but mostly code and design › Basic concepts are mature › Tooling (industrial & prototypes) › Economic theories

  39. State of practice 7/25/2018 | 57 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

  40. Interplay between qualities 7/25/2018 | 58 › Theory: Qualities studied as islands › Practice: Qualities interplay • Run-time vs. design time › Communities needs to interact › Interoperability • Methods and tools https://sdk4ed.eu/

  41. 7/25/2018 | 59

  42. 7/25/2018 | 61

  43. Join the community 7/25/2018 | 62 › Bridging the gap between research and practice › Join efforts Tech Debt conf @

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

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend