kaa2015, tech debt: understanding its sources and impacts through a game

36
Technical Debt – Understanding its Sources and Impacts Through a Game David Croley - @davidcroley

Upload: dtcroley

Post on 08-Aug-2015

83 views

Category:

Software


2 download

TRANSCRIPT

Technical Debt –Understanding its

Sources and Impacts Through a Game

David Croley - @davidcroley

David Croley

Agile Velocity

Principal Consultant

Certified Scrum Manager ( CSM)

@davidcroley

[email protected]

Transforming Technology Organizations2

We’d prefer to deliver a fast, steady stream of new

features…

But sometimes delivery feels slow, even stagnant.

CC BY 2.0 http://www.flickr.com/photos/usfwspacific/6121377305/

And we hope it doesn’t feel like this!

Technical Debt

A useful metaphor similar to financial debt

“Interest” is incurred in the form of costlier development effort

Technical Debt can be paid down through refactoring the implementation

Unlike monetary debt, Technical Debt is difficult to quantify

Development Investment

Good and Bad Debt

Martin Fowler’s Technical Debt Quadrantshttp://www.martinfowler.com/bliki/TechnicalDebtQuadrant.html

Late Deliveries

Mounting Defects

Rising Development Costs

Poor Customer Responsiveness

Long Delivery Times

Frustrated and Poor Performing Teams

Impact of Tech Debt

Impact of Technical Debt

“Agile Project Management”, Jim Highsmith, second edition

Let’s do an exercise to understand the concept further.

Form into Teams of at least 4 people.

FeatureCost: 15

FeatureCost: 10

FeatureCost: 5

Technical DebtCost 15

Impact -10

Technical DebtCost 15

Impact -10

Technical DebtCost 10

Impact -5

Technical DebtCost 5

Impact -5

Technical DebtCost 5

Impact -5

Iteration Card

Setup your board as follows

FeatureCost: 15

FeatureCost: 10

FeatureCost: 5

Technical DebtCost 15

Impact -10

Technical DebtCost 15

Impact -10

Technical DebtCost 10

Impact -5

Technical DebtCost 5

Impact -5

Technical DebtCost 5

Impact -5

Iteration Card

Add up the total impact of all technical debt items

-35

25

-35

X

FeatureCost: 10

FeatureCost: 15

FeatureCost: 10

Technical DebtCost 15

Impact -10

Technical DebtCost 15

Impact -10

Technical DebtCost 10

Impact -5

Technical DebtCost 5

Impact -5

Technical DebtCost 5

Impact -5

Iteration Card

You have 25 Points to SpendSelect the cards you want to spend your points on.

No partially done work.

FeatureCost: 5

FeatureCost: 5

-35

25

101515

X

FeatureCost: 10

FeatureCost: 15

FeatureCost: 10

Technical DebtCost 15

Impact -10

Technical DebtCost 15

Impact -10

Technical DebtCost 10

Impact -5

Technical DebtCost 5

Impact -5

Technical DebtCost 5

Impact -5

Iteration Card

You have 25 Points to SpendSelect the cards you want to spend your points on.

No partially done work.

FeatureCost: 5

FeatureCost: 5

Iteration CardCost: 10

Database is getting large and complex. We need to add automated migrations to reduce manual work and support

refactoring.

Impact: -5

The goal is to complete as many feature points at the end

of 5 iterations.

Go!

The goal is to complete as many feature points at the end

of 5 iterations.

Stop!

Theoretical Capacity

Technical Debt

Productivity

Time

Debrief

So how did it go?

What strategy did your team use to mix features and debt?

Is it realistic?

Capture your debt

Visualize and Estimate

Tools and Techniques

Use tools like SonarQube to help find and measure tech debt

Ask the team

Track defects by location in the code

Make sure the team feels empowered to fix debt issues every day

Publicize and Communicate

Need to invest time, team needs slack

Boy Scout slide

Incrementally make your code better

Key’s to Prioritizing Technical Debt

Have a Clear Definition of Done - Acceptance Criteria

Articulate Business Value

Work Incrementally - Breakdown Items

Make Visible - Add to the Backlog

Prioritize/ Allocate Time

21

21

1

2

1 2 1 1

One Backlog Prioritized by the Product Owner

Feature StoryTechnical Debt

Story

2121

12

12 11

2121

12

12 11

Feature StoryTechnical Debt

Story

Two Backlogs Prioritized Independently

80/20 Allocation Strategy

Discuss how you could apply these concepts to help your

teams.

David Croley – [email protected]

Website – AgileVelocity.com

Blog – AustinAgile.com

Twitter - @austinagile

Thanks!