• No results found

Managing Software Debt. Continued Delivery of High Values as Systems Age

N/A
N/A
Protected

Academic year: 2021

Share "Managing Software Debt. Continued Delivery of High Values as Systems Age"

Copied!
64
0
0

Loading.... (view fulltext now)

Full text

(1)

Managing Software Debt

(2)

2

Delivering the best in Agile development, consulting, training and coaching

services, SolutionsIQ offers a full range of technology

services from Agile training and coaching to software delivery and talent

acquisition.

Speaker - Chris Sterling

Certified Scrum Trainer

Managing Consultant, Agile Coach, and Architect at SolutionsIQ

Consults on enterprise architecture and Agile software development practices across a spectrum of industries Founder of the International Association of Software Architects (IASA) Puget Sound chapter

Supports Seattle Scrum Users Group with Kane Mar UW Extension Agile Developer Certification Program board member

Email: [email protected]

Blog: http://chrissterling.gettingagile.com

(3)

The Problem

Software gets more difficult to add features to as it ages

Business expectations do not lessen as software ages Software must remain maintainable and changeable to meet needs of business over time

(4)

Software Debt

(5)

Software Asset Liabilities

Like-to-like migrations

Limited experts capable to work on a system Long release stabilization periods

(6)

Like-to-Like Migrations

“It will be easy since we worked on the original version” - although we understand the domain we will be

fighting with new features, technology, tools, and processes

(7)

Limited Expertise

(8)

Long Stabilization Periods

30% 70% Release 1 45% 55% Release 2 60% 40% Release 3

(9)

Costly Regression Test Phases

$0 $1,250 $2,500 $3,750 $5,000 1 2 3 4 5 6 7 8 9 10 11 12 13

Cost of Feature Implementation

Weeks

(10)

Higher Costs for People

Legacy software expenses increase with time

COBOL programmers more expensive due to less experienced people to meet demand

(11)

Software Debt Creeps In

Function Area Component 1 Component 2 Component 3

(12)

Software Debt Creeps In

Function Area Component 1 Component 2 Component 3 Component 4

(13)

Software Debt Creeps In

Function Area Component 1 Component 2 Component 3 Component 4 Component 5

(14)

Types of Software Debt

Technical Debt Quality Debt

Configuration Management Debt Design Debt

(15)

Technical Debt

(16)

* Technical Debt

Technical Debt includes those internal things that you choose not to do now, but which will impede future development if left undone. This includes deferred refactoring.

Technical Debt doesn’t include deferred functionality, except possibly in edge cases where delivered

functionality is “good enough” for the customer, but doesn’t satisfy some standard (e.g., a UI element that isn’t fully compliant with some UI standard).

(17)

Quality Debt

A lack of quality, either technical or functional,

will minimize value per feature added

(18)

Accrual of Software Debt

Debt compounds over time

(19)

Break/Fix Only Prolongs It

Longer cycle times to fix bugs increases debt in

surrounding code

0 17.5 35.0 52.5 70.0 Sprints

(20)

A Fit Case Study

(21)

Background

Testing was taking 75 person hours during 2 full test runs consisting of:

Comprehensive manual regression testing Data conversion and validation

(22)

Introducing Fit into Testing

Process

After 8 iterations team had introduced healthy amount of Fit fixtures and automated tests

Reduced 70+ hour test runtime down to 6 hours which now included:

Fit automated regression testing

Data conversion and validation automated with Fit fixtures

(23)

Bug or Enhancement?

(24)

The Situation:

Bug

Came from important

customer and must

be fixed and

(25)

The Situation:

Enhancement

Must be in next

release which is 1

month away and

takes multiple user

stories currently

(26)

The Situation: Should we

work on bugs or

(27)

Maintain One List of Work

Put all work into Product Backlog

Make tradeoff

(28)

Configuration Management

Debt

(29)
(30)

Traditional Source Control

Management

(31)
(32)
(33)

Traditional Source Control

Management

Main Branch Debt Death March

{

Debt accrues quickly

within stabilization periods

(34)
(35)

Flexible Source Control

Management

(36)

Flexible Source Control

Management

Main Branch

(37)

Flexible Source Control

Management

Main Branch

(38)

Flexible Source Control

Management

Main Branch

Version 1 Version 2

{

(39)

Continuous Integration

(40)
(41)

Design Debt

Design decays when not attended to so put

effort into maintaining your software by

(42)

Merciless Refactoring

Refactoring: a disciplined technique for restructuring an existing body of code, altering its internal structure

without changing its external behavior.*

Merciless: having or showing no [mercy - showing great kindness toward the distressed]

Relieve your distressed code through kindness and disciplined restructuring

(43)

Automate Testing to Support

Refactoring

Refactoring cannot be done effectively without automated tests surrounding code

Start by creating automated test which fails

If difficult to create at unit level look at automated acceptance tests from functional perspective

(44)

Proper Architecture Design

Provides Value

Software is a business asset and our job is to

produce the greatest Return on Investment

(45)

* Architecture Risk Themes

Observed that twice as many risk themes are risks of “omission” as are risks of “commission”. That is, risk themes identify decisions or investigations that were never made rather than those that were made and could lead to undesirable consequences.

No discernible relationship between articulated business and mission goals of a system and risk themes from an ATAM evaluation of that system

No discernible relationship between domain of system being evaluated and risk themes associated with development of that system

(46)

* Abuse User Stories

Implement Security for User

Information

(47)

* Abuse User Stories

Implement Security for User

Information

As a Malicious Hacker I want to steal credit card

information so that I can make fraudulent

charges

(48)

Platform Experience Debt

(49)

How to Combat Platform

Experience Debt

Ignore it (I do not suggest this!)

Make interface to underlying system

Transfer learning of platform to more people Rewrite system on more current platform

(50)

Architecture Team Patterns

Virtual Architect Pattern Integration Team Pattern

(51)

Virtual Architect Pattern

(52)

Virtual Architect Pattern

Pros

Share architecture ideas and needs across teams Based on verbal communication

Cons

Usually singles out special Team Member role Could lead to top-down architecture decisions

IT may gain extensive influence and begin to run

(53)
(54)

Integration Team Pattern

Pros

Reduces complexity on Feature Teams

Forces delivery from Integration Team instead of interface and deployment designs

Cons

Perpetuates specialized roles

(55)
(56)

Component Shepherd

Pattern

Pros

Share more knowledge within organization to minimize platform experience debt

Work on highest value Product Backlog items Cons

(57)

Team Architect Pattern

(58)

Team Architect Pattern

Pros

Team owns architecture decisions

Decisions are made close to implementation concerns

Cons

May not have appropriate experience on Team

(59)
(60)

Principles for Managing

Software Debt

Maintain one list of work Emphasize quality

Evolve tools and infrastructure continually Improve system design always

Share knowledge across the organization

(61)

Principles of Agile Software

Quality

The system always runs

No code is written without a failing test Zero post-iteration bugs

(62)

Continuous Integration

(63)

Thank you

(64)

ScrumNoir.com

Current Issue: Mad Dog Mary

Episode 1

References

Related documents

In order to evaluate the impact of the distributional assumptions on the portfolio selection problem, we first find optimal portfolio weights by solving (11), but then use

Exhibitors will be required to complete a Validation Registration Form and pay online and attend one of the in-person validation locations where the animal will be identified with

Once the user types in a cell phone number, the SmartContacts Client automatically retrieves the context Web service address (either from a local cache or the Web search engine)

reactivity. Isoprene is naturally emitted into the atmosphere by plants.Itsproductionisdrivenbyphotosynthesisanddependson both temperature and solar

Exercise 7. Discuss with a partner the importance of correct cargo stowage... 162 Level 2, Unit 5A – Dockside and Cargo handling English for Mariners. Exercise 8. Read the text

This paper has explored the answer to the use of software project tracking and oversight process area.The different organizations undergo different national and international

The purpose of this study was to examine three years of school data using the Texas Education Agency’s released public aggregate Fitnessgram fitness testing data and