technical debt for dummies

28
Hard choices - Technical debt @jbpros @mlainez For Dummies Game included!

Upload: marc-lainez

Post on 05-Dec-2014

696 views

Category:

Technology


0 download

DESCRIPTION

Slides of my XPDays session with @jbpros about technical debt. http://xpdays.net/Xpday2013/Mini%20XPDay/Program.html#session_105

TRANSCRIPT

Page 1: Technical debt for dummies

Hard choices - Technical debt

@jbpros@mlainez

For

Dummies

Game included!

Page 2: Technical debt for dummies

Who has a non-technical role?

Page 3: Technical debt for dummies

What is technical debt?

Page 4: Technical debt for dummies

Who is a developer/architect?

Page 5: Technical debt for dummies

What is technical debt?

Page 6: Technical debt for dummies

Building software is like taking a loan at each change

Leaving code in a non optimal state after a change means it will take more time to understand or change that code next time we add any functionality to it

We have to pay an interest, the longer we wait to make the code optimal, the

more the interests run on

Page 7: Technical debt for dummies

Cost OF CHANGE

tIME

What happens when we don’t deal with it?

BEGINNING OF PROJECT

We have accumulated

debt

Project doomed

inspired by: http://colearningbe.wordpress.com/2013/02/28/learn-hxxow-to-manage-technical-debt-from-a-business-perspective/

Page 8: Technical debt for dummies

What are the debt builders?

Page 9: Technical debt for dummies

HIT A MARKET WINDOW

LACK OF SKILLS

CHAOS

TURNOVER

CHANGES IN REQUIREMENTS

STRESS

UNPROFESSIONALISM

...

Page 10: Technical debt for dummies

HOW DO WE DEAL WITH IT?

Page 11: Technical debt for dummies

Let’s play

Page 12: Technical debt for dummies

Rules

The game may be played by 2, 3, or 4 people.

Movements

A player can move in any direction and may even change directions in a single turn.

When a player crosses a “hard choices” square, he or she must decide whether to go over the shortcut bridge or go the long way.

Page 13: Technical debt for dummies

Bridge Tiles

Bridges count as one movement, similar to squares.

A player who chooses to go over a shortcut bridge must collect a bridge card. Each bridge card subtracts 1 from subsequent rolls of the die.

A player who chooses to go over a shortcut bridge must collect a bridge card. Each bridge card subtracts 1 from subsequent rolls of the die.

A player may get rid of a bridge card by skipping a turn anytime during the game.

Page 14: Technical debt for dummies

Tools Tiles

If a player lands on a tool square:- If the player does not already have the tool drawn on the board, the player gets a tool card of that type.

- If the player already has a tool card of the drawn tool, the player may play the tool card and get a free a turn OR collect another tool card of that type.

Page 15: Technical debt for dummies

Ending the game

The game ends when there is 1 player remaining on the board or when the time is up!

The first player to reach END gets 5 points, second gets 3 points, third gets 1 point.

When a player reaches END, he or she also gets 1 point for each tool card.

To enter the END cell the player should roll anything equal or greater than the remaining squares.

The player with the most points at the end of the game WINS.

Page 16: Technical debt for dummies

What were the winning strategies?

Page 17: Technical debt for dummies

How can we MANAGE technical debt?

Page 18: Technical debt for dummies

source: http://colearningbe.wordpress.com/2013/02/28/learn-hxxow-to-manage-technical-debt-from-a-business-perspective/

True story!

Draw current solution

IDENTIFY debt with color

code

Match with business goals

Page 19: Technical debt for dummies

How can we measure technical

debt?

Page 20: Technical debt for dummies

Code metrics

Wtf! per minute

Testability

flexibility

Scalability

Stability

Time to market

team velocity

Motivation

happiness

Product Stability

Page 21: Technical debt for dummies

HOW CAN WE Identify THE DEBT

IN OUR CODE?

Page 22: Technical debt for dummies
Page 23: Technical debt for dummies
Page 24: Technical debt for dummies

know your debt!

Page 25: Technical debt for dummies

know when to accumulate debt!

Page 26: Technical debt for dummies

Decide when to pay for it!

Page 27: Technical debt for dummies

“What's important is to try to imagine something that is just a bit better than what you have currently. If you can target those things, then over time you will really start to make a difference in the code base” - Michael Feathers

Page 28: Technical debt for dummies

Questions?

@jbpros@mlainez