Delivering Technical Debt

Preview:

Citation preview

Delivering Technical DebtBrendon Page

@brendonpaginate

Software Developer

@brendonpaginate#DeliverTechnicalDebt

OverviewOrigin

Evolution

Delivering

The Audience SurveyWho wants

to explain it toa team

member?Who has heard of Technical

Debt?

Conversations Between Us

Commonunderstanding

Meaningfulconversations

Big Problem

Origin

The Experience Report

Ward Cunningham

“the debtmetaphor”

WyCashfinancialsystem

1992

The Experience Report"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...

Entire engineering organizations can be brought to a stand-still under the debt load of an unconsolidated implementation, object-oriented or otherwise."

The danger occurs when the debt is not repaid. Every minute spent on not-quite-right code counts as interest on that debt.

1992

The Experience Report"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...

Entire engineering organizations can be brought to a stand-still under the debt load of an unconsolidated implementation, object-oriented or otherwise."

The danger occurs when the debt is not repaid. Every minute spent on not-quite-right code counts as interest on that debt.

1992

Good Metaphor

It stuck Explainthe

rewriteUniversal

terms

Yes

Evolution

Interpretations

Differencebetween

Poor code

Good joblater

“Hacking it”

“Doing itProperly”

Okay to

Metaphor Explained

Code shouldalways reflect understanding

Not to explain writing

bad code

Explainrefactoring

toBusiness

2009

RobertC.

Martin

“A Mess is not

TechnicalDebt”

Evenif

partial

Confusion

2009

Technical Debt Quadrant

Instead ofdebt / non-debt

debates

Metaphor

2009

Communicationtool

MartinFowler

Conveythinking

about designdecisions

Classifydebt

Responsibilityand

Awareness

Technical Debt Quadrant

Deliberate

Inadvertent

“We don’t have time for

design”

“We must ship now and deal

with the consequences

“What’s layering?”

“Now we know how we should have done it”

Reckless Prudent

Awar

enes

s

Responsibility

“This code barely

changes”

2009

Whereyouare

Stimulatemeaningful

conversations

I like this!

Delivering

What?

Buildcommon

understanding

Mapmetaphor

Development ProcessFeature / Story

Developer

Learning LearningLearning

Code

Domain

Principles(SOLID, DRY

… etc)

Domain

Tech

Domain

Mapping the MetaphorFeature / Story

Asset

PrincipalPrincipal is

what you payinterest on

How?

Developer

Learning LearningLearning

Code

InterestFeature / Story

Developer

Learning LearningLearning

Code

Idea

Idea

Costscognitiveresources,interest!

Codestate

Mindstate

… ohyea it’s called“Person” now

Translation

TemporalMapping

User==

Person

Where is my“User” class

Paying DebtFeature / Story

Code

Developer

Learning LearningLearning

Learning LearningLearning Because“Person”is called“Person” Less

cognitiveresources

Consolidatelearning

(refactoring) Notemporalmappingneeded

Unconsolidated Code in a TeamFeature / Story

Developer 1

Learning

Developer 2

Code

???

???

Developer 2pays 100%

interest

Consolidated Code in a TeamFeature / Story

Developer 1

Learning

Developer 2

Code

Learning

???

Developer 2pays 0%interest

Deliver your learningFeature / Story

Code Deliver

Kept internal

Code

Developer

Learning LearningLearning

Learning

Deliver your learningFeature / Story

CodeDeliver

Code

Developer

Learning LearningLearning

Learning

How?

Record it

Treat it likea feature

Prioritise,track, …

Hard

Red Bin

Ability to distinguishthem fromfeatures

LEANmanufacturing

Place anyonecan put

Red Bin Items

The Red Bin

Feature 5

Red Bin 1

Feature 2 Featur

e 3Featur

e 1

Red Bin 2

Red Bin 3

Feature 4

Red Bin Backlog Queue WIP Done

Feature 6

During the course of the day During the stand up the next day

Deliver learning like a feature

Feature 1

Red Bin 2

Feature 4

Red Bin Backlog Queue WIP Done

Feature 3

Red Bin 1

Feature 6Featur

e 5Feature 2

End of the sprint

Red Bin 2

Why?

Honestdelivery

Projecthealth

indicator

Better clientrelationships

Embrace& addressyour debt

Summary

Metaphor

Colourfulpast

Honestdelivery

Definewhat it means

Thank you!Questions?

@brendonpaginate#DeliverTechnicalDebt

Recommended