CPSC 875 John D. McGregor C20 – Technical Debt. Value-based SE SCS – success-critical stakeholder.

Slides:



Advertisements
Similar presentations
1 Requirements and the Software Lifecycle The traditional software process models Waterfall model Spiral model The iterative approach Chapter 3.
Advertisements

CPSC 875 John D. McGregor C20 – Technical Debt. Data Analytics Architecture.
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.
Computer Engineering 203 R Smith Project Tracking 12/ Project Tracking Why do we want to track a project? What is the projects MOV? – Why is tracking.
TECH Project A Look at Software Development Champion/Define Phase Date: 10/02/2013 Team members: Travis W. Gillison.
1 Design and Integration: Part 1. 2 What’s a metaphor? Ward Cunningham cites George Lakoff’s book, Metaphors We Live By: Lakoff argues that the assumptions.
Applied Software Project Management INTRODUCTION Applied Software Project Management 1 5/20/2015.
©2003 Prentice Hall Business Publishing, Cost Accounting 11/e, Horngren/Datar/Foster Strategy, Balanced Scorecard, and Strategic Profitability Analysis.
Strategy, Balanced Scorecard, and Strategic Profitability Analysis
Recall The Team Skills 1. Analyzing the Problem 2. Understanding User and Stakeholder Needs 3. Defining the System 4. Managing Scope 5. Refining the System.
Unit Five – Transforming Organizations
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
SE is not like other projects. l The project is intangible. l There is no standardized solution process. l New projects may have little or no relationship.
Applied Software Project Management 1 Introduction Dr. Mengxia Zhu Computer Science Department Southern Illinois University Carbondale.
SE 555 Software Requirements & Specification 1 SE 555 Software Requirements & Specification Prototyping.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Supplier Management and Supplier Development
Software Process and Product Metrics
Sources of Finance How to get your business started...
Strategic Financial Decision-Making Framework
Capability Maturity Model
Don Cole Risk Assessment and Mitigation Project Management for ARA Engineers and Scientists.
The Many Contexts of Software Architecture
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
Software Reliability: The “Physics” of “Failure” SJSU ISE 297 Donald Kerns 7/31/00.
AGENDA 09/09 & 09/10 F Nature of Strategic Challenge & F Strategic Management F The Strategy Concept and Process F Strategic Plan - Team Meetings.
Agile Modeling Theory. 2 Agile Modeling (AM) AM is a chaordic, practices-based process for modeling and documentation AM is a collection of practices.
© 2009 Delmar, Cengage Learning Chapter 5 Planning and Organizing an Agribusiness.
Software Development Process and Management (or how to be officious and unpopular)
CPSC 2150 August 21, Chapter 1 Object Oriented Software Development This is an introductory course In this chapter we will look at 3 topics Challenges.
1 TenStep Project Management Process ™ PM00.7 PM00.7 Project Management Preparation for Success * Manage Risk *
Software Requirements Engineering: What, Why, Who, When, and How
Needles Powers Principles of Financial Accounting 12e Accounting for Merchandising Operations 6 C H A P T E R ©human/iStockphoto.
A Summary of Caturano and Company’s Whitepaper Presented by: Joseph L. Petrelli, President & Co-Founder Demotech, Inc.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
Ethics of Software Testing Thomas LaToza CS 210 Final Presentation 12 / 2 / 2002.
Computers Are Your Future Tenth Edition Chapter 13: Systems Analysis & Design Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall1.
SE is not like other projects. l The project is intangible. l There is no standardized solution process. l New projects may have little or no relationship.
Configuration Management and Change Control Change is inevitable! So it has to be planned for and managed.
AP-1 4. Agile Processes. AP-2 Agile Processes Focus on creating a working system Different attitude on measuring progress XP Scrum.
1 Design and Integration: Part 3 To prepare for today’s class, visit Cookie Clicker and plan with it for a few minutes:
February 15, 2004 Software Risk Management Copyright © , Dennis J. Frailey, All Rights Reserved Simple Steps for Effective Software Risk Management.
02:01© hello2morrow1 Love your Architecture Alexander v. Zitzewitz blog.hello2morrow.com.
> whoami Yuriy Brun Office: CSE 340
CSE SW Project Management / Module 15 - Introduction to Effort Estimation Copyright © , Dennis J. Frailey, All Rights Reserved CSE7315M15.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
Extreme programming (XP) Variant of agile Takes commonsense practices to extreme levels © 2012 by Václav Rajlich1.
Stand Up Comedy Project/Product Management
SOFTWARE PROCESS IMPROVEMENT SHARATH CHANDAR REDDY ALETI CSC 532 TERM PAPER.
Unit – I Presentation. Unit – 1 (Introduction to Software Project management) Definition:-  Software project management is the art and science of planning.
MGT 461 Lecture #27 Project Execution and Control Ghazala Amin.
1 Requirements Engineering for Agile Methods Lecture # 41.
Chapter 8: Maintenance and Software Evolution Ronald J. Leach Copyright Ronald J. Leach, 1997, 2009, 2014,
I N T HE N AME OF G OD. T IME T O M ARKET (TTM) W HAT IS TTM ? time to market ( TTM ) is the length of time it takes from a product being conceived until.
Stoimen Stoimenov QA Engineer SitefinityLeads,SitefinityTeam6 Telerik QA Academy Telerik QA Academy.
CPSC 875 John D. McGregor C20 – Data Analytics/Technical Debt.
Ashima Wadhwa.  Probably the most time-consuming project management activity.  Continuous activity from initial concept through to system delivery.
MGT 461 Lecture #27 Project Execution and Control
Continuous Delivery- Complete Guide
What is Wrong with Models?
CIM Modeling for E&U - (Short Version)
Requirement Prioritization
BANKING INFORMATION SYSTEMS
Identify the Risk of Not Doing BA
The Systems Engineering Context
Level 1 Level 1 – Initial: The software process is characterized as ad hoc and occasionally even chaotic. Few processes are defined, and success depends.
Requirements and the Software Lifecycle
Software life cycle models
Software metrics.
Software Requirement and Specification
Presentation transcript:

CPSC 875 John D. McGregor C20 – Technical Debt

Value-based SE SCS – success-critical stakeholder

A process

Value-based result

We don’t have time to upgrade our compiler version for now, we’ll do it later. We should probably use this design but it will takes 6 months compare to this reasonable one which will take 2 months. We’re reaching some crash after a 100 hours stress run. No customer will go that far, let’s ship it for now ! Our code doesn’t comply with industry standard. Let’s ship it anyway and will fix it later. your-technical-debt/ your-technical-debt/ if it actually took them 5 days but they think it would have taken them 3 days with a clean system, then you paid 2 days of effort as interest on your technical debt

Technical debt 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.

Technical debt - 2 Ongoing development in the upstream project can increase the cost of “paying off the debt” in the future. A team should take opportunities, on a regular basis, to pay back (or pay off) this debt. Either reserve a percentage of your development cycle or dedicate an entire cycle to complete this work. If you don’t, it will come back to haunt you. If your kludge of a solution doesn’t come back to bite the development team, it will probably haunt the help desk, support team, or someone else downstream.

Technical debt is a gap

The metaphor To date, technical debt has been used as a metaphor and rhetorical device within the agile community with increasingly recognized utility for technical communication and for communication between engineers and executives. The technical debt concept is gaining traction as a way to focus on the long-term management of accidental complexities created by short-term compromises. /foser076-brown.pdf

Why debt? There is an optimization problem where optimizing for the short-term puts the long-term into economic and technical jeopardy when debt is unmanaged. Design short-cuts can give the perception of success until their consequences start slowing projects down. Development decisions, especially architectural ones, need to be actively managed and continuously analyzed quantitatively as they incur cost, value, and debt.

Debt, costs, and value You are allowed to run up debt until the lender questions your ability to repay Periodically, you need to pay off some debt in order to be able to borrow again when you need to. That means planning for time in the development process to pay back.

Properties of debt Visibility. Significant problems arise when debt is not visible. In many cases, it is (or was) known to some people but it is not visible enough to others who eventually have to pay for it. Value. In its financial use, debt when managed correctly is a device to create value Present value. In addition to the overall potential system value enabled by technical debt, the present value of the costs incurred as a result of the debt, including the time-to impact and uncertainty of impact, must be mapped to the overall cost-benefit analysis.

Properties of debt - 2 Debt accretion. Debt does not necessarily combine additively, but super-additively in the sense that taking on too much debt leads a system into a bad, perhaps irreparable state Environment. In software engineering projects, debt is relative to a given or assumed environment. Origin of debt. It is important to distinguish sharply between strategic debt, taken on for some advantage, and unintentional debt, that is taken on either through poor practices or simply because the environment changed in a way that created a mismatch that reduces system value.

Properties of debt - 3 Impact of debt. The locality (or lack thereof) of debt is important: are the elements that need to be changed to repay a debt localized or widely scattered?

Classes of debt

Assessing Technical Debt Complexity Code Duplication Documentation Debt Testing Debt Architectural Debt

Research issues Refactoring Architectural issues Identifying dominant sources of debt Measurement issues Non-functional artifacts Monitoring Process issues

Entropy reduction Use code tags. Establish a rhythm. Time-box the ER activity Don’t ship the result Choose your language carefully Use ER to reinforce other values you deem important Don’t commit unless you can deliver.

Why no-one repays technical debt Business people don’t see technical debt. Perceived low ROI. Developers don’t like repaying technical debts. Development processes don’t focus on it.

content/uploads/2010/04/entropy- reduction.pdf content/uploads/2010/04/entropy- reduction.pdf