Technical Debt and What to do about it. Kane Mar Certified Scrum Trainer and Coach (CST and CSC) ...

18
Technical Debt and What to do about it. Kane Mar Certified Scrum Trainer and Coach (CST and CSC) http://KaneMar.com [email protected]

Transcript of Technical Debt and What to do about it. Kane Mar Certified Scrum Trainer and Coach (CST and CSC) ...

Page 1: Technical Debt and What to do about it. Kane Mar Certified Scrum Trainer and Coach (CST and CSC)  Kane.Mar@gmail.com Kane Mar Certified.

Technical Debt and What to do about it.

Technical Debt and What to do about it.

Kane MarCertified Scrum Trainer and Coach (CST and CSC)

http://KaneMar.com

[email protected]

Kane MarCertified Scrum Trainer and Coach (CST and CSC)

http://KaneMar.com

[email protected]

Page 2: Technical Debt and What to do about it. Kane Mar Certified Scrum Trainer and Coach (CST and CSC)  Kane.Mar@gmail.com Kane Mar Certified.

Creative Commons Attribution 3.0Kane Mar and Others (see credits) Creative Commons Attribution 3.0Kane Mar and Others (see credits)

You are free:

to Share — to copy, distribute and transmit the work

to Remix — to adapt the work

Under the following conditions:

Attribution. You must attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work)

http://creativecommons.org/licenses/by/3.0/

You are free:

to Share — to copy, distribute and transmit the work

to Remix — to adapt the work

Under the following conditions:

Attribution. You must attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work)

http://creativecommons.org/licenses/by/3.0/

Page 3: Technical Debt and What to do about it. Kane Mar Certified Scrum Trainer and Coach (CST and CSC)  Kane.Mar@gmail.com Kane Mar Certified.

About Me, About YouAbout Me, About You

Page 4: Technical Debt and What to do about it. Kane Mar Certified Scrum Trainer and Coach (CST and CSC)  Kane.Mar@gmail.com Kane Mar Certified.

What is Technical DebtWhat is Technical Debt

The concept of software complexity as debt was originally coined by Ward Cunningham in an experience report for OOPSLA ‘92 (*)

Reference: http://c2.com/doc/oopsla92.html

The concept of software complexity as debt was originally coined by Ward Cunningham in an experience report for OOPSLA ‘92 (*)

Reference: http://c2.com/doc/oopsla92.html

Page 5: Technical Debt and What to do about it. Kane Mar Certified Scrum Trainer and Coach (CST and CSC)  Kane.Mar@gmail.com Kane Mar Certified.

What is Technical DebtWhat is Technical Debt

During the planning or execution of a software project, decisions are made to defer necessary work:

It's too late in the LifeCycle? to upgrade to the new release of the compiler. We'll do it next time around.

We're not completely conforming to the UserInterface guidelines. We'll get to it next time.

We don't have time to uncruft the hyper-widget code. Punt until next time.

During the planning or execution of a software project, decisions are made to defer necessary work:

It's too late in the LifeCycle? to upgrade to the new release of the compiler. We'll do it next time around.

We're not completely conforming to the UserInterface guidelines. We'll get to it next time.

We don't have time to uncruft the hyper-widget code. Punt until next time.

Page 6: Technical Debt and What to do about it. Kane Mar Certified Scrum Trainer and Coach (CST and CSC)  Kane.Mar@gmail.com Kane Mar Certified.

What is Technical DebtWhat is Technical Debt

A big pile of deferred work can gum up a project, yet many of the items on the list don't appear on a project team's radar, especially if the focus is primarily on new product features. Yet removing accumulated sludge needs to be accounted for in planning!

Therefore: Make the debt visible. Keep an explicit list Technical Debt

A big pile of deferred work can gum up a project, yet many of the items on the list don't appear on a project team's radar, especially if the focus is primarily on new product features. Yet removing accumulated sludge needs to be accounted for in planning!

Therefore: Make the debt visible. Keep an explicit list Technical Debt

Page 7: Technical Debt and What to do about it. Kane Mar Certified Scrum Trainer and Coach (CST and CSC)  Kane.Mar@gmail.com Kane Mar Certified.

Quality and Velocity

Page 8: Technical Debt and What to do about it. Kane Mar Certified Scrum Trainer and Coach (CST and CSC)  Kane.Mar@gmail.com Kane Mar Certified.

The story of a burger ...The story of a burger ...

Page 9: Technical Debt and What to do about it. Kane Mar Certified Scrum Trainer and Coach (CST and CSC)  Kane.Mar@gmail.com Kane Mar Certified.

How does “Technical Debt” occur?How does “Technical Debt” occur?

By not enforcing high quality standards in the definition of “done.”

Cutting corners to achieve a higher velocity and meet impossible timelines leads to build up of low quality, unmaintainable code.

Death spiral: As the maximum velocity of system goes down, even more corners are cut to compensate until the velocity approaches zero.

By not enforcing high quality standards in the definition of “done.”

Cutting corners to achieve a higher velocity and meet impossible timelines leads to build up of low quality, unmaintainable code.

Death spiral: As the maximum velocity of system goes down, even more corners are cut to compensate until the velocity approaches zero.

Page 10: Technical Debt and What to do about it. Kane Mar Certified Scrum Trainer and Coach (CST and CSC)  Kane.Mar@gmail.com Kane Mar Certified.

Signs of Technical DebtSigns of Technical Debt

The code is considered part of a core or legacy system

There is either no testing, or minimal testing surrounding the code

There is highly compartmentized knowledge regarding the core/legacy system, and it may be supported by only one or two people in the company (over specialization)

The code is considered part of a core or legacy system

There is either no testing, or minimal testing surrounding the code

There is highly compartmentized knowledge regarding the core/legacy system, and it may be supported by only one or two people in the company (over specialization)

Page 11: Technical Debt and What to do about it. Kane Mar Certified Scrum Trainer and Coach (CST and CSC)  Kane.Mar@gmail.com Kane Mar Certified.

Signs of Technical DebtSigns of Technical Debt

The legacy system is not in a know state

It takes as long to fix defects caused be adding new functionality, as it does to add the new functionality

Re-platforming ... and then repeat the mistakes of the past

The legacy system is not in a know state

It takes as long to fix defects caused be adding new functionality, as it does to add the new functionality

Re-platforming ... and then repeat the mistakes of the past

Page 12: Technical Debt and What to do about it. Kane Mar Certified Scrum Trainer and Coach (CST and CSC)  Kane.Mar@gmail.com Kane Mar Certified.

What to do about Technical DebtWhat to do about Technical Debt

Avoid accumulating technical debt

Pay it off over time (mortgage)

“Working with legacy code” by Michael Feathers

An anti-pattern worth mentioning

Avoid accumulating technical debt

Pay it off over time (mortgage)

“Working with legacy code” by Michael Feathers

An anti-pattern worth mentioning

Page 13: Technical Debt and What to do about it. Kane Mar Certified Scrum Trainer and Coach (CST and CSC)  Kane.Mar@gmail.com Kane Mar Certified.

Avoid Technical DebtAvoid Technical Debt

Implement the Agile Engineering practices:

Continuous Integration

Test Driven Development

Refactoring

Pair Programming

Implement the Agile Engineering practices:

Continuous Integration

Test Driven Development

Refactoring

Pair Programming

Page 14: Technical Debt and What to do about it. Kane Mar Certified Scrum Trainer and Coach (CST and CSC)  Kane.Mar@gmail.com Kane Mar Certified.

Avoid Technical DebtAvoid Technical Debt

Development teams must curb over-optimism in assessing availability and capacity

Management redirects attention from applying pressure to removing organizational impediments to progress

Product Owners understand the iron triangle, ownership of risks, and impact of cutting quality

ScrumMaster must prevent demonstration of any work that is not “done”

Development teams must curb over-optimism in assessing availability and capacity

Management redirects attention from applying pressure to removing organizational impediments to progress

Product Owners understand the iron triangle, ownership of risks, and impact of cutting quality

ScrumMaster must prevent demonstration of any work that is not “done”

Page 15: Technical Debt and What to do about it. Kane Mar Certified Scrum Trainer and Coach (CST and CSC)  Kane.Mar@gmail.com Kane Mar Certified.

Paying off Technical DebtPaying off Technical Debt

Described by Michael Feathers in “Working Effectively with Legacy code”

Start by introducing Continuous Integration

Write Tests around customer reported defects

Over a period of time a testing framework will be built up around the most brittle code

Described by Michael Feathers in “Working Effectively with Legacy code”

Start by introducing Continuous Integration

Write Tests around customer reported defects

Over a period of time a testing framework will be built up around the most brittle code

Page 16: Technical Debt and What to do about it. Kane Mar Certified Scrum Trainer and Coach (CST and CSC)  Kane.Mar@gmail.com Kane Mar Certified.

And Avoid this anti-patternAnd Avoid this anti-pattern

There is a temptation to try and write a comprehensive testing framework around the entire product

Does not address the defects that the customer views as most important

May run out of money before you complete the framework

There is a temptation to try and write a comprehensive testing framework around the entire product

Does not address the defects that the customer views as most important

May run out of money before you complete the framework

Page 17: Technical Debt and What to do about it. Kane Mar Certified Scrum Trainer and Coach (CST and CSC)  Kane.Mar@gmail.com Kane Mar Certified.

Thank you!Thank you!

Page 18: Technical Debt and What to do about it. Kane Mar Certified Scrum Trainer and Coach (CST and CSC)  Kane.Mar@gmail.com Kane Mar Certified.

Photos CreditsPhotos Credits

http://www.flicker.com/photos/yujin_it

http://www.flickr.com/photos/66164549@N00/

http://www.flicker.com/photos/vernhart/

http://www.flickr.com/photos/lambda_x/

http://www.flicker.com/photos/yujin_it

http://www.flickr.com/photos/66164549@N00/

http://www.flicker.com/photos/vernhart/

http://www.flickr.com/photos/lambda_x/