31
© 2011 BigVisible Solutions, Inc. All Rights Reserved Mastering Technical Debt John Ryan Technical Agile Coach

Managing Technical Debt - 2011 webinar

Embed Size (px)

DESCRIPTION

Slides for BigVisible's John Ryan presenting on the source of and strategies for mitigating Technical Debt. (see http://vimeo.com/30135194)

Citation preview

Page 1: Managing Technical Debt  - 2011 webinar

© 2011 BigVisible Solutions, Inc. All Rights Reserved

Mastering Technical Debt

John Ryan

Technical Agile Coach

Page 2: Managing Technical Debt  - 2011 webinar

____ __ ____ _____ ____ ______ _____ _____ ____ _____ _____ _____ ____ _____

Click to edit Master text stylesSecond levelThird levelFourth levelFifth level

© 2011 BigVisible Solutions, Inc.. All Rights Reserved

2

Overview

• What is “Technical Debt”?

• How does it happen?

• What can we do?

Page 3: Managing Technical Debt  - 2011 webinar

____ __ ____ _____ ____ ______ _____ _____ ____ _____ _____ _____ ____ _____

Click to edit Master text stylesSecond levelThird levelFourth levelFifth level

© 2011 BigVisible Solutions, Inc.. All Rights Reserved

3

What is Technical Debt?

Page 4: Managing Technical Debt  - 2011 webinar

____ __ ____ _____ ____ ______ _____ _____ ____ _____ _____ _____ ____ _____

Click to edit Master text stylesSecond levelThird levelFourth levelFifth level

© 2011 BigVisible Solutions, Inc.. All Rights Reserved

4

Technical Debt is…

borrowing against our capacity of tomorrow

to make more progress today.

Page 5: Managing Technical Debt  - 2011 webinar

____ __ ____ _____ ____ ______ _____ _____ ____ _____ _____ _____ ____ _____

Click to edit Master text stylesSecond levelThird levelFourth levelFifth level

© 2011 BigVisible Solutions, Inc.. All Rights Reserved

5

The Structure and Process of Waste

Technical Debt is an accumulation of defects:

• Intent Errors in the software (detected or not)

• Lack of clarity of requirements

• Poor design of the software

• Inappropriate design of the software (not matching the business’ needs)

• Thick-thumb a step in a process that could be automated

An Interest Payment is Time Wasted…

• …working around or fixing existing errors

• …reworking code once requirements are clarified

• …in the extra effort it takes to understand complex code

• …square-pegging new features

• …baby-sitting tasks that could be automated

Page 6: Managing Technical Debt  - 2011 webinar

____ __ ____ _____ ____ ______ _____ _____ ____ _____ _____ _____ ____ _____

Click to edit Master text stylesSecond levelThird levelFourth levelFifth level

© 2011 BigVisible Solutions, Inc.. All Rights Reserved

6

How Do We Incur Technical Debt?

Page 7: Managing Technical Debt  - 2011 webinar

____ __ ____ _____ ____ ______ _____ _____ ____ _____ _____ _____ ____ _____

Click to edit Master text stylesSecond levelThird levelFourth levelFifth level

© 2011 BigVisible Solutions, Inc.. All Rights Reserved

7

Mere Exposure Principle

Page 8: Managing Technical Debt  - 2011 webinar

____ __ ____ _____ ____ ______ _____ _____ ____ _____ _____ _____ ____ _____

Click to edit Master text stylesSecond levelThird levelFourth levelFifth level

© 2011 BigVisible Solutions, Inc.. All Rights Reserved

8

Defaulting

Page 9: Managing Technical Debt  - 2011 webinar

____ __ ____ _____ ____ ______ _____ _____ ____ _____ _____ _____ ____ _____

Click to edit Master text stylesSecond levelThird levelFourth levelFifth level

© 2011 BigVisible Solutions, Inc.. All Rights Reserved

9

Best of Intentions

Page 10: Managing Technical Debt  - 2011 webinar

____ __ ____ _____ ____ ______ _____ _____ ____ _____ _____ _____ ____ _____

Click to edit Master text stylesSecond levelThird levelFourth levelFifth level

© 2011 BigVisible Solutions, Inc.. All Rights Reserved

10

The Vicious Cycle

Page 11: Managing Technical Debt  - 2011 webinar

____ __ ____ _____ ____ ______ _____ _____ ____ _____ _____ _____ ____ _____

Click to edit Master text stylesSecond levelThird levelFourth levelFifth level

© 2011 BigVisible Solutions, Inc.. All Rights Reserved

11

What’s Really Going On Here?

Page 12: Managing Technical Debt  - 2011 webinar

____ __ ____ _____ ____ ______ _____ _____ ____ _____ _____ _____ ____ _____

Click to edit Master text stylesSecond levelThird levelFourth levelFifth level

© 2011 BigVisible Solutions, Inc.. All Rights Reserved

12

Minimal Quality Control

Page 13: Managing Technical Debt  - 2011 webinar

____ __ ____ _____ ____ ______ _____ _____ ____ _____ _____ _____ ____ _____

Click to edit Master text stylesSecond levelThird levelFourth levelFifth level

© 2011 BigVisible Solutions, Inc.. All Rights Reserved

13

Responsible Quality Control

Page 14: Managing Technical Debt  - 2011 webinar

____ __ ____ _____ ____ ______ _____ _____ ____ _____ _____ _____ ____ _____

Click to edit Master text stylesSecond levelThird levelFourth levelFifth level

© 2011 BigVisible Solutions, Inc.. All Rights Reserved

14

Production vs. Production Capacity

Page 15: Managing Technical Debt  - 2011 webinar

____ __ ____ _____ ____ ______ _____ _____ ____ _____ _____ _____ ____ _____

Click to edit Master text stylesSecond levelThird levelFourth levelFifth level

© 2011 BigVisible Solutions, Inc.. All Rights Reserved

15

How Do We Master Technical Debt?

Page 16: Managing Technical Debt  - 2011 webinar

____ __ ____ _____ ____ ______ _____ _____ ____ _____ _____ _____ ____ _____

Click to edit Master text stylesSecond levelThird levelFourth levelFifth level

© 2011 BigVisible Solutions, Inc.. All Rights Reserved

16

Step 1: Identify The Root Cause

1. Start with the symptom (Interest Payment).

2. Then ask, “why did that happen?” or “what caused that?” (Technical Debt).

3. Keep asking “why?” until you get to the root cause. (Choice that led to creating Technical Debt)

Page 17: Managing Technical Debt  - 2011 webinar

____ __ ____ _____ ____ ______ _____ _____ ____ _____ _____ _____ ____ _____

Click to edit Master text stylesSecond levelThird levelFourth levelFifth level

© 2011 BigVisible Solutions, Inc.. All Rights Reserved

17

Step 2: Address It

1. If it’s in your control, fix it!

2. If you have influence, connect it to a common goal.

3. If it’s out of your hands, communicate it’s impact.

Page 18: Managing Technical Debt  - 2011 webinar

____ __ ____ _____ ____ ______ _____ _____ ____ _____ _____ _____ ____ _____

Click to edit Master text stylesSecond levelThird levelFourth levelFifth level

© 2011 BigVisible Solutions, Inc.. All Rights Reserved

18

Step 3: Profit!

Page 19: Managing Technical Debt  - 2011 webinar

____ __ ____ _____ ____ ______ _____ _____ ____ _____ _____ _____ ____ _____

Click to edit Master text stylesSecond levelThird levelFourth levelFifth level

© 2011 BigVisible Solutions, Inc.. All Rights Reserved

19

Step 1: Identify The Root Cause

Wasted time reworking a feature

BA: thought was obvious

Dev: coded to the spec.

QA: tested code to spec.

Found missing requirement late in the game

Work is being “handed-off” instead of shared.

We’re working in “silos”

Address this…

…and you mitigate this.

Page 20: Managing Technical Debt  - 2011 webinar

____ __ ____ _____ ____ ______ _____ _____ ____ _____ _____ _____ ____ _____

Click to edit Master text stylesSecond levelThird levelFourth levelFifth level

© 2011 BigVisible Solutions, Inc.. All Rights Reserved

20

Step 2: Address it

Reworked a feature

BA: thought was obvious

Dev: coded to the spec.

QA: tested code to spec.

Found missing requirement late in the game

Work is being “handed-off” instead of shared.

We’re working in “silos”Collapse the Organization

Trade-off some docs for conversation

Work stories together.

Requirements are questioned upfront.

Page 21: Managing Technical Debt  - 2011 webinar

____ __ ____ _____ ____ ______ _____ _____ ____ _____ _____ _____ ____ _____

Click to edit Master text stylesSecond levelThird levelFourth levelFifth level

© 2011 BigVisible Solutions, Inc.. All Rights Reserved

21

Step 3: Profit!

Page 22: Managing Technical Debt  - 2011 webinar

____ __ ____ _____ ____ ______ _____ _____ ____ _____ _____ _____ ____ _____

Click to edit Master text stylesSecond levelThird levelFourth levelFifth level

© 2011 BigVisible Solutions, Inc.. All Rights Reserved

22

For Product Owners

The Six Golden* Transformational Patterns to Cure Human Causes

1.Collapse the Org

2.Quality First

3.Active Product Ownership

4.Hire for Cross-Functional Teams

5.Encourage Communication

6.Avoid Arbitrary Mandates

* Jonathon Golden (see references at end of deck)

Page 23: Managing Technical Debt  - 2011 webinar

____ __ ____ _____ ____ ______ _____ _____ ____ _____ _____ _____ ____ _____

Click to edit Master text stylesSecond levelThird levelFourth levelFifth level

© 2011 BigVisible Solutions, Inc.. All Rights Reserved

23

For Developers

Invest in your Professional Portfolio:

1.Build Quality In

2.Hone Your Design Chops

Page 24: Managing Technical Debt  - 2011 webinar

____ __ ____ _____ ____ ______ _____ _____ ____ _____ _____ _____ ____ _____

Click to edit Master text stylesSecond levelThird levelFourth levelFifth level

© 2011 BigVisible Solutions, Inc.. All Rights Reserved

24

Developers: Build Quality In

Give Test-Driven Development (TDD) a serious college try.

Start with James Shore’s “Let’s Play TDD”: 1. Install Eclipse:

http://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/heliossr2

2. Start the first video:http://www.youtube.com/watch?v=f3G7gu1IHws

Page 25: Managing Technical Debt  - 2011 webinar

____ __ ____ _____ ____ ______ _____ _____ ____ _____ _____ _____ ____ _____

Click to edit Master text stylesSecond levelThird levelFourth levelFifth level

© 2011 BigVisible Solutions, Inc.. All Rights Reserved

25

Developers: Hone Your Design Chops

Pick-up a Chop-Sharpening Book:

1. Pragmatic Programmer

2. Refactoring

3. Head First Design Patterns

4. Managing Software Debt

Here’s the most up-to-date list:

http://tinyurl.com/422aco8

Page 26: Managing Technical Debt  - 2011 webinar

____ __ ____ _____ ____ ______ _____ _____ ____ _____ _____ _____ ____ _____

Click to edit Master text stylesSecond levelThird levelFourth levelFifth level

© 2011 BigVisible Solutions, Inc.. All Rights Reserved

26

For Scrum Masters

Chris Sterling’s Technical Debt Mapping:

1.Draw major application components on a whiteboard.

2.Write down Technical Debt on Post-Its and put them on the board.

3.Express them as “Quality Improvement Stories” (INVEST) where the value is expressed in terms of ROI.

4.PO: Prioritize by balancing value, cost and immediacy.

Page 27: Managing Technical Debt  - 2011 webinar

____ __ ____ _____ ____ ______ _____ _____ ____ _____ _____ _____ ____ _____

Click to edit Master text stylesSecond levelThird levelFourth levelFifth level

© 2011 BigVisible Solutions, Inc.. All Rights Reserved

27

The Journey of 1,000 Miles…

1. List three recent episodes of significant time wasted.• “It took me 2 days to code-up the cross-brand cart and two weeks to test it.”• “…and if we had known that was the real requirement, we would have done

it differently.”• “We almost had a good build, but there were a bunch of problems we had to

fix due to configuration differences between the developer sandbox and our test environment.”

• “I spent a whole day reviewing how we process messages before I could add an additional handler.”

2. Pick one you’re most familiar with: can you think of just one reason why that happened?• “… the message processor logic is overly complex; the architecture team

had planned to handle any kind of inbound message, but we’re really just using JSON and it’s almost always synchronous. Also, we don’t have very good test coverage.”

Page 28: Managing Technical Debt  - 2011 webinar

____ __ ____ _____ ____ ______ _____ _____ ____ _____ _____ _____ ____ _____

Click to edit Master text stylesSecond levelThird levelFourth levelFifth level

© 2011 BigVisible Solutions, Inc.. All Rights Reserved

28

…begins with the first step.

3. Can you think of one thing you learned today that could help make a difference?• We could challenge the mandate from Architecture to maintain a generic

message processor. If we could simplify the implementation of this module, it would reduce how much time it takes to made modifications.

4. What’s the very next action step?• We could write a “Quality Improvement Story”:

“As a developer, I want the message processing module to be simplified so that it takes no more than half a day to add a new message handler. This includes writing a small suite of unit tests (happy path) to ensure confidence in this refactoring.”

It’s probably an 8 point story (which have been taking us between 4 to 7 days to complete: [assume $80k salary] worst-case $2,240); what took 12 hours should have taken 4, so the interest rate is currently 200% and this payment was ~$320. The ROI is about 7 message handlers.

Page 29: Managing Technical Debt  - 2011 webinar

____ __ ____ _____ ____ ______ _____ _____ ____ _____ _____ _____ ____ _____

Click to edit Master text stylesSecond levelThird levelFourth levelFifth level

© 2011 BigVisible Solutions, Inc.. All Rights Reserved

29

Summary

What is Technical Debt?

•“Technical Debt” is the structural defects in our system

•“Interest Payments” are the symptoms we experience, caused by Technical Debt

•Technical Debt is caused by choices that we make.

How does it happen?

•A vicious cycle of degrading quality (push faster than what the team can handle).

•Non-trivial development without quality control risk of “getting cooked”

What can we do?

•The keys: Investing in quality control and managing complexity

•Paying Technical Debt: Dig to the root cause of it and mitigate that.

•Product Owners: understand and apply the Six Golden Transformation Patterns.

•Developers: invest in your professional portfolio and get better at your craft.

•Scrum Masters: guide the team to harvest “Quality Improvement Stories”

Page 30: Managing Technical Debt  - 2011 webinar

____ __ ____ _____ ____ ______ _____ _____ ____ _____ _____ _____ ____ _____

Click to edit Master text stylesSecond levelThird levelFourth levelFifth level

© 2011 BigVisible Solutions, Inc.. All Rights Reserved

30

Page 31: Managing Technical Debt  - 2011 webinar

____ __ ____ _____ ____ ______ _____ _____ ____ _____ _____ _____ ____ _____

Click to edit Master text stylesSecond levelThird levelFourth levelFifth level

© 2011 BigVisible Solutions, Inc.. All Rights Reserved

31

References

• Jonathon Golden’s Cutter IT Journal Article:“Transformation Patterns for Curing the Human Causes of Technical Debt”http://www.cutter.com/content/itjournal/fulltext/2010/10/itj1010f.html

• Ward Cunningham explains the origin of ”Technical Debt”http://www.youtube.com/watch?v=pqeJFYwnkjE

• Chris Sterling’s “An Exercise to Identify and Prioritize Software Debt”http://www.gettingagile.com/2010/08/13/an-exercise-to-identify-and-priofitize-software-debt/

• Sonar – Excellent Code Quality Diagnostic* Toolhttp://www.sonarsource.org/

• “Tempo: Timing Tacitics and Strategy in Narrative-Driven Decision-Making“, Venkatesh Rao

• “All Software Is Defective“http://www.njspin.org/present/200706_Rakitin_Steve_All_Software_Is_Defective.pdf

* “Diagnostic” meaning a way to sniff potential problems; don’t let metrics drive your thinking, just inform it.