Your SlideShare is downloading. ×
0
Managing Software Debt

    Continued Delivery of High Value as Systems Age




                                          ...
Topics Being Covered

               Problems Found with Aging Software

               Software Debt Explained

         ...
Problems Found with Aging Software

               Software gets difficult to add features to as it ages

               Bu...
Lack of emphasis on software quality attributes
     contributes to decay




© 2009-2010,                                ...
The “Rewrite”, “NextGen” or “Like-to-like Migration”

               “It will be easy since we worked on the original vers...
Limited Platform Expertise




       Risk and costs increase as expertise becomes more
               limited for aging s...
Costs for Release Stabilization Increase Over Time

                500000




                375000




                ...
Extreme Specialization

               Knowledge and capability to maintain legacy software decays with time

            ...
Software Debt

    Creeps into software slowly and leaves organizations with liabilities




                             ...
Software Debt Creeps In




© 2009-2010,                   10


Friday, September 24, 2010          10
Software Debt Creeps In




© 2009-2010,                   11


Friday, September 24, 2010          11
Software Debt Creeps In




© 2009-2010,                   12


Friday, September 24, 2010          12
Managing Software Debt – an Overview




© 2009-2010,                                13


Friday, September 24, 2010      ...
Managing Software Debt

               It is impossible to stop software debt from creeping into our software

           ...
Types of Software Debt

               Technical Debt

               Quality Debt

               Configuration Management...
Technical Debt

    Issues in software that will impede future development if left unresolved




                        ...
* Ward Cunningham on “Technical Debt”

               Technical Debt includes those internal things that you choose not to...
My Definition of “Technical Debt”

                   “Technical debt is the decay of
                  component and inter...
Regression Costs - Manual vs. Automated




© 2009-2010,                                   19


Friday, September 24, 2010...
Principles of Executable Design

               The way we design can always be improved.

               We’ll get it “ri...
Quality Debt

    A lack of quality will lessen the value per feature added over time




                                ...
Accrual of Quality Debt with Releases




© 2009-2010,                                 22


Friday, September 24, 2010    ...
Break/Fix Only Prolongs the Agony




© 2009-2010,                             23


Friday, September 24, 2010            ...
Effect of Project Constraints on Quality




© 2009-2010,                                    24


Friday, September 24, 20...
Effect of Project Constraints on Quality




© 2009-2010,                                    24


Friday, September 24, 20...
Acceptance Test-Driven Development




© 2009-2010,                              25


Friday, September 24, 2010          ...
A Fit Case Study

    Cost reduction using Fit for test automation and data conversion




                               ...
Manual Regression Testing

               Testing was taking 75 person hours during 2 full test runs consisting of:

     ...
Introducing Fit into Testing Process

               After 8 iterations team had introduced healthy amount of Fit fixtures ...
Configuration Management Debt

    Unpredictable and error-prone release management




                                   ...
Traditional Source Control Management




© 2009-2010,                                 30


Friday, September 24, 2010    ...
Traditional Source Control Management




                                        Main Branch




© 2009-2010,            ...
Traditional Source Control Management

                              Code
                             Complete
          ...
Traditional Source Control Management

                                     Code
                                    Compl...
Traditional Source Control Management

                                       Code
                                      C...
Flexible Source Control Management




© 2009-2010,                              31


Friday, September 24, 2010          ...
Flexible Source Control Management




                                          Main Branch




© 2009-2010,             ...
Flexible Source Control Management




               Version 1
                                          Main Branch




...
Flexible Source Control Management




               Version 1      Version 2
                                          M...
Flexible Source Control Management




               Version 1                  Version 2
                               ...
Continuous Integration




© 2009-2010,                  32


Friday, September 24, 2010         32
Scaling to Multiple Integrations




© 2009-2010,                            33


Friday, September 24, 2010              ...
The Power of 2 Scripts: Deploy and Rollback




                             Deploy   Rollback




© 2009-2010,           ...
Design Debt

    Design decays when not attended to so design software continually




                                   ...
* Abuse User Stories




         Implement Security
        for User Information




                             * From ...
* Abuse User Stories




         Implement Security                                            As a Malicious Hacker I
  ...
Platform Experience Debt

    Silos of knowledge and increased specialization will increase cost of
    maintenance over t...
How to Combat Platform Experience Debt

               Ignore it (I do not suggest this!)   Surround existing functionalit...
Team Configuration Patterns

               Virtual Architect Pattern

               Integration Team Pattern

           ...
Virtual Team Pattern


                             Enterprise
                              Planning




© 2009-2010,    ...
Virtual Team Pattern

               Pros

                  Share architecture ideas and needs across teams

            ...
Integration Team Pattern

                                         All features are
                             Integrate...
Integration Team Pattern

               Pros

                  Reduces complexity on Feature Teams

                  Fo...
Component Shepherd Pattern




© 2009-2010,                      44


Friday, September 24, 2010             44
Component Shepherd Pattern

               Pros

                  Share more knowledge within organization to minimize pl...
Feature Team Pattern




© 2009-2010,                 46


Friday, September 24, 2010        46
Feature Team Pattern

               Pros

                  Team owns architecture decisions

                  Decisions...
What is possible?

    High quality can be attained and enables accelerated feature delivery.




                        ...
A Story: Field Support Application

               2000+ users access application each day
               Application supp...
Lets wrap this up...

    What should I take away from this?




                                         50


Friday, Sep...
Principles for Managing Software Debt

               Maintain one list of work

               Emphasize quality

       ...
Thank you

    Questions and Answers




                             52


Friday, September 24, 2010        52
Chris Sterling – Sterling Barton, LLC

               Technology Consultant, Agile Consultant and
               Certified ...
Upcoming SlideShare
Loading in...5
×

Managing softwaredebt agilepalooza-redmond-sept2010

1,976

Published on

0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,976
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
40
Comments
0
Likes
5
Embeds 0
No embeds

No notes for slide

Transcript of "Managing softwaredebt agilepalooza-redmond-sept2010"

  1. 1. Managing Software Debt Continued Delivery of High Value as Systems Age Chris Sterling Technology Consultant / Agile Coach / Certified Scrum Trainer Sterling Barton, LLC Web: www.SterlingBarton.com Email: chris@sterlingbarton.com Blog: www.GettingAgile.com Follow Me on Twitter: @csterwa Hash Tag for Presentation: #swdebt Friday, September 24, 2010 1
  2. 2. Topics Being Covered Problems Found with Aging Software Software Debt Explained Technical Debt Quality Debt Configuration Management Debt Design Debt Platform Experience Debt The Wrap Up A Story of What is Possible © 2009-2010, 2 Friday, September 24, 2010 2
  3. 3. Problems Found with Aging Software Software gets difficult to add features to as it ages Business expectations do not lessen as software ages Software must remain maintainable and changeable to meet needs of business over time © 2009-2010, 3 Friday, September 24, 2010 3
  4. 4. Lack of emphasis on software quality attributes contributes to decay © 2009-2010, 4 Friday, September 24, 2010 4
  5. 5. The “Rewrite”, “NextGen” or “Like-to-like Migration” “It will be easy since we worked on the original version” - although we understand the domain we will be fighting with new features, technology, tools, and processes “We don’t have any other options” - Refactoring and test automation are potential alternatives to like-to-like migrations. © 2009-2010, 5 Friday, September 24, 2010 5
  6. 6. Limited Platform Expertise Risk and costs increase as expertise becomes more limited for aging software platforms. © 2009-2010, 6 Friday, September 24, 2010 6
  7. 7. Costs for Release Stabilization Increase Over Time 500000 375000 250000 125000 Release 6 Release 5 Release 4 0 Release 3 Release 2 Release 1 Cost of Fixing Defects Cost for Feature Dev © 2009-2010, Friday, September 24, 2010 7
  8. 8. Extreme Specialization Knowledge and capability to maintain legacy software decays with time Costs to maintain rarely used software platforms are higher Leads to waiting for people in specialized roles to finish their tasks in support of development effort © 2009-2010, 8 Friday, September 24, 2010 8
  9. 9. Software Debt Creeps into software slowly and leaves organizations with liabilities 9 Friday, September 24, 2010 9
  10. 10. Software Debt Creeps In © 2009-2010, 10 Friday, September 24, 2010 10
  11. 11. Software Debt Creeps In © 2009-2010, 11 Friday, September 24, 2010 11
  12. 12. Software Debt Creeps In © 2009-2010, 12 Friday, September 24, 2010 12
  13. 13. Managing Software Debt – an Overview © 2009-2010, 13 Friday, September 24, 2010 13
  14. 14. Managing Software Debt It is impossible to stop software debt from creeping into our software Managing debt in software is based on putting frequent feedback mechanisms in place for code, quality assurance, configuration management, design, and organization of people on project team Feedback mechanisms should be frequent, automated, and easy to use to support their continued use or modified to new needs © 2009-2010, 14 Friday, September 24, 2010 14
  15. 15. Types of Software Debt Technical Debt Quality Debt Configuration Management Debt Design Debt Platform Experience Debt © 2009-2010, 15 Friday, September 24, 2010 15
  16. 16. Technical Debt Issues in software that will impede future development if left unresolved 16 Friday, September 24, 2010 16
  17. 17. * Ward Cunningham on “Technical Debt” Technical Debt includes those internal things that you choose not to do now, but which will impede future development if left undone. This includes deferred refactoring. Technical Debt doesn’t include deferred functionality, except possibly in edge cases where delivered functionality is “good enough” for the customer, but doesn’t satisfy some standard (e.g., a UI element that isn’t fully compliant with some UI standard). * Ward Cunningham - “Technical Debt” - http://c2.com/cgi/wiki?TechnicalDebt © 2009-2010, 17 Friday, September 24, 2010 17
  18. 18. My Definition of “Technical Debt” “Technical debt is the decay of component and inter-component behavior when the application functionality meets a minimum standard of satisfaction for the customer.” © 2009-2010, 18 Friday, September 24, 2010 18
  19. 19. Regression Costs - Manual vs. Automated © 2009-2010, 19 Friday, September 24, 2010 19
  20. 20. Principles of Executable Design The way we design can always be improved. We’ll get it “right” the third time. We will not get it “right” the first time. Design and construct for change rather than longevity. Lower the threshold of pain. If we are not enhancing the design then we are just writing a bunch of tests. © 2009-2010, 20 Friday, September 24, 2010 20
  21. 21. Quality Debt A lack of quality will lessen the value per feature added over time 21 Friday, September 24, 2010 21
  22. 22. Accrual of Quality Debt with Releases © 2009-2010, 22 Friday, September 24, 2010 22
  23. 23. Break/Fix Only Prolongs the Agony © 2009-2010, 23 Friday, September 24, 2010 23
  24. 24. Effect of Project Constraints on Quality © 2009-2010, 24 Friday, September 24, 2010 24
  25. 25. Effect of Project Constraints on Quality © 2009-2010, 24 Friday, September 24, 2010 24
  26. 26. Acceptance Test-Driven Development © 2009-2010, 25 Friday, September 24, 2010 25
  27. 27. A Fit Case Study Cost reduction using Fit for test automation and data conversion 26 Friday, September 24, 2010 26
  28. 28. Manual Regression Testing Testing was taking 75 person hours during 2 full test runs consisting of: Comprehensive manual regression testing Data conversion and validation Cost for testing was $17,000 each iteration © 2009-2010, 27 Friday, September 24, 2010 27
  29. 29. Introducing Fit into Testing Process After 8 iterations team had introduced healthy amount of Fit fixtures and automated tests Reduced 70+ hour test runtime down to 6 hours which now included: Fit automated regression testing Data conversion and validation automated with Fit fixtures Reduced cost of testing each iteration from $17,000 to $7,000 © 2009-2010, 28 Friday, September 24, 2010 28
  30. 30. Configuration Management Debt Unpredictable and error-prone release management 29 Friday, September 24, 2010 29
  31. 31. Traditional Source Control Management © 2009-2010, 30 Friday, September 24, 2010 30
  32. 32. Traditional Source Control Management Main Branch © 2009-2010, 30 Friday, September 24, 2010 30
  33. 33. Traditional Source Control Management Code Complete Version 1 Integrate for Branch Version 2 Main Branch © 2009-2010, 30 Friday, September 24, 2010 30
  34. 34. Traditional Source Control Management Code Complete Version 1 Integrate for Branch Version 2 Debt Main Branch Death March © 2009-2010, 30 Friday, September 24, 2010 30
  35. 35. Traditional Source Control Management Code Complete Version 1 Integrate for Branch Version 2 Debt Main Branch Death March { Debt accrues quickly within stabilization periods © 2009-2010, 30 Friday, September 24, 2010 30
  36. 36. Flexible Source Control Management © 2009-2010, 31 Friday, September 24, 2010 31
  37. 37. Flexible Source Control Management Main Branch © 2009-2010, 31 Friday, September 24, 2010 31
  38. 38. Flexible Source Control Management Version 1 Main Branch © 2009-2010, 31 Friday, September 24, 2010 31
  39. 39. Flexible Source Control Management Version 1 Version 2 Main Branch © 2009-2010, 31 Friday, September 24, 2010 31
  40. 40. Flexible Source Control Management Version 1 Version 2 Main Branch { Not Easy! Must have proper infrastructure to do this. © 2009-2010, 31 Friday, September 24, 2010 31
  41. 41. Continuous Integration © 2009-2010, 32 Friday, September 24, 2010 32
  42. 42. Scaling to Multiple Integrations © 2009-2010, 33 Friday, September 24, 2010 33
  43. 43. The Power of 2 Scripts: Deploy and Rollback Deploy Rollback © 2009-2010, 34 Friday, September 24, 2010 34
  44. 44. Design Debt Design decays when not attended to so design software continually 35 Friday, September 24, 2010 35
  45. 45. * Abuse User Stories Implement Security for User Information * From “User Stories Applied” presented by Mike Cohn Agile 2006 © 2009-2010, 36 Friday, September 24, 2010 36
  46. 46. * Abuse User Stories Implement Security As a Malicious Hacker I for User Information want to steal credit card information so that I can make fraudulent charges * From “User Stories Applied” presented by Mike Cohn Agile 2006 © 2009-2010, 36 Friday, September 24, 2010 36
  47. 47. Platform Experience Debt Silos of knowledge and increased specialization will increase cost of maintenance over time 37 Friday, September 24, 2010 37
  48. 48. How to Combat Platform Experience Debt Ignore it (I do not suggest this!) Surround existing functionality with automated functional tests ~OR~ Wrap platform interfaces with adapters Transfer knowledge of platform to more people Rewrite on more current platform Move thin slices of functionality to newer platform Start platform upgrade discussions and rearrange teams into known effective team © 2009-2010, 38 Friday, September 24, 2010 38
  49. 49. Team Configuration Patterns Virtual Architect Pattern Integration Team Pattern Component Shepherd Pattern Team Architect Pattern © 2009-2010, 39 Friday, September 24, 2010 39
  50. 50. Virtual Team Pattern Enterprise Planning © 2009-2010, 40 Friday, September 24, 2010 40
  51. 51. Virtual Team Pattern Pros Share architecture ideas and needs across teams Based on verbal communication Cons Usually singles out special Team Member role Could lead to top-down architecture decisions IT may gain extensive influence and begin to run Product Backlog prioritization for architecture needs © 2009-2010, 41 Friday, September 24, 2010 41
  52. 52. Integration Team Pattern All features are Integrate implemented Features and integrated every iteration Feature Development © 2009-2010, 42 Friday, September 24, 2010 42
  53. 53. Integration Team Pattern Pros Reduces complexity on Feature Teams Forces delivery from Integration Team instead of interface and deployment designs Cons Perpetuates specialized roles Don’t always work on highest value Product Backlog items © 2009-2010, 43 Friday, September 24, 2010 43
  54. 54. Component Shepherd Pattern © 2009-2010, 44 Friday, September 24, 2010 44
  55. 55. Component Shepherd Pattern Pros Share more knowledge within organization to minimize platform experience debt Work on highest value Product Backlog items Cons Not always optimal as using individual knowledge Difficult to learn multiple systems across Teams © 2009-2010, 45 Friday, September 24, 2010 45
  56. 56. Feature Team Pattern © 2009-2010, 46 Friday, September 24, 2010 46
  57. 57. Feature Team Pattern Pros Team owns architecture decisions Decisions are made close to implementation concerns Cons May not have appropriate experience on Team Team could get “stuck” on architecture decisions © 2009-2010, 47 Friday, September 24, 2010 47
  58. 58. What is possible? High quality can be attained and enables accelerated feature delivery. 48 Friday, September 24, 2010 48
  59. 59. A Story: Field Support Application 2000+ users access application each day Application supports multiple perspectives and workflows from Field Support Operations to Customer Service Team of 5 people delivering features on existing Cold Fusion platform implementation Migrating to Spring/Hibernate in slices while delivering valuable features 36 2-week Sprints, 33 production releases, and only 1 defect found in production So, what was the defect you say? Let me tell you… © 2009-2010, 49 Friday, September 24, 2010 49
  60. 60. Lets wrap this up... What should I take away from this? 50 Friday, September 24, 2010 50
  61. 61. Principles for Managing Software Debt Maintain one list of work Emphasize quality Evolve tools and infrastructure continually Improve system design always Share knowledge across the organization And most importantly, get the right people to work on your software! © 2009-2010, 51 Friday, September 24, 2010 51
  62. 62. Thank you Questions and Answers 52 Friday, September 24, 2010 52
  63. 63. Chris Sterling – Sterling Barton, LLC Technology Consultant, Agile Consultant and Certified Scrum Trainer Developer of AgileEVM ( www.AgileEVM.com ), a project portfolio decision support tool Consults on software technology, Agile technical practices, Scrum, and effective management techniques Innovation Games® Trained Facilitator Open Source Developer and Consultant Email: chris@sterlingbarton.com Software technology, architecture, release www.AgileEVM.com Web: http://www.sterlingbarton.com management, monitoring, and design consulting Blog: http://www.gettingagile.com for Agile Teams Follow me on Twitter: @csterwa © 2009-2010, 53 Friday, September 24, 2010 53
  1. A particular slide catching your eye?

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

×