PSM Whitepaper: Systems Engineering Technical Debt Bob Epps Lockheed Martin Corporation March 14, 2012.

Slides:



Advertisements
Similar presentations
College of Continuing Education Systems Engineering Non-credit Certificate.
Advertisements

Systems Engineering Technical Debt Bob Epps USC-CSSE COCOMO II Workshop October 16, 2012.
Lecture # 2 : Process Models
Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department of Defense © 1998 by Carnegie Mellon.
Technical Debt Power Tool or Plague? Adapted from a paper by Steve McConnell Chief Software Engineer, Construx Software
1 Software Requirement Analysis Deployment Package for the Basic Profile Version 0.1, January 11th 2008.
A framework for describing IT Project Management Processes and Tool Set Features Enterprise Project Management Framework.
SE 555 Software Requirements & Specification Requirements Management.
CPSC 875 John D. McGregor C20 – Technical Debt. Value-based SE SCS – success-critical stakeholder.
1 Introduction to System Engineering G. Nacouzi ME 155B.
CHAPTER 19 Building Software.
Engineering Systems of.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
Microsoft Office Project Portfolio Server
What is Business Analysis Planning & Monitoring?
Effective Methods for Software and Systems Integration
“Here’s why you need the new wheels, too…” Shawn and Steve Image from
What is Software Engineering? the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software”
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 1: Best Practices of Software Engineering.
Chapter 2 The process Process, Methods, and Tools
System Planning- Preliminary investigation
Introducing the budget World Bank Institute’s Parliamentary Staff Training Program.
Software Inspections. Defect Removal Efficiency The number of defects found prior to releasing a product divided by The number of defects found prior.
1 Process Engineering A Systems Approach to Process Improvement Jeffrey L. Dutton Jacobs Sverdrup Advanced Systems Group Engineering Performance Improvement.
Reducing ITS Project Risk By using and developing consensus based regional ITS architecture and a systems engineering process Robert S. Jaffe, Ph.D., CSEP.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Teaching material for a course in Software Project Management & Software Engineering – part II.
Principles of Information Systems, Sixth Edition Systems Design, Implementation, Maintenance, and Review Chapter 13.
Certification and Accreditation CS Phase-1: Definition Atif Sultanuddin Raja Chawat Raja Chawat.
Extreme/Agile Programming Prabhaker Mateti. ACK These slides are collected from many authors along with a few of mine. Many thanks to all these authors.
CS 577b Software Engineering II -- Introduction
SOFTWARE SYSTEMS DEVELOPMENT 4: System Design. Simplified view on software product development process 2 Product Planning System Design Project Planning.
Database System Development Lifecycle 1.  Main components of the Infn System  What is Database System Development Life Cycle (DSDLC)  Phases of the.
McGraw-Hill/Irwin Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. Chapter 3 Identification and Selection of Development Projects.
Georgia Institute of Technology CS 4320 Fall 2003.
Assessing the influence on processes when evolving the software architecture By Larsson S, Wall A, Wallin P Parul Patel.
Software Engineering - I
©Ian Sommerville 2004 Software Engineering. Chapter 21Slide 1 Chapter 21 Software Evolution.
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
Principles of Information Systems, Sixth Edition 1 Systems Design, Implementation, Maintenance, and Review Chapter 13.
SOFTWARE ENGINEERING. Objectives Have a basic understanding of the origins of Software development, in particular the problems faced in the Software Crisis.
CSPC 464 Fall 2014 Son Nguyen. 1. The Process of Software Architecting, Peter Eeles, Peter Cripss 2. Software Architecture for Developers, Simon Brown.
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.
 Many models have been proposed to deal with the problems of defining activities and associating them with each other  The first model proposed was the.
University of Southern California Center for Systems and Software Engineering Technical Debt CS 577 Software Engineering Supannika Koolmanojwong.
Lectures 2 & 3: Software Process Models Neelam Gupta.
Mahindra Satyam Confidential Quality Management System Software Defect Prevention.
Welcome to Software Project Management. CONVENTIONAL SOFTWARE MANAGEMENT The BEST and WORST thing about software is its flexibility. 1.Software development.
Systems Development Life Cycle
SYSE 802 John D. McGregor Module 0 Session 3 Systems Engineering QuickView.
 System Requirement Specification and System Planning.
Software Development Module Code: CST 240 Chapter 6: Software Maintenance Al Khawarizmi International College, AL AIN, U.A.E Lecturer: Karamath Ateeq.
Process 4 Hours.
Managing the Project Lifecycle
BANKING INFORMATION SYSTEMS
Chapter 18 Maintaining Information Systems
Iterative design and prototyping
IEEE Std 1074: Standard for Software Lifecycle
Chapter 6 Database Design
Level 1 Level 1 – Initial: The software process is characterized as ad hoc and occasionally even chaotic. Few processes are defined, and success depends.
Quantifying Quality in DevOps
CS 577b Software Engineering II -- Introduction
Lockheed Martin Canada’s SMB Mentoring Program
Software Engineering I
Case Study 1 By : Shweta Agarwal Nikhil Walecha Amit Goyal
Systems Engineering Technical Debt Workshop Outbrief
Presentation transcript:

PSM Whitepaper: Systems Engineering Technical Debt Bob Epps Lockheed Martin Corporation March 14, 2012

Technical Debt Observations “Agile Project Management”, Jim Highsmith, second edition Cost of Change (CoC) Years Product Release Customer Responsiveness Actual CoC Optimal CoC Technical Debt

Technical Debt “Management of Technical Debt”. Steve McConnell – “ ‘Technical Debt’ refers to the delayed technical work that is incurred when technical short cuts are taken, usually in pursuit of calendar driven software schedules. Just like financial debt, some technical debt can serve valuable business purposes. Other technical debts are simply counter productive. The ability to take on debt safely, track their debt, manage their debt and pay down their debt varies among organizations. Explicit decision making before taking on debt and more explicit tracking of debt are advised”

Technical Debt “Management of Technical Debt”, Steve McConnell Summary of Kinds of Debt Non Debt Features backlog, deferred features, cut features, and so on. Not all incomplete work is debt. These are not debt because they do not require interest payments Debt I. Unintentional Debt. Debt incurred unintentionally due to low quality II. Intentional Debt. Debt incurred intentionally II.A Short-Term Debt. Short Term Debt, usually incurred reactively, for tactical reasons II.A.1 Focused Short Term Debt. Individually identifiable shortcuts(like a car loan) II.A.2 Unfocused Short-Term Debt. Numerous tiny shortcuts(like a credit card) II.B Long-Term Debt. Long-term debt, usually incurred proactively, for strategic reasons

Technical Debt “Management of Technical Debt” Steve McConnell – “ The term ‘technical debt’ was coined by Ward Cunningham to describe the obligation that a software organization incurs when it chooses a design or construction approach that’s expedient in the short term but that increases complexity and is most costly in the long term” – There are two kinds of technical debt Type I, Debt incurred unintentionally – Inexperienced individuals produces error prone results Type II, Debt incurred intentionally – Conscious decision to optimize for the “present” rather than the “future”

Technical Debt “Management of Technical Debt”, Steve McConnell Type II, Debt incurred intentionally – “Short-Term” Debt (Type II.A) » A company takes on a short term debt when it has the money; it just does not have it now. » Short term debt is expected to be paid off frequently » Focused Short-Term Debt(Type II.A.1) » Unfocused Short-Term Debt (Type II.A.2) Should be avoided – “Long-Term” Debt(Type II.B) » A company takes on strategically and proactively » Primary rationale is that the development work “today” is seen as more expensive than the cost in the future. » Example: Responding to “Time to Market” pressures Preservation of Startup capital Delaying Development expense – Debt Service » The “interest” charged for incurring the debt

Technical Debt “Management of Technical Debt”, Steve McConnell Communicating about Technical Debt Shift from Technical vocabulary to a Financial vocabulary Use a projects Maintenance budget as a rough proxy for its technical debt service load Discuss Debt in terms of “money” instead of “features” Be sure you’re taking the right kind of debt Treat the discussion of Debt as an ongoing dialog rather than a single discussion

Types of Debt “M anaging Software Debt: Building for Inevitable Change”, Chris Sterling Technical Debt – These are activities that a team or team members choose not to do well now and will impede future development if left undone Quality Debt – There is a diminishing ability to verify the functional and technical quality of software Configuration Management Debt – Integration and release management becomes more risky, complex and error-prone Design Debt – The cost of adding features is increasing toward the point where it is more than the cost of writing from scratch. Platform Debt – The availability of people to work on software changes is becoming limited or cost-prohibitive.

70% 85% 95% Committed Costs Cost to Extract Defects 3X-6X 20X-100X 500X-1,000X The Cost of Undetected Defects 0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100% Cumulative Percentage of Life-Cycle Cost 15% Design 20% Development 50% Production/ Test 100% Operation  Disposal Concept 8% Reference: Defense Systems Management College (DAU) Time

Levels of Architecture (Conceptual to Logical to Physical Mapping) Conceptual Level Logical Level Physical Level System Elements Components

Low Moderate Medium High Fidelity Response Time Size Factor X Reliability Resource Utilization Maintainability Factor Z Required Proposed Is Technical Debt a System complexity factor?

Basic Parallel Process 5ms 10ms 5ms 15ms 3ms5ms 15ms Sample of Timing Allocation to Processes Design decision that Incurs Technical Debt

Workshop Exercise # 1 Identifying Technical Debt Development profile (Perfect World) Defect Density profile Development profile(Real World) Mapping Development Profiles

Analysis DesignImplementation TestIntegration Development Cost(Perfect World) % Effort per Phase

Analysis DesignImplementation TestIntegration Defect InsertionDefect detection & Removal Design Defects Integration Defects Typical Defect Profiles Implementation Defects Classification of Defects

Analysis DesignImplementation TestIntegration Development Cost(Real World) % Effort per Phase

Analysis DesignImplementation TestIntegration Development Cost % Effort per Phase

Analysis DesignImplementation TestIntegration Development Cost % Effort per Phase Technical Debt? Technical Debt? Technical Debt? Technical Debt?

Analysis DesignImplementation TestIntegration Development Cost % Effort per Phase Technical Debt? Technical Debt? Better or Worse?

Analysis DesignImplementation TestIntegration Development Cost % Effort per Phase Technical Debt? Technical Debt? Better or Worse?

Analysis DesignImplementation TestIntegration COTS Integration % Effort per Phase Technical Debt?

Technical Debt “Enabling Agility by Strategically Managing Architectural Technical Debt”, Ipek Ozkaya – “Practices intended to speed up the delivery of value to users, however, often result in high rework costs that ultimately offset the benefits of faster delivery, especially when good engineering practices are forgotten along the way. The rework and degrading quality often is referred to as technical debt” – “For example, through our work on architecture- centric engineering, we often encounter projects that defer modifiability requirements, specifically portability.”

Technical Debt “Enabling Agility by Strategically Managing Architectural Technical Debt”, Ipek Ozkaya – “Our current work focuses on architectural technical debt, which involves architectural decisions made to defer necessary work during the planning or execution of software projects, such as short-cuts taken in designing the structure of the system that may require rework.” – “We are particularly interested in identifying the measureable aspects of architectural technical debt by exploring dependency analysis”

Technical Debt “Enabling Agility by Strategically Managing Architectural Technical Debt”, Ipek Ozkaya – “By the end of this project, we will produce a model for managing technical debt that will allow the incurrence of some debt to increase delivery tempo when needed, but prevent too much accumulation, which would impede the ability to deliver.” Reference: “Enabling Agility through Architecture”, Nanette Brown, Robert Nord, Ipek Ozkaya; CrossTalk-Nov/Dec 2010

White paper Outline Overview of Systems Engineering Technical Debt – Types of Debt – Technical Debt definitions – Relationship between SE Technical Debt & SE Leading Indicators SE Leading Indicators – Industry.pdf Industry.pdf Mapping of SE Leading Indicators to SE Technical Debt

White paper Outline(continuation) Software Technical Debt principles transferable to Systems Engineering Implication of Technical Debt to Program Types – System Development – NDI Integration COTS GOTS Reuse – Operation& Maintenance/Sustainment

White paper Outline(continuation) Identify sources and methods of measurement of Technical Debt within the Systems Engineering Life Cycle – System Requirements Analysis – System Architectural Design – System Implementation – System Integration, Verification and Validation – System Transition(Deployment) – System Operations & Maintenance

White paper Outline(continuation) Identification of Implication of Systems Engineering Technical Debt to Software and Hardware Elements – System Requirements – System Partitioning – System Interfaces

Basic Parallel Process 5ms 10ms 5ms 15ms 3ms5ms 15ms Sample of Timing Allocation to Processes Design decision that Incurs Technical Debt

White paper Outline(continuation) Technical Debt imposed by other disciplines to Systems Engineering – Customer – Sub Contractors – Program Management – Finance How to Measure & Manage SE Technical Debt – Types of Measures – Management techniques

Appendix Glossary of Terms Summary of Kinds of SE Technical Debt – Unintentional Debt – Intentional Debt Short term Debt Long Term Debt Summary of Types of Debt

Technical Debt Action Plan Draft Whitepaper annotated Outline Solicit contributions to Whitepaper from Workshop Participants Solicit collaboration with appropriate INCOSE working group

Workshop Participants & Other Potential White Paper Contributors Mike Bandor Alejandro Bianchi Bill Curtis Mike Denny Bob Epps John Ertischweiger Cheryl McIntyre John Murdoch Alain Picard Garry Roedler Jim Stubbe INCOSE Working Groups – Affordability – Architecture – Measurement – Process Improvement

Technical Debt Action Plan Conduct virtual meeting with contributors to review outline and kick-off, prior to April 2012 Conduct virtual meetings with contributors twice a month

Technical Debt Action Plan Consolidate white paper draft, no later than end of May, 2012 Provide to PSM and INCOSE for two week review period Final review of updated white paper, no later than end of June, 2012 Presentation & comments on Technical Debt Whitepaper during July, 2012 Release Technical Debt Whitepaper no later than September 2012