C afé

                                            Identifying,
                                            Measuring,
                                             Reducing
                                            & Avoiding
                                  Technical Debt

                                            Rob Myers
                                                for
                                             ADP East
                                            10 Nov 2011

09 November 2011   © Agile Institute 2011                  1
time (schedule)




    effort (cost)                                         size (scope)

               Five Core Metrics: The Intelligence Behind Successful Software Management,
                    Lawrence H. Putnam & Ware Myers, Dorset House Publishing, 2003

09 November 2011                     © Agile Institute 2011                                 2
time (schedule)




    effort (cost)                                         size (scope)

               Five Core Metrics: The Intelligence Behind Successful Software Management,
                    Lawrence H. Putnam & Ware Myers, Dorset House Publishing, 2003

09 November 2011                     © Agile Institute 2011                                 2
time (schedule)




    effort (cost)                                         size (scope)

               Five Core Metrics: The Intelligence Behind Successful Software Management,
                    Lawrence H. Putnam & Ware Myers, Dorset House Publishing, 2003

09 November 2011                     © Agile Institute 2011                                 2
time (schedule)




                       productivity



    effort (cost)                                         size (scope)

               Five Core Metrics: The Intelligence Behind Successful Software Management,
                    Lawrence H. Putnam & Ware Myers, Dorset House Publishing, 2003

09 November 2011                     © Agile Institute 2011                                 2
reliability
                         time (schedule)                                         (quality)




                       productivity



    effort (cost)                                         size (scope)

               Five Core Metrics: The Intelligence Behind Successful Software Management,
                    Lawrence H. Putnam & Ware Myers, Dorset House Publishing, 2003

09 November 2011                     © Agile Institute 2011                                 2
09 November 2011   © Rob Myers 2011   3
“...having high amounts of Technical Debt is
probably the number one impediment to Teams
being agile.”

                          Dr. Dan Rawsthorne,
             Exploring Scrum:The Fundamentals
• Design Debt
• Design Debt
• Quality Debt
• Design Debt
• Quality Debt
• Testing Debt
•   Design Debt
•   Quality Debt
•   Testing Debt
•   ...ad nauseam
• Design Debt
• Design Debt
  • Cyclomatic complexity
• Design Debt
  • Cyclomatic complexity
  • Cycle time
• Design Debt
  • Cyclomatic complexity
  • Cycle time
• Quality Debt
• Design Debt
  • Cyclomatic complexity
  • Cycle time
• Quality Debt
  • Mean Time Between Failures
• Design Debt
  • Cyclomatic complexity
  • Cycle time
• Quality Debt
  • Mean Time Between Failures
  • Severe-defect count
• Design Debt
  • Cyclomatic complexity
  • Cycle time
• Quality Debt
  • Mean Time Between Failures
  • Severe-defect count
• Testing Debt
• Design Debt
  • Cyclomatic complexity
  • Cycle time
• Quality Debt
  • Mean Time Between Failures
  • Severe-defect count
• Testing Debt
  • % Covered
• Design Debt
  • Cyclomatic complexity
  • Cycle time
• Quality Debt
  • Mean Time Between Failures
  • Severe-defect count
• Testing Debt
  • % Covered
  • Time to regression test
09 November 2011   © Rob Myers 2011   7
(c) SoftwareHumor.com
       http://theleek.net/software-humor-blog/posters/technical-debt-the-poster/
09 November 2011                   © Rob Myers 2011                                8
Minimal Iteration Debt
      Payment
Test Drive!
09 November 2011   © Rob Myers 2011            10
“The results of the case studies indicate
    that the pre-release defect density of the
    four products decreased between 40%
    and 90% relative to similar projects that
    did not use the TDD practice.
    Subjectively, the teams experienced a
    15–35% increase in initial development
    time after adopting TDD.”
http://research.microsoft.com/en-us/projects/esm/nagappan_tdd.pdf, Nagappan et al,
                   © Springer Science + Business Media, LLC 2008
   09 November 2011               © Rob Myers 2011                          11
Developer’s “Oath of Athens”



 I vow to leave the code as
good as I found it, or better!
• Design Debt
• Design Debt
  • Merciless Refactoring
• Design Debt
  • Merciless Refactoring
• Quality Debt
• Design Debt
  • Merciless Refactoring
• Quality Debt
  • Find bugs before check-in
• Design Debt
  • Merciless Refactoring
• Quality Debt
  • Find bugs before check-in
• Testing Debt
• Design Debt
  • Merciless Refactoring
• Quality Debt
  • Find bugs before check-in
• Testing Debt
  • Fast automation
•   The Wobbly Iron Rhomboid
•   The Wobbly Iron Rhomboid

•   At first, Quality v. Productivity trade-offs
•   The Wobbly Iron Rhomboid

•   At first, Quality v. Productivity trade-offs

•   Sharpen the Chef’s Knives
•   The Wobbly Iron Rhomboid

•   At first, Quality v. Productivity trade-offs

•   Sharpen the Chef’s Knives

•   Quality quickly improves throughput of value
    (Productivity)
Rob.Myers@agileInstitute.com

         http://PowersOfTwo.agileInstitute.com/

                              @agilecoach




09 November 2011        © Agile Institute 2011    15

Technical Debt

  • 1.
    C afé Identifying, Measuring, Reducing & Avoiding Technical Debt Rob Myers for ADP East 10 Nov 2011 09 November 2011 © Agile Institute 2011 1
  • 2.
    time (schedule) effort (cost) size (scope) Five Core Metrics: The Intelligence Behind Successful Software Management, Lawrence H. Putnam & Ware Myers, Dorset House Publishing, 2003 09 November 2011 © Agile Institute 2011 2
  • 3.
    time (schedule) effort (cost) size (scope) Five Core Metrics: The Intelligence Behind Successful Software Management, Lawrence H. Putnam & Ware Myers, Dorset House Publishing, 2003 09 November 2011 © Agile Institute 2011 2
  • 4.
    time (schedule) effort (cost) size (scope) Five Core Metrics: The Intelligence Behind Successful Software Management, Lawrence H. Putnam & Ware Myers, Dorset House Publishing, 2003 09 November 2011 © Agile Institute 2011 2
  • 5.
    time (schedule) productivity effort (cost) size (scope) Five Core Metrics: The Intelligence Behind Successful Software Management, Lawrence H. Putnam & Ware Myers, Dorset House Publishing, 2003 09 November 2011 © Agile Institute 2011 2
  • 6.
    reliability time (schedule) (quality) productivity effort (cost) size (scope) Five Core Metrics: The Intelligence Behind Successful Software Management, Lawrence H. Putnam & Ware Myers, Dorset House Publishing, 2003 09 November 2011 © Agile Institute 2011 2
  • 7.
    09 November 2011 © Rob Myers 2011 3
  • 8.
    “...having high amountsof Technical Debt is probably the number one impediment to Teams being agile.” Dr. Dan Rawsthorne, Exploring Scrum:The Fundamentals
  • 10.
  • 11.
    • Design Debt •Quality Debt
  • 12.
    • Design Debt •Quality Debt • Testing Debt
  • 13.
    Design Debt • Quality Debt • Testing Debt • ...ad nauseam
  • 15.
  • 16.
    • Design Debt • Cyclomatic complexity
  • 17.
    • Design Debt • Cyclomatic complexity • Cycle time
  • 18.
    • Design Debt • Cyclomatic complexity • Cycle time • Quality Debt
  • 19.
    • Design Debt • Cyclomatic complexity • Cycle time • Quality Debt • Mean Time Between Failures
  • 20.
    • Design Debt • Cyclomatic complexity • Cycle time • Quality Debt • Mean Time Between Failures • Severe-defect count
  • 21.
    • Design Debt • Cyclomatic complexity • Cycle time • Quality Debt • Mean Time Between Failures • Severe-defect count • Testing Debt
  • 22.
    • Design Debt • Cyclomatic complexity • Cycle time • Quality Debt • Mean Time Between Failures • Severe-defect count • Testing Debt • % Covered
  • 23.
    • Design Debt • Cyclomatic complexity • Cycle time • Quality Debt • Mean Time Between Failures • Severe-defect count • Testing Debt • % Covered • Time to regression test
  • 24.
    09 November 2011 © Rob Myers 2011 7
  • 25.
    (c) SoftwareHumor.com http://theleek.net/software-humor-blog/posters/technical-debt-the-poster/ 09 November 2011 © Rob Myers 2011 8
  • 26.
  • 27.
    Test Drive! 09 November2011 © Rob Myers 2011 10
  • 28.
    “The results ofthe case studies indicate that the pre-release defect density of the four products decreased between 40% and 90% relative to similar projects that did not use the TDD practice. Subjectively, the teams experienced a 15–35% increase in initial development time after adopting TDD.” http://research.microsoft.com/en-us/projects/esm/nagappan_tdd.pdf, Nagappan et al, © Springer Science + Business Media, LLC 2008 09 November 2011 © Rob Myers 2011 11
  • 29.
    Developer’s “Oath ofAthens” I vow to leave the code as good as I found it, or better!
  • 31.
  • 32.
    • Design Debt • Merciless Refactoring
  • 33.
    • Design Debt • Merciless Refactoring • Quality Debt
  • 34.
    • Design Debt • Merciless Refactoring • Quality Debt • Find bugs before check-in
  • 35.
    • Design Debt • Merciless Refactoring • Quality Debt • Find bugs before check-in • Testing Debt
  • 36.
    • Design Debt • Merciless Refactoring • Quality Debt • Find bugs before check-in • Testing Debt • Fast automation
  • 38.
    The Wobbly Iron Rhomboid
  • 39.
    The Wobbly Iron Rhomboid • At first, Quality v. Productivity trade-offs
  • 40.
    The Wobbly Iron Rhomboid • At first, Quality v. Productivity trade-offs • Sharpen the Chef’s Knives
  • 41.
    The Wobbly Iron Rhomboid • At first, Quality v. Productivity trade-offs • Sharpen the Chef’s Knives • Quality quickly improves throughput of value (Productivity)
  • 42.
    Rob.Myers@agileInstitute.com http://PowersOfTwo.agileInstitute.com/ @agilecoach 09 November 2011 © Agile Institute 2011 15

Editor's Notes

  • #2 \n
  • #3 Looks like Time, Cost, Scope “Iron Triangle”\nPerformance is derived from other direct metrics\nAddition of reliability as quality\nQuality (“Iron Rhomboid”). Productivity is influenced by all but Reliability!\n
  • #4 Looks like Time, Cost, Scope “Iron Triangle”\nPerformance is derived from other direct metrics\nAddition of reliability as quality\nQuality (“Iron Rhomboid”). Productivity is influenced by all but Reliability!\n
  • #5 Looks like Time, Cost, Scope “Iron Triangle”\nPerformance is derived from other direct metrics\nAddition of reliability as quality\nQuality (“Iron Rhomboid”). Productivity is influenced by all but Reliability!\n
  • #6 Looks like Time, Cost, Scope “Iron Triangle”\nPerformance is derived from other direct metrics\nAddition of reliability as quality\nQuality (“Iron Rhomboid”). Productivity is influenced by all but Reliability!\n
  • #7 Looks like Time, Cost, Scope “Iron Triangle”\nPerformance is derived from other direct metrics\nAddition of reliability as quality\nQuality (“Iron Rhomboid”). Productivity is influenced by all but Reliability!\n
  • #8 Looks like Time, Cost, Scope “Iron Triangle”\nPerformance is derived from other direct metrics\nAddition of reliability as quality\nQuality (“Iron Rhomboid”). Productivity is influenced by all but Reliability!\n
  • #9 Problem: Iterations imply incremental development\nChange can result in a negative feedback loop - ENTROPY: The Agilist’s Dilemma\nWe have to address this. It’s not easy, until it becomes easy. At first, we’d rather not check the oil…\n
  • #10 ...and I’d add “to products or projects being successful”\n
  • #11 Types of debt\nThey all have a few things in common: \nDifficult to quantify\nseemingly expensive to fix,\naccrued because we don’t want to (or aren’t sure at the time that we need to) pay now,\n\n
  • #12 Types of debt\nThey all have a few things in common: \nDifficult to quantify\nseemingly expensive to fix,\naccrued because we don’t want to (or aren’t sure at the time that we need to) pay now,\n\n
  • #13 Types of debt\nThey all have a few things in common: \nDifficult to quantify\nseemingly expensive to fix,\naccrued because we don’t want to (or aren’t sure at the time that we need to) pay now,\n\n
  • #14 Types of debt\nThey all have a few things in common: \nDifficult to quantify\nseemingly expensive to fix,\naccrued because we don’t want to (or aren’t sure at the time that we need to) pay now,\n\n
  • #15 Measures\n
  • #16 Measures\n
  • #17 Measures\n
  • #18 Measures\n
  • #19 Measures\n
  • #20 Measures\n
  • #21 Measures\n
  • #22 Measures\n
  • #23 Measures\n
  • #24 Real Debt! Need QUALITATIVE metrics!\n
  • #25 Acknowledge the amount of debt\nPay a Minimum\nFind ways to Stop creating debt!\nLet’s look at some methods...\n
  • #26 Bug fixing, refactoring, legacy-pinning\n
  • #27 \n
  • #28 Does TDD Work?\nMicrosoft and IBM…\nAlso, “approximately 40% fewer defects” Laurie Williams for ACM\ndefect rate is considerably lower\nfuture enhancements easier in a dynamic market. \ndefects quickly detected\n
  • #29 “to leave the city better than I found it”\n\n
  • #30 \n
  • #31 \n
  • #32 \n
  • #33 \n
  • #34 \n
  • #35 \n
  • #36 For management to embrace and support...\n\n
  • #37 For management to embrace and support...\n\n
  • #38 For management to embrace and support...\n\n
  • #39 For management to embrace and support...\n\n
  • #40 Thank you!\n