Effects of Technical Debt on Software Development Effort

Slides:



Advertisements
Similar presentations
1 SW Project Management (Planning & Tracking) Dr. Atef Z Ghalwash Faculty of Computers & Information Helwan University.
Advertisements

1 State of Michigan Achieving Software Process Improvement with Capability Maturity Model (CMM)
Metrics for Process and Projects
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Software Process Improvement Robin B. Hunter, Ph.D. Vol 2., p Presented by: Andrew Wheeler.
Code Smell Research: History and Future Directions Second PLOW Installment - March 5, Nikolaos Tsantalis Computer Science & Software Engineering.
Using UML, Patterns, and Java Object-Oriented Software Engineering Royce’s Methodology Chapter 16, Royce’ Methodology.
Application of Asset Management Principles During Asset Creation and Design Presented By Pervaiz Anwar at: CWEA, San Francisco Bay Section Asset Management.
Preventive Software Maintenance: The Past, the Present, the Future Nikolaos Tsantalis Computer Science & Software Engineering Consortium for Software Engineering.
Software Architecture for DSD DSD Team. Overview What is software architecture and why is it so important? The role of architecture in determining system.
©2010 Rolls-Royce plc The information in this document is the property of Rolls-Royce plc and may not be copied or communicated to a third party, or used.
Applying COCOMO II Effort Multipliers to Simulation Models 16th International Forum on COCOMO and Software Cost Modeling Jongmoon Baik and Nancy Eickelmann.
©2011 Rolls-Royce plc The information in this document is the property of Rolls-Royce plc and may not be copied or communicated to a third party, or used.
Introduction Wilson Rosa, AFCAA CSSE Annual Research Review March 8, 2010.
CPSC 875 John D. McGregor C20 – Technical Debt. Value-based SE SCS – success-critical stakeholder.
©2011 Rolls-Royce plc The information in this document is the property of Rolls-Royce plc and may not be copied or communicated to a third party, or used.
April 27, 2004CS WPI1 CS 562 Advanced SW Engineering Lecture #3 Tuesday, April 27, 2004.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Chapter 2 A Strategy for the Appraisal of Public Sector Investments.
Enterprise Asset Management
COCOMO-SCORM: Cost Estimation for SCORM Course Development
Software Engineering II Lecture 1 Fakhar Lodhi. Software Engineering - IEEE 1.The application of a systematic, disciplined, quantifiable approach to the.
Risk management in Software Engineering T erm Paper By By Praveenkumar Sammita Praveenkumar Sammita CSC532 CSC532.
Engineering, Operations & Technology | Information TechnologyAPEX | 1 Copyright © 2009 Boeing. All rights reserved. Architecture Concept UG D- DOC UG D-
The Challenge of IT-Business Alignment
Project Tracking. Questions... Why should we track a project that is underway? What aspects of a project need tracking?
Chapter 3: Software Maintenance Process Omar Meqdadi SE 3860 Lecture 3 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Chapter 6 : Software Metrics
Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITHClass of 39 CS3600: Software Engineering: Standards in Process Modeling CMM and PSP.
Software Engineering Lecture # 17
Software Measurement & Metrics
1 Chapter 23 Estimation for Software Projects. 2 Software Project Planning The overall goal of project planning is to establish a pragmatic strategy for.
Software Quality Metrics
Lecture 4 Software Metrics
Georgia Institute of Technology CS 4320 Fall 2003.
Chapter 1. Introduction.
Knowledge-oriented Maintenance at the University of Ottawa Timothy C Lethbridge KOM Banff.
©Ian Sommerville 2004 Software Engineering. Chapter 21Slide 1 Chapter 21 Software Evolution.
Software Architectural Assumptions in Software Architecting Chen Yang a,b, Peng Liang a, Paris Avgeriou b a State Key Lab of Software Engineering, Wuhan.
SOFTWARE METRICS. Software Process Revisited The Software Process has a common process framework containing: u framework activities - for all software.
THE IRISH SOFTWARE ENGINEERING RESEARCH CENTRELERO© What we currently know about software fault prediction: A systematic review of the fault prediction.
Measuring the Structural Quality of Business Applications 2011 Agile Conference111 Bill Curtis Jay Sappidi Jitendra Subramanyam presenter :林賢勁 1.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution 1.
SOFTWARE PROCESS AND PROJECT METRICS. Topic Covered  Metrics in the process and project domains  Process, project and measurement  Process Metrics.
University of Southern California Center for Systems and Software Engineering © 2010, USC-CSSE 1 Trends in Productivity and COCOMO Cost Drivers over the.
2015 Pipeline Safety Trust Conference November 20 th, 2015 | New Orleans, LA API RP 1175 Pipeline Leak Detection Program Management – New RP Highlights.
PSM 1July/ August 2012 P RACTICAL S OFTWARE AND S YSTEMS M EASUREMENT What Does Technical Debt Mean at a System Level 2 August 2012 Bob Epps, Lockheed.
Hussein Alhashimi. “If you can’t measure it, you can’t manage it” Tom DeMarco,
Diagnosing Design Problems in Object Oriented Systems Adrian Trifu, Radu Marinescu Proceedings of the 12th IEEE Working Conference on Reverse Engineering.
Software reviews Cost impact of software defects Defect amplification model Review metrics and their use – Preparation effort (E p ), assessment effort.
UPDATE ON GAVI ALLIANCE, THE GLOBAL FUND AND WORLD BANK COLLABORATIVE EFFORT FOR MORE EFFECTIVE HSS SEPTEMBER, 2009 Exploring a potential common platform.
Presented by Lu Xiao Drexel University Quantifying Architectural Debt.
Capability Maturity Model. CS460 - Senior Design Project I (AY2004)2 Immature Organisations Software processes are often rigorously followed. Organisation.
CS223: Software Engineering Lecture 32: Software Maintenance.
Software Development Module Code: CST 240 Chapter 6: Software Maintenance Al Khawarizmi International College, AL AIN, U.A.E Lecturer: Karamath Ateeq.
CS 577b: Software Engineering II
Project Cost Management
Estimate Testing Size and Effort Using Test Case Point Analysis
Software Analytics Platform
COCOMO III Workshop Summary
State of Michigan Achieving Software Process Improvement with
Software Project Sizing and Cost Estimation
Andy Nolan1, Silvia Abrahão2 Paul Clements3,
Pongtip Aroonvatanaporn CSCI 577b Spring 2011 March 25, 2011
Model-Driven Analysis Frameworks for Embedded Systems
Software Systems Cost Estimation
Software Engineering I
Software metrics.
Systems Engineering Technical Debt Workshop Outbrief
Why do we refactor? Technical Debt Items Versus Size: A Forensic Investigation of What Matters Hello everyone, I’m Ehsan Zabardast I am a PhD candidate.
Presentation transcript:

Effects of Technical Debt on Software Development Effort Qiao Zhang, LiGuo Huang Dept. of Computer Science and Engineering Southern Methodist University {qiaoz,lghuang}@smu.edu 30th International Forum on COCOMO and System/Software Cost Modeling

What is Technical Debt (TD)? Technical Debt: Delayed technical work or rework that is incurred when shortcuts are taken or short-term needs are given precedence over the long-term objectives. It is the result of intentional or unintentional decisions that impact the viability of a system and usually incur interests (i.e., additional cost) to eliminate. Process/Methods Schedule Capabilities Budget Documentation … Can be relevant to the decisions of Process/Methods …

World Record for Producing Technical Debt On the first day of its operation, a lot of problems reported.

Healthcare.gov System Development Problem Analysis Size and Complexity: more than 5000 pages in the Affordable Care Act and more than 78,000 qualified health plans across the states Concurrent multidisciplinary engineering: engaging 55 individual contractors to perform over $600 million in federally contracted work Ambiguous language and conflicting requirements Schedule was a key driver Development Experience: Top-level government leadership in the U.S. Dept. of Health and Human Services (HHS) had no significant experience in overseeing a system development effort anywhere close to the size and complexity of Healthcare.gov and therefore little understanding of commitments. Shortfalls in coordination Result: The White House and HHS leaders were informed in a March 2013 independent assessment from McKinsey & Co., that the “launch was fraught with risks.” All-at-once deployment of the immature systems of systems (SoSs) Proliferation of errors that could have been resolved earlier Key problems documented in the report (unstable requirements, little time for testing, little to no time for fixing problems) were never resolved before the rollout.

Magnitude of Software Proliferation and Technical Debt The demand for software systems increases by 900% each decade. Although expenditure on software development increases by 200% each decade, productivity of software system engineers only increases by 35%. Approximately 75% of the total life cycle cost for a given system is related to system maintenance and operation. Gartner estimates that the Global “IT Debt” to be $500 billion in 2014, with the potential to grow to $1 trillion by 2015. CAST Research Lab analyzed 1,400 applications containing 550 million lines of code (LOC) submitted by 160 organizations and estimated that the Technical Debt (TD) of an average-sized application of 300 KLOC is $1,083K, which represents an average TD per LOC of $3.61.

Major Sources of Technical Debt Inconsistent definitions of technical debt ! The question that produces this chart is What … The result show different root causes are selected evenly as the major source of TD. So, TD should be a very broad concern, only for the code. And also, the result shows the Inconsistent … Cause generally, people would like to define or categorize the TD with its root causes or major sources.

Overlaps between Technical Debt Categories

A Systematic Framework for Technical Debt Measurement Sources and Root Causes Categories Principal Metrics Interest Metrics Degraded architecture quality or sub-optimal solutions Architecture Debt New element and pre-existing element cost Distance between estimated and actual rework cost Violation of the principles of good object-oriented design Design Debt WMC, TCC, ATFD … Delayed certain software maintenance tasks Maintenance Debt RF, RV, and RA Maintenance effort from present to higher quality level Source code that negatively affect the legibility of the code Code Debt Violation of coding standard *Weighted Method Count (WMC), Tight Class Cohesion (TCC), Access to Foreign Data (ATFD) **Number of Public Attribute (NOPA), Weight of Class (WOC), Lines of code (LOC) --------------------- *** Rework Fraction (RF), Rebuilt Value (RV), Refactoring Adjustment (RA) Distance between optimal requirements and actual solution Requirement Debt Different set of specification Increasing rate of the distance

What is TD? Can TD be Measured? An Exploratory Example * ABC is a mobile app as a client of server system E, which is developed by team M. In the previous releases ( 𝑅 1 - 𝑅 𝑛 ), all features were built upon the protocol A for communication with E. During preparation of release 𝑅 𝑛+1 , team M declares that the protocol A needs to be replaced with protocol B since it is no longer supported by the new server system E’. As a result, app ABC may need to support both protocol A and B in the near future. TD Principal (P): ∀ 𝑀 𝑘 ∈ 𝑅 𝑛 , 𝑃= 𝑘 𝐷( 𝑀 𝑘 ,𝐴)×𝐶 𝑟 ( 𝑀 𝑘 ) TD Interest Amount: ∀ 𝑀 𝑗 ∈ 𝑅 𝑛+1 , 𝑃= 𝑗 𝐷( 𝑀 𝑗 ,𝐴)×𝐶 𝑖 ( 𝑀 𝑗 ) TD Interest Probability: probability that system E is upgraded to E’ by customers 𝑀 𝑘 : module k. | 𝐷( 𝑀 𝑘 ,𝐴): dependency between module k and protocol A; 𝐶 𝑟 ( 𝑀 𝑘 ) : rework cost of module k ; 𝐶 𝑖 ( 𝑀 𝑗 ) : development cost of new feature module j . * Y. Guo, C. Seaman, R. Gomes, A. Cavalcanti, G. Tonin, F. Q. Da Silva, A. L. M. Santos, C. Siebra, Tracking technical debt – an exploratory case study, in: Software Maintenance (ICSM), 2011 27th IEEE International Conference on, IEEE, 2011, pp. 528 – 531.

Gap Analysis: Mapping between Technical Debt and COCOMO Cost Drivers State of the Art Objective Categorizing Technical Debt (TD) Defining TD Categories Analyzing Metrics (or Indicators) of TD Categories Exploring Measurement Methods of TD Categories Technical Debt COCOMO II Cost Drivers Mapping Results Definition of Cost Drivers Rating Guidelines of Cost Drivers Relationships between Technical Debt (TD) Categories and Cost Drivers

Qualitative Analysis: Top-level Mapping between TD Categories & COCOMO II Cost Drivers

Example 1: Code Debt & COCOMO II Cost Drivers [47] E. Tom, A. Aurum, R. Vidgen, An exploration of technical debt, Journal of Systems and Software 86 (6) (2013) 1498-1516. [49] N. S. Alves, L. F. Ribeiro, V. Caires, T. S. Mendes, R. O. Spnola, Towards an ontology of terms on technical debt, in: Managing Technical Debt (MTD), 2014 Sixth International Workshop on, IEEE, 2014, pp. 1-7. [51] C. Fernandez-Sanchez, J. Daz, J. Perez, J. Garbajosa, Guiding exibility investment in agile architecting, in: System Sciences (HICSS), 2014 47th Hawaii International Conference on, IEEE, 2014, pp. 4807-4816. [56] B. Curtis, J. Sappidi, A. Szynkarski, Estimating the size, cost, and types of technical debt, in: Proceedings of the Third International Workshop on Managing Technical Debt, IEEE Press, 2012, pp. 49-53. [77] A. Potdar, E. Shihab, An exploratory study on self-admitted technical debt, in: Software Maintenance and Evolution (ICSME), 2014 IEEE International Conference on, IEEE, 2014, pp. 91-100. [91] V. Singh, W. Snipes, N. A. Kraft, A framework for estimating interest on technical debt by monitoring developer activity related to code comprehension, in: Managing Technical Debt (MTD), 2014 Sixth International Workshop on, IEEE, 2014, pp. 27-30.

Example 2: Architecture Debt & COCOMO II Cost Drivers [47] E. Tom, A. Aurum, R. Vidgen, An exploration of technical debt, Journal of Systems and Software 86 (6) (2013) 1498-1516. [50] R. L. Nord, I. Ozkaya, P. Kruchten, M. Gonzalez-Rojas, In search of a metric for managing architectural technical debt, in: Software Architecture (WICSA) and European Conference on Software Architecture (ECSA), 2012 Joint Working IEEE/IFIP Conference on, IEEE, 2012, pp. 91-100. [51] C. Fernandez-Sanchez, J. Daz, J. Perez, J. Garbajosa, Guiding exibility investment in agile architecting, in: System Sciences (HICSS), 2014 47th Hawaii International Conference on, IEEE, 2014, pp. 4807-4816. [65] R. Mo, J. Garcia, Y. Cai, N. Medvidovic, Mapping architectural decay instances to dependency models, in: Proceedings of the 4th International Workshop on Managing Technical Debt, IEEE Press, 2013, pp. 39-46.

Initial Results of Gap Analysis Four Types of Relationships: Cost drivers that directly impact on TD principal and interest E.g., RESL and architecture debt Cost drivers as indicators of the possibility of introducing TD E.g., ACAP, PCAP, PCON, APEX, PLEX, LTEX and architecture debt Cost drivers that indicate the importance of TD management E.g., RELY, RUSE, PVOL and architecture debt Cost drivers that may be extended to incorporate TD consideration in their rating guidelines E.g., CPLX and architecture debt As the result, extra efforts will be invested on paying off the TD items and usually performed as various refactoring operations.

Technical Debt and COCOMO II Reuse and Maintenance Models The percentage of design changes due to the refactoring operations on TD items 𝐴𝐴𝐹= 0.4×𝐷𝑀 + 0.3×𝐶𝑀 + 0.3×𝐼𝑀 The percentage of LOC changes due to the refactoring operations on TD items Different design level – but have to be the same magnitude 𝑃𝑀 𝑀 =𝐴× 𝑆𝑖𝑧𝑒 𝑀 𝐸 × 𝑖=1 15 𝐸𝑀 𝑖

Technical Debt and Refactoring Operations TD Items Refactoring Operations God Class Extract Class Extract Subclass Data Class Encapsulate Field Remove Setting Hide Method Duplicate Code Extract Method Pull Up Field Pull Up Method Every category of TD  have different TD Items Every TD Items under TD category  refactoring operations

Refactoring God Class: Sizing Change for Extracting Class Operations Baseline*: Extract from a source class 𝑐 𝑠 with a set of attributes {𝑎 𝑘 } (where 𝑛=|{𝑎 𝑘 }| ) and a set of methods {𝑚 ℎ }, to a target class 𝑐 𝑡 . While 𝑙=6 when program language is JAVA. 𝐿𝑂𝐶 𝑝 𝑐 𝑠 = 𝐿𝑂𝐶 𝑏 𝑐 𝑠 −(𝑛𝑙 −𝑛+ ℎ 𝐿𝑂𝐶( 𝑚 ℎ ) ) 𝐿𝑂𝐶 𝑝 𝑐 𝑡 =𝑛𝑙+ ℎ 𝐿𝑂𝐶( 𝑚 ℎ ) +𝑝 Challenge: Investigating additional factors that impact the final change of software size in order to improve the prediction accuracy * Chaparro, O., Bavota, G., Marcus, A., & Di Penta, M. (2014, September). On the impact of refactoring operations on code quality metrics. In Software Maintenance and Evolution (ICSME), 2014 IEEE International Conference on(pp. 456-460). IEEE.

Refactoring Operations Research Plan Systematic Literature Review on Software Refactoring and Measurement Refactoring Operations TD Items Mapping Results Systematic Mapping Study on TD items and Refactoring Operations Replicate Baseline Sizing Change Prediction Functions Sizing Change Prediction Prediction Model Evaluate the Accuracy of Sizing Change Prediction with Commit History Evaluation

Technical Debt (TD) is a growing concern for software systems. Conclusions Technical Debt (TD) is a growing concern for software systems. The effect of TD on development/maintenance effort is promising to be estimated with COCOMO. Gap analysis indicates that there are four types of relationships between TD categories and COCOMO II cost drivers. Predicting sizing change due to TD item refactoring can be a bridge to link TD measurement with the reuse and maintenance models in COCOMO.

Thank you! Qiao Zhang, LiGuo Huang Dept. of Computer Science and Engineering Southern Methodist University {qiaoz,lghuang}@smu.edu 30th International Forum on COCOMO and System/Software Cost Modeling