technical debt for dummies
DESCRIPTION
Slides of my XPDays session with @jbpros about technical debt. http://xpdays.net/Xpday2013/Mini%20XPDay/Program.html#session_105TRANSCRIPT
![Page 1: Technical debt for dummies](https://reader034.vdocuments.us/reader034/viewer/2022042713/5480ff585906b50e6d8b45fb/html5/thumbnails/1.jpg)
Hard choices - Technical debt
@jbpros@mlainez
For
Dummies
Game included!
![Page 2: Technical debt for dummies](https://reader034.vdocuments.us/reader034/viewer/2022042713/5480ff585906b50e6d8b45fb/html5/thumbnails/2.jpg)
Who has a non-technical role?
![Page 3: Technical debt for dummies](https://reader034.vdocuments.us/reader034/viewer/2022042713/5480ff585906b50e6d8b45fb/html5/thumbnails/3.jpg)
What is technical debt?
![Page 4: Technical debt for dummies](https://reader034.vdocuments.us/reader034/viewer/2022042713/5480ff585906b50e6d8b45fb/html5/thumbnails/4.jpg)
Who is a developer/architect?
![Page 5: Technical debt for dummies](https://reader034.vdocuments.us/reader034/viewer/2022042713/5480ff585906b50e6d8b45fb/html5/thumbnails/5.jpg)
What is technical debt?
![Page 6: Technical debt for dummies](https://reader034.vdocuments.us/reader034/viewer/2022042713/5480ff585906b50e6d8b45fb/html5/thumbnails/6.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042713/5480ff585906b50e6d8b45fb/html5/thumbnails/7.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042713/5480ff585906b50e6d8b45fb/html5/thumbnails/8.jpg)
What are the debt builders?
![Page 9: Technical debt for dummies](https://reader034.vdocuments.us/reader034/viewer/2022042713/5480ff585906b50e6d8b45fb/html5/thumbnails/9.jpg)
HIT A MARKET WINDOW
LACK OF SKILLS
CHAOS
TURNOVER
CHANGES IN REQUIREMENTS
STRESS
UNPROFESSIONALISM
...
![Page 10: Technical debt for dummies](https://reader034.vdocuments.us/reader034/viewer/2022042713/5480ff585906b50e6d8b45fb/html5/thumbnails/10.jpg)
HOW DO WE DEAL WITH IT?
![Page 11: Technical debt for dummies](https://reader034.vdocuments.us/reader034/viewer/2022042713/5480ff585906b50e6d8b45fb/html5/thumbnails/11.jpg)
Let’s play
![Page 12: Technical debt for dummies](https://reader034.vdocuments.us/reader034/viewer/2022042713/5480ff585906b50e6d8b45fb/html5/thumbnails/12.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042713/5480ff585906b50e6d8b45fb/html5/thumbnails/13.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042713/5480ff585906b50e6d8b45fb/html5/thumbnails/14.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042713/5480ff585906b50e6d8b45fb/html5/thumbnails/15.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042713/5480ff585906b50e6d8b45fb/html5/thumbnails/16.jpg)
What were the winning strategies?
![Page 17: Technical debt for dummies](https://reader034.vdocuments.us/reader034/viewer/2022042713/5480ff585906b50e6d8b45fb/html5/thumbnails/17.jpg)
How can we MANAGE technical debt?
![Page 18: Technical debt for dummies](https://reader034.vdocuments.us/reader034/viewer/2022042713/5480ff585906b50e6d8b45fb/html5/thumbnails/18.jpg)
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](https://reader034.vdocuments.us/reader034/viewer/2022042713/5480ff585906b50e6d8b45fb/html5/thumbnails/19.jpg)
How can we measure technical
debt?
![Page 20: Technical debt for dummies](https://reader034.vdocuments.us/reader034/viewer/2022042713/5480ff585906b50e6d8b45fb/html5/thumbnails/20.jpg)
Code metrics
Wtf! per minute
Testability
flexibility
Scalability
Stability
Time to market
team velocity
Motivation
happiness
Product Stability
![Page 21: Technical debt for dummies](https://reader034.vdocuments.us/reader034/viewer/2022042713/5480ff585906b50e6d8b45fb/html5/thumbnails/21.jpg)
HOW CAN WE Identify THE DEBT
IN OUR CODE?
![Page 22: Technical debt for dummies](https://reader034.vdocuments.us/reader034/viewer/2022042713/5480ff585906b50e6d8b45fb/html5/thumbnails/22.jpg)
![Page 23: Technical debt for dummies](https://reader034.vdocuments.us/reader034/viewer/2022042713/5480ff585906b50e6d8b45fb/html5/thumbnails/23.jpg)
![Page 24: Technical debt for dummies](https://reader034.vdocuments.us/reader034/viewer/2022042713/5480ff585906b50e6d8b45fb/html5/thumbnails/24.jpg)
know your debt!
![Page 25: Technical debt for dummies](https://reader034.vdocuments.us/reader034/viewer/2022042713/5480ff585906b50e6d8b45fb/html5/thumbnails/25.jpg)
know when to accumulate debt!
![Page 26: Technical debt for dummies](https://reader034.vdocuments.us/reader034/viewer/2022042713/5480ff585906b50e6d8b45fb/html5/thumbnails/26.jpg)
Decide when to pay for it!
![Page 27: Technical debt for dummies](https://reader034.vdocuments.us/reader034/viewer/2022042713/5480ff585906b50e6d8b45fb/html5/thumbnails/27.jpg)
“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](https://reader034.vdocuments.us/reader034/viewer/2022042713/5480ff585906b50e6d8b45fb/html5/thumbnails/28.jpg)
Questions?
@jbpros@mlainez