CPSC 875 John D. McGregor C20 – Technical Debt. Data Analytics Architecture.

Slides:



Advertisements
Similar presentations
Presentation Title | Date | Page 1 Extracting Value from SOA.
Advertisements

Life Science Services and Solutions
Systems Investigation and Analysis
1 Requirements and the Software Lifecycle The traditional software process models Waterfall model Spiral model The iterative approach Chapter 3.
Software Process Models
Self-Service Business Intelligence for the Product Management Department (Concurrency Corporation)
Internet Management Consultants and Solution Providers Outstanding CMS Projects Lessons from the Front Line.
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.
Systems Engineering in a System of Systems Context
The Role of Software Engineering Brief overview of relationship of SE to managing DSD risks 1.
Business Intelligence Michael Gross Tina Larsell Chad Anderson.
Strategy, Balanced Scorecard, and Strategic Profitability Analysis
Unit Five – Transforming Organizations
CPSC 875 John D. McGregor C20 – Technical Debt. Value-based SE SCS – success-critical stakeholder.
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.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Supplier Management and Supplier Development
Introduction to Business Intelligence: (CIT625) Business Performance Management (BPM)
Software Process and Product Metrics
Strategic Financial Decision-Making Framework
Agile Process: Overview n Agile software engineering represents a reasonable compromise to conventional software engineering for certain classes of software.
The Many Contexts of Software Architecture
Software Reliability: The “Physics” of “Failure” SJSU ISE 297 Donald Kerns 7/31/00.
Accelerating Product and Service Innovation © 2013 IBM Corporation IBM Integrated Solution for System z Development (ISDz) Henk van der Wijk 23 Januari.
Mantova 18/10/2002 "A Roadmap to New Product Development" Supporting Innovation Through The NPD Process and the Creation of Spin-off Companies.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
1 Design and Integration: Part 1 Nuggets about Design vs Project Management.
6-January-2003cse Introduction © 2003 University of Washington1 Introduction CSE 403, Winter 2003 Software Engineering
1DMG Confidential. Background: Key Problem Areas  Scalability Ingest and export processes not able to handle burst traffic loads Exponential growth in.
Click to edit text Presentation Title Presenter’s name Presenter’s Title Date Be Efficient – Accurate – Connected™
1.  Describe an overall framework for project integration management ◦ RelatIion to the other project management knowledge areas and the project life.
Software Requirements Engineering: What, Why, Who, When, and How
CPSC 372 John D. McGregor Module 2 Session 1 More on requirements and the Investment Decision.
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
Search Engine Optimization © HiTech Institute. All rights reserved. Slide 1 What is Solution Assessment & Validation?
AP-1 4. Agile Processes. AP-2 Agile Processes Focus on creating a working system Different attitude on measuring progress XP Scrum.
02:01© hello2morrow1 Love your Architecture Alexander v. Zitzewitz blog.hello2morrow.com.
Chapter 1: Fundamental of Testing Systems Testing & Evaluation (MNN1063)
> whoami Yuriy Brun Office: CSE 340
Enterprise Architecture Aligning IT and Business during Integration Antonio Rios April 2008.
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.
Rational Unified Process Fundamentals Best Practices of Software Engineering Rational Unified Process Fundamentals Best Practices of Software Engineering.
Proficy Workflow for Water reduce. improve. secure.
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.
Software Engineering (CSI 321) Software Process: A Generic View 1.
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.
Basic Concepts of Software Architecture. What is Software Architecture? Definition: – A software system’s architecture is the set of principal design.
CPSC 872 John D. McGregor Session 31 This is it..
Stoimen Stoimenov QA Engineer SitefinityLeads,SitefinityTeam6 Telerik QA Academy Telerik QA Academy.
CPSC 875 John D. McGregor C20 – Data Analytics/Technical Debt.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
What is Wrong with Models?
CIM Modeling for E&U - (Short Version)
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.
BPT 2423 – STATISTICAL PROCESS CONTROL
Enterprise Avatar An EmpFinesse™ Nudge Solution Track.
Software life cycle models
Business Intelligence
Big DATA.
Six Sigma Introduction 1 1.
Presentation transcript:

CPSC 875 John D. McGregor C20 – Technical Debt

Data Analytics Architecture

data layer: structured data in an RDBMS, NoSQL, Hbase, or Impala; unstructured data in Hadoop MapReduce; streaming data from the web, social media, sensors and operational systems; and limited capabilities for performing descriptive analytics. Tools such as Hive, HBase, Storm and Spark analytics layer: includes a production environment for deploying real-time scoring and dynamic analytics; a development environment for building models; and a local data mart integration layer: the end-user applications and analytics engines together, and it usually includes a rules engine or CEP engine, and an API for dynamic analytics decision layer: it can include end-user applications such as desktop, mobile, and interactive web apps, as well as business intelligence software.

5 steps data distillation, model development, validation and deployment, real-time scoring, and model refresh.

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