TECHNICAL DEBT
  ... And What to Do About It!
THE SPEAKER

     Kane Mar,
     Scrumology.com

     OutSofting.com
       Scrum Training

       Scrum Coaching




Scru...
DO YOU KNOW THESE
          PROBLEMS?
     Your team cannot change the system quick enough to
     meet changing business ...
WHY SHOULD YOU
              CARE?
     Be able to meet
     changing business
     needs

     Reduce Total Cost of
     ...
WHAT IS TECHNICAL DEBT

     The concept of software complexity as debt was
     originally coined by Ward Cunningham in a...
WHAT IS TECHNICAL DEBT?

     A big pile of deferred work can gum up a project, yet
     many of the items on the list don...
HOW DOES TECHNICAL
        DEBT HAPPEN?
     By not enforcing high
     quality standards

     Cutting corners to
     ac...
COST OF MAINTENANCE

                                              Product Burndown
                            100

     ...
COST OF MAINTENANCE

                                          Cost of Maintenance
           Maintenance Cost




       ...
SIGNS OF TECHNICAL
             DEBT
     The code is considered part of a core or legacy system

     There is either no ...
SIGNS OF TECHNICAL
             DEBT
     It takes as long to fix defects caused be adding new
     functionality, as it do...
AVOID TECHNICAL DEBT

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

     Man...
AVOID TECHNICAL DEBT

     Implement the Agile
     Technical practices:

       Continuous
       Integration

       Tes...
STRATEGIES FOR PAYING
       TECHNICAL DEBT
     Two strategies to
     consider:

       Highest interest rate
       firs...
PAYING OFF TECHNICAL
            DEBT
     Described by Michael Feathers in “Working
     Effectively with Legacy code”

 ...
AND AVOID THIS ANTI-
           PATTERN
     There is a temptation to try and write a
     comprehensive testing framework...
IN CLOSING ...

       By focusing on reducing technical debt, we can:

         Better meet changing business needs

    ...
THANK YOU!
REFERENCES
     http://www.infoq.com/presentations/agile-quality-canary-
     coalmine

     http://martinfowler.com/artic...
PHOTOS CREDITS


    http://www.flicker.com/photos/yujin_it
                                                               ...
QCon Beijing - April 2010
QCon Beijing - April 2010
QCon Beijing - April 2010
QCon Beijing - April 2010
Upcoming SlideShare
Loading in...5
×

QCon Beijing - April 2010

3,519

Published on

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,519
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
28
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

QCon Beijing - April 2010

  1. 1. TECHNICAL DEBT ... And What to Do About It!
  2. 2. THE SPEAKER Kane Mar, Scrumology.com OutSofting.com Scrum Training Scrum Coaching Scrumology.com
  3. 3. DO YOU KNOW THESE PROBLEMS? Your team cannot change the system quick enough to meet changing business needs Your code is so complex only a few people in the company are allowed to make changes Your spend more time fixing defects introduced by new functionality You have recently re-platformed to newer technology Scrumology.com
  4. 4. WHY SHOULD YOU CARE? Be able to meet changing business needs Reduce Total Cost of Ownership Build higher quality products Keep customers happy Scrumology.com
  5. 5. WHAT 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 Scrumology.com
  6. 6. WHAT 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 Scrumology.com
  7. 7. HOW DOES TECHNICAL DEBT HAPPEN? By not enforcing high quality standards Cutting corners to achieve a higher velocity to meet timelines As the velocity of system goes down, even more corners are cut Scrumology.com
  8. 8. COST OF MAINTENANCE Product Burndown 100 90 80 Product Backlog 70 60 50 40 30 20 10 0 0 1 2 3 4 5 6 7 8 9 Iteration Scrumology.com
  9. 9. COST OF MAINTENANCE Cost of Maintenance Maintenance Cost 0 1 2 3 4 5 6 7 8 9 Release Scrumology.com
  10. 10. SIGNS 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 ... the legacy system is not in a know state There is highly compartmentalized knowledge regarding the core/legacy system, and it may be supported by only one or two people in the company (over specialization) Scrumology.com
  11. 11. SIGNS OF TECHNICAL DEBT 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 Scrumology.com
  12. 12. AVOID 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” Scrumology.com
  13. 13. AVOID TECHNICAL DEBT Implement the Agile Technical practices: Continuous Integration Test Driven Development Refactoring Pair Programming Scrumology.com
  14. 14. STRATEGIES FOR PAYING TECHNICAL DEBT Two strategies to consider: Highest interest rate first approach Lowest balance first approach Scrumology.com
  15. 15. PAYING OFF TECHNICAL DEBT Described by Michael Feathers in “Working Effectively with Legacy code” Start by introducing Continuous Integration Write Automated Tests around customer reported defects Over a period of time a testing framework will be built up around the most brittle code Scrumology.com
  16. 16. AND AVOID THIS ANTI- PATTERN There is a temptation to try and write a comprehensive testing framework around the entire product, but: This does not address the defects that the customer views as most important You may run out of money before you complete the framework, and You are not delivering new business value Scrumology.com
  17. 17. IN CLOSING ... By focusing on reducing technical debt, we can: Better meet changing business needs reduce Total Cost of Ownership Build higher quality products Keep our customers happy Scrumology.com
  18. 18. THANK YOU!
  19. 19. REFERENCES http://www.infoq.com/presentations/agile-quality-canary- coalmine http://martinfowler.com/articles/continuousIntegration.html “Working Effectively with Legacy code,” by Michael Feathers “Test Driven Development: By Example”, by Kent Beck Scrumology.com
  20. 20. PHOTOS CREDITS http://www.flicker.com/photos/yujin_it http://www.flickr.com/photos/majamom/ http://www.flickr.com/photos/slayer23/ http://www.flickr.com/photos/44442915@N00/ http://www.flickr.com/photos/eivindw/ http://www.flickr.com/photos/library_of_congress/ http://www.flickr.com/photos/walkn/ http://www.flickr.com/photos/29143375@N05/ http://www.flicker.com/photos/vernhart/ Scrumology.com
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×