Top Banner
Technical Debt – Understanding Its Sources and Impacts Through a Game David Croley - @davidcroley
35
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Technical debt   sources and impacts

Technical Debt –Understanding Its

Sources and Impacts Through a Game

David Croley - @davidcroley

Page 2: Technical debt   sources and impacts

2

Sponsors

Diamond

In Kind

Gold

Platinum

Page 3: Technical debt   sources and impacts

David Croley

Agile Velocity

Principal Consultant

Certified Scrum Manager ( CSM)

@davidcroley

[email protected]

Transforming Technology Organizations3

Page 4: Technical debt   sources and impacts

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

Page 5: Technical debt   sources and impacts

But sometimes delivery feels slow, even stagnant.

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

Page 6: Technical debt   sources and impacts

And we hope it doesn’t feel like this!

Page 7: Technical debt   sources and impacts

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

Page 8: Technical debt   sources and impacts

Development InvestmentVisible Invisible

Positive Value

Negative Value

Features

Bugs

Architecture*ilities

Logging, metrics, A/B Testing, etc.

Tech Debt

Page 9: Technical debt   sources and impacts

Good and Bad Debt

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

Page 10: Technical debt   sources and impacts

No Blame

Tech Debt is often the result of deliberate decisions or incomplete knowledge

Even perfectly functioning teams will incur Tech Debt

Change over time is another source of Tech Debt

Page 11: Technical debt   sources and impacts
Page 12: Technical debt   sources and impacts

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

Form into Teams of at least 4 people.

Page 13: Technical debt   sources and impacts

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

Set up your board as follows

Page 14: Technical debt   sources and impacts
Page 15: Technical debt   sources and impacts

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

Page 16: Technical debt   sources and impacts

25

-35

X

Page 17: Technical debt   sources and impacts

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

Page 18: Technical debt   sources and impacts

-35

25

101515

X

Page 19: Technical debt   sources and impacts

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

Page 20: Technical debt   sources and impacts

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

of 5 iterations.

Go!

Page 21: Technical debt   sources and impacts

-35

25

X

Page 22: Technical debt   sources and impacts

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

of 5 iterations.

Stop!

Page 23: Technical debt   sources and impacts

Theoretical Capacity

Technical Debt

Productivity

Time

Page 24: Technical debt   sources and impacts

Debrief

So how did it go?

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

Is it realistic?

Page 25: Technical debt   sources and impacts

Simplifications

Tech debt impact is usually not so quantifiable.

Delivering significantly fewer features per sprint may be unrealistic.

Cost to fix and impact may increase over time

Page 26: Technical debt   sources and impacts

Capture your debt

Page 27: Technical debt   sources and impacts

Visualize and Estimate

Page 28: Technical debt   sources and impacts

Tools and Techniques

Use tools like SonarQube, FindBugs, and PMD 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 small debt issues every day

Page 29: Technical debt   sources and impacts

Boy Scout slide

Incrementally make your code better

Page 30: Technical debt   sources and impacts

Keys 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

Page 31: Technical debt   sources and impacts

21

21

1

2

1 2 1 1

One Backlog Prioritized by the Product Owner

Feature StoryTechnical Debt

Story

Page 32: Technical debt   sources and impacts

2121

12

12 11

2121

12

12 11

Feature StoryTechnical Debt

Story

Two Backlogs Prioritized Independently

80/20 Allocation Strategy

Page 33: Technical debt   sources and impacts

For More Information:

Working Effectively with Legacy Code by Michael Feathers

Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin

http://www.ontechnicaldebt.com

https://medium.com/@joaomilho/festina-lente-e29070811b84 (Tech debt 101)

Page 34: Technical debt   sources and impacts

David Croley – [email protected]

Website – AgileVelocity.com

Blog – AustinAgile.com

Twitter - @austinagile, @davidcroley

Thanks!

Page 35: Technical debt   sources and impacts

39

Sponsors

Diamond

In Kind

Gold

Platinum