managing technical debt by john ryan 2011.6.22

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

Upload: bigvisible-higdon

Post on 06-May-2015

400 views

Category:

Technology


0 download

DESCRIPTION

Technical Debt presentation presented by BigVisible's John Ryan at Agile Socal June, 2011.

TRANSCRIPT

Page 1: Managing Technical Debt by John Ryan 2011.6.22

© 2011 BigVisible Solutions, Inc. All Rights Reserved

Managing Technical Debt

John Ryan Technical Agile Coach

Page 2: Managing Technical Debt by John Ryan 2011.6.22

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

Click to edit Master text styles Second level Third level Fourth level Fifth level

© 2011 BigVisible Solutions, Inc.. All Rights Reserved

2

Overview

•  Who cares?

•  What is “Technical Debt”?

•  How do we incur Technical Debt?

•  Why do we take on Technical Debt?

•  What can we do?

Page 3: Managing Technical Debt by John Ryan 2011.6.22

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

Click to edit Master text styles Second level Third level Fourth level Fifth level

© 2011 BigVisible Solutions, Inc.. All Rights Reserved

3

Current Reality 1

Are you experiencing Technical Debt?

Page 4: Managing Technical Debt by John Ryan 2011.6.22

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

Click to edit Master text styles Second level Third level Fourth level Fifth level

© 2011 BigVisible Solutions, Inc.. All Rights Reserved

4

Why Do We Care? (1 of 4)

Page 5: Managing Technical Debt by John Ryan 2011.6.22

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

Click to edit Master text styles Second level Third level Fourth level Fifth level

© 2011 BigVisible Solutions, Inc.. All Rights Reserved

5

Why Do We Care? (2 of 4)

Page 6: Managing Technical Debt by John Ryan 2011.6.22

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

Click to edit Master text styles Second level Third level Fourth level Fifth level

© 2011 BigVisible Solutions, Inc.. All Rights Reserved

6

Why Do We Care? (3 of 4)

Page 7: Managing Technical Debt by John Ryan 2011.6.22

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

Click to edit Master text styles Second level Third level Fourth level Fifth level

© 2011 BigVisible Solutions, Inc.. All Rights Reserved

7

Why Do We Care? (4 of 4)

Page 8: Managing Technical Debt by John Ryan 2011.6.22

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

Click to edit Master text styles Second level Third level Fourth level Fifth level

© 2011 BigVisible Solutions, Inc.. All Rights Reserved

8

What’s Really Going On Here?

Risk of Defect = Change!ComplexityQuality Control

Progress = Change - Quality Control( )! "

Diagnose+Fix( )# Defects!

Page 9: Managing Technical Debt by John Ryan 2011.6.22

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

Click to edit Master text styles Second level Third level Fourth level Fifth level

© 2011 BigVisible Solutions, Inc.. All Rights Reserved

9

Current Reality, Part 2

What is Technical Debt?

Page 10: Managing Technical Debt by John Ryan 2011.6.22

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

Click to edit Master text styles Second level Third level Fourth level Fifth level

© 2011 BigVisible Solutions, Inc.. All Rights Reserved

10

What is Technical Debt? (1 of 2)

Technical Debt is…

borrowing against our capacity to quickly respond tomorrow

for the ability to make progress today.

Page 11: Managing Technical Debt by John Ryan 2011.6.22

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

Click to edit Master text styles Second level Third level Fourth level Fifth level

© 2011 BigVisible Solutions, Inc.. All Rights Reserved

11

What is Technical Debt? (2 of 2)

The Debt itself: •  Poor unit test coverage (low quality control) •  Poorly written software (comprehension complexity)* •  Software design that does not match the problem being solved

(complexity from dissonance) •  Repeated tasks remain manual (high risk of mistakes/defect) Interest Payments: •  Takes longer / more effort / is more error-prone to develop new

features. (slower progress) •  Time wasted doing automatable tasks manually. (pure waste) •  Takes longer for new team members to ramp-up. (due to complexity) •  Decreasing quality delivery à Lowered morale à low gumption * WARNING: Code Quality metrics are diagnostic aides, NOT deterministic measures. Do not manage to them.

Page 12: Managing Technical Debt by John Ryan 2011.6.22

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

Click to edit Master text styles Second level Third level Fourth level Fifth level

© 2011 BigVisible Solutions, Inc.. All Rights Reserved

12

Current Reality, Part 3

How did we get here?

Page 13: Managing Technical Debt by John Ryan 2011.6.22

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

Click to edit Master text styles Second level Third level Fourth level Fifth level

© 2011 BigVisible Solutions, Inc.. All Rights Reserved

13

How Does It Happen? (1 of 3)

Original Quadrant: http://martinfowler.com/bliki/TechnicalDebtQuadrant.html

Page 14: Managing Technical Debt by John Ryan 2011.6.22

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

Click to edit Master text styles Second level Third level Fourth level Fifth level

© 2011 BigVisible Solutions, Inc.. All Rights Reserved

14

How Does It Happen? (2 of 3)

We Don’t Know •  We don’t know how to rigorously define our business process •  We don’t know responsible programming practices

Irresponsibly •  We fritter away time on lower priority tasks •  We neglect design, coding and automation discipline

Unavoidably (Intrinsic) •  We ALL learn as we go:

•  … about our business process •  … how well our software solution meets our business needs.

Deliberately (Strategic) •  You fully understand both approaches and you trade a technical –bility for a

business –bility. •  We take the “quick & dirty” approach to meet a real deadline.

•  And fork an effort to come-up with a cleaner solution.

Page 15: Managing Technical Debt by John Ryan 2011.6.22

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

Click to edit Master text styles Second level Third level Fourth level Fifth level

© 2011 BigVisible Solutions, Inc.. All Rights Reserved

15

John’s Totally Unscientific Graph

Page 16: Managing Technical Debt by John Ryan 2011.6.22

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

Click to edit Master text styles Second level Third level Fourth level Fifth level

© 2011 BigVisible Solutions, Inc.. All Rights Reserved

16

How far do you want to go?

Page 17: Managing Technical Debt by John Ryan 2011.6.22

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

Click to edit Master text styles Second level Third level Fourth level Fifth level

© 2011 BigVisible Solutions, Inc.. All Rights Reserved

17

Future Reality

What can we do?

Page 18: Managing Technical Debt by John Ryan 2011.6.22

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

Click to edit Master text styles Second level Third level Fourth level Fifth level

© 2011 BigVisible Solutions, Inc.. All Rights Reserved

18

What Can We Do? (1 of 3)

John J. Doe

Page 19: Managing Technical Debt by John Ryan 2011.6.22

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

Click to edit Master text styles Second level Third level Fourth level Fifth level

© 2011 BigVisible Solutions, Inc.. All Rights Reserved

19

What Can We Do? (2 of 3)

The Three-Fold Path to Satisfaction 1.  Fix what you can control.

2.  Address what you can influence.

3.  Escalate what you need help with.

Page 20: Managing Technical Debt by John Ryan 2011.6.22

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

Click to edit Master text styles Second level Third level Fourth level Fifth level

© 2011 BigVisible Solutions, Inc.. All Rights Reserved

20

What Can We Do? (3 of 3)

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 21: Managing Technical Debt by John Ryan 2011.6.22

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

Click to edit Master text styles Second level Third level Fourth level Fifth level

© 2011 BigVisible Solutions, Inc.. All Rights Reserved

21

As a Developer… (1 of 2)

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 22: Managing Technical Debt by John Ryan 2011.6.22

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

Click to edit Master text styles Second level Third level Fourth level Fifth level

© 2011 BigVisible Solutions, Inc.. All Rights Reserved

22

As a Developer… (2 of 2)

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 23: Managing Technical Debt by John Ryan 2011.6.22

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

Click to edit Master text styles Second level Third level Fourth level Fifth level

© 2011 BigVisible Solutions, Inc.. All Rights Reserved

23

Mapping Technical Debt

Chris Sterling’s Technical Debt Mapping:

1.  Draw major application components on a whiteboard.

2.  Write down Technical Debt on stickies and put them on the board.

3.  Identify the potential value and cost to the team, if addressed.

4.  Prioritize by balancing value, cost and immediacy.

Page 24: Managing Technical Debt by John Ryan 2011.6.22

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

Click to edit Master text styles Second level Third level Fourth level Fifth level

© 2011 BigVisible Solutions, Inc.. All Rights Reserved

24

Coda (1 of 2)

What Stuck?

Page 25: Managing Technical Debt by John Ryan 2011.6.22

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

Click to edit Master text styles Second level Third level Fourth level Fifth level

© 2011 BigVisible Solutions, Inc.. All Rights Reserved

25

Coda (2 of 2)

What One Thing Will You Do Next?

Page 26: Managing Technical Debt by John Ryan 2011.6.22

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

Click to edit Master text styles Second level Third level Fourth level Fifth level

© 2011 BigVisible Solutions, Inc.. All Rights Reserved

26

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

•  Martin Fowler on the Technical Debt Quadrant http://martinfowler.com/bliki/TechnicalDebtQuadrant.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* Tool http://www.sonarsource.org/

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