SlideShare ist ein Scribd-Unternehmen logo
1 von 63
Downloaden Sie, um offline zu lesen
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
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
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
Lack of emphasis on software quality attributes
     contributes to decay




© 2009-2010,                                           4


Friday, September 24, 2010                                 4
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
Limited Platform Expertise




       Risk and costs increase as expertise becomes more
               limited for aging software platforms.




© 2009-2010,                                               6


Friday, September 24, 2010                                     6
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
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
Software Debt

    Creeps into software slowly and leaves organizations with liabilities




                                                                            9


Friday, September 24, 2010                                                      9
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                       13
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
Types of Software Debt

               Technical Debt

               Quality Debt

               Configuration Management Debt

               Design Debt

               Platform Experience Debt




© 2009-2010,                                  15


Friday, September 24, 2010                         15
Technical Debt

    Issues in software that will impede future development if left unresolved




                                                                                16


Friday, September 24, 2010                                                           16
* 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
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
Regression Costs - Manual vs. Automated




© 2009-2010,                                   19


Friday, September 24, 2010                          19
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
Quality Debt

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




                                                                          21


Friday, September 24, 2010                                                     21
Accrual of Quality Debt with Releases




© 2009-2010,                                 22


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




© 2009-2010,                             23


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




© 2009-2010,                                    24


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




© 2009-2010,                                    24


Friday, September 24, 2010                           24
Acceptance Test-Driven Development




© 2009-2010,                              25


Friday, September 24, 2010                     25
A Fit Case Study

    Cost reduction using Fit for test automation and data conversion




                                                                       26


Friday, September 24, 2010                                                  26
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
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
Configuration Management Debt

    Unpredictable and error-prone release management




                                                       29


Friday, September 24, 2010                                  29
Traditional Source Control Management




© 2009-2010,                                 30


Friday, September 24, 2010                        30
Traditional Source Control Management




                                        Main Branch




© 2009-2010,                                          30


Friday, September 24, 2010                                 30
Traditional Source Control Management

                              Code
                             Complete
               Version 1                Integrate for
                Branch                    Version 2

                                                        Main Branch




© 2009-2010,                                                          30


Friday, September 24, 2010                                                 30
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
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
Flexible Source Control Management




© 2009-2010,                              31


Friday, September 24, 2010                     31
Flexible Source Control Management




                                          Main Branch




© 2009-2010,                                            31


Friday, September 24, 2010                                   31
Flexible Source Control Management




               Version 1
                                          Main Branch




© 2009-2010,                                            31


Friday, September 24, 2010                                   31
Flexible Source Control Management




               Version 1      Version 2
                                          Main Branch




© 2009-2010,                                            31


Friday, September 24, 2010                                   31
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
Continuous Integration




© 2009-2010,                  32


Friday, September 24, 2010         32
Scaling to Multiple Integrations




© 2009-2010,                            33


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




                             Deploy   Rollback




© 2009-2010,                                       34


Friday, September 24, 2010                              34
Design Debt

    Design decays when not attended to so design software continually




                                                                        35


Friday, September 24, 2010                                                   35
* 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
* 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
Platform Experience Debt

    Silos of knowledge and increased specialization will increase cost of
    maintenance over time




                                                                            37


Friday, September 24, 2010                                                       37
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
Team Configuration Patterns

               Virtual Architect Pattern

               Integration Team Pattern

               Component Shepherd Pattern

               Team Architect Pattern




© 2009-2010,                                39


Friday, September 24, 2010                       39
Virtual Team Pattern


                             Enterprise
                              Planning




© 2009-2010,                              40


Friday, September 24, 2010                     40
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
Integration Team Pattern

                                         All features are
                             Integrate    implemented
                             Features    and integrated
                                         every iteration



      Feature
    Development




© 2009-2010,                                                42


Friday, September 24, 2010                                       42
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
Component Shepherd Pattern




© 2009-2010,                      44


Friday, September 24, 2010             44
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
Feature Team Pattern




© 2009-2010,                 46


Friday, September 24, 2010        46
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
What is possible?

    High quality can be attained and enables accelerated feature delivery.




                                                                             48


Friday, September 24, 2010                                                        48
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
Lets wrap this up...

    What should I take away from this?




                                         50


Friday, September 24, 2010                    50
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
Thank you

    Questions and Answers




                             52


Friday, September 24, 2010        52
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

Weitere ähnliche Inhalte

Was ist angesagt?

Dom introduction-website-v1.0
Dom introduction-website-v1.0Dom introduction-website-v1.0
Dom introduction-website-v1.0Cogility
 
Ria2010 workshop dev mobile
Ria2010 workshop dev mobileRia2010 workshop dev mobile
Ria2010 workshop dev mobileMichael Chaize
 
Transition E Learning Presentation
Transition E Learning PresentationTransition E Learning Presentation
Transition E Learning Presentationtransitionelearning
 
Ria2010 - keynote - Evolution des RIA d'Entreprise
Ria2010 - keynote - Evolution des RIA d'EntrepriseRia2010 - keynote - Evolution des RIA d'Entreprise
Ria2010 - keynote - Evolution des RIA d'EntrepriseMichael Chaize
 
Madsen byod-csa-02
Madsen byod-csa-02Madsen byod-csa-02
Madsen byod-csa-02Paul Madsen
 
The Dawn of Composite Clouds – Why OSGi is the Most Important Ingredient in t...
The Dawn of Composite Clouds – Why OSGi is the Most Important Ingredient in t...The Dawn of Composite Clouds – Why OSGi is the Most Important Ingredient in t...
The Dawn of Composite Clouds – Why OSGi is the Most Important Ingredient in t...mfrancis
 
JAX2010 Flex Java technical session: interactive dashboard
JAX2010 Flex Java technical session: interactive dashboardJAX2010 Flex Java technical session: interactive dashboard
JAX2010 Flex Java technical session: interactive dashboardMichael Chaize
 
Process in the Age of Digital Innovation
Process in the Age of Digital InnovationProcess in the Age of Digital Innovation
Process in the Age of Digital InnovationCharles Duncan jr.
 

Was ist angesagt? (11)

Dom introduction-website-v1.0
Dom introduction-website-v1.0Dom introduction-website-v1.0
Dom introduction-website-v1.0
 
Ria2010 workshop dev mobile
Ria2010 workshop dev mobileRia2010 workshop dev mobile
Ria2010 workshop dev mobile
 
Transition E Learning Presentation
Transition E Learning PresentationTransition E Learning Presentation
Transition E Learning Presentation
 
Ria2010 - keynote - Evolution des RIA d'Entreprise
Ria2010 - keynote - Evolution des RIA d'EntrepriseRia2010 - keynote - Evolution des RIA d'Entreprise
Ria2010 - keynote - Evolution des RIA d'Entreprise
 
Strategy for Finding Consultancy Opportunities and Preparing Good Quality Sub...
Strategy for Finding Consultancy Opportunities and Preparing Good Quality Sub...Strategy for Finding Consultancy Opportunities and Preparing Good Quality Sub...
Strategy for Finding Consultancy Opportunities and Preparing Good Quality Sub...
 
Flex mobile for JUG
Flex mobile for JUGFlex mobile for JUG
Flex mobile for JUG
 
Bern.jb
Bern.jbBern.jb
Bern.jb
 
Madsen byod-csa-02
Madsen byod-csa-02Madsen byod-csa-02
Madsen byod-csa-02
 
The Dawn of Composite Clouds – Why OSGi is the Most Important Ingredient in t...
The Dawn of Composite Clouds – Why OSGi is the Most Important Ingredient in t...The Dawn of Composite Clouds – Why OSGi is the Most Important Ingredient in t...
The Dawn of Composite Clouds – Why OSGi is the Most Important Ingredient in t...
 
JAX2010 Flex Java technical session: interactive dashboard
JAX2010 Flex Java technical session: interactive dashboardJAX2010 Flex Java technical session: interactive dashboard
JAX2010 Flex Java technical session: interactive dashboard
 
Process in the Age of Digital Innovation
Process in the Age of Digital InnovationProcess in the Age of Digital Innovation
Process in the Age of Digital Innovation
 

Ähnlich wie Managing Software Debt as Systems Age

Managing Software Debt - Federal Reserve Bank
Managing Software Debt - Federal Reserve BankManaging Software Debt - Federal Reserve Bank
Managing Software Debt - Federal Reserve BankChris Sterling
 
Managing Software Debt in Practice 2011
Managing Software Debt in Practice 2011Managing Software Debt in Practice 2011
Managing Software Debt in Practice 2011Chris Sterling
 
Boeing Webinar - Integrating Quality in Portfolio Management - oct 2010
Boeing Webinar - Integrating Quality in Portfolio Management -  oct 2010Boeing Webinar - Integrating Quality in Portfolio Management -  oct 2010
Boeing Webinar - Integrating Quality in Portfolio Management - oct 2010Brent Barton
 
Application Release Automation Demo - Deployit
Application Release Automation Demo - DeployitApplication Release Automation Demo - Deployit
Application Release Automation Demo - DeployitXebiaLabs
 
New Capabilities and Product Strategy for .NET on PCF
New Capabilities and Product Strategy for .NET on PCF New Capabilities and Product Strategy for .NET on PCF
New Capabilities and Product Strategy for .NET on PCF VMware Tanzu
 
Saa s webinar slides final rlh - 3-31
Saa s webinar slides   final rlh - 3-31Saa s webinar slides   final rlh - 3-31
Saa s webinar slides final rlh - 3-31neerajarasmussen
 
How dvcs can reduce your development costs and enhance productivity final
How dvcs can reduce your development costs and enhance productivity finalHow dvcs can reduce your development costs and enhance productivity final
How dvcs can reduce your development costs and enhance productivity finalpsluaces
 
국내 최초 클라우드 플랫폼 ‘세일즈포스닷컴’ 활용 가이드(1)
국내 최초 클라우드 플랫폼 ‘세일즈포스닷컴’ 활용 가이드(1)국내 최초 클라우드 플랫폼 ‘세일즈포스닷컴’ 활용 가이드(1)
국내 최초 클라우드 플랫폼 ‘세일즈포스닷컴’ 활용 가이드(1)mosaicnet
 
Lunch and Learn, Pitfalls and Best Practic, Preses Around Outsourcing Softwar...
Lunch and Learn, Pitfalls and Best Practic, Preses Around Outsourcing Softwar...Lunch and Learn, Pitfalls and Best Practic, Preses Around Outsourcing Softwar...
Lunch and Learn, Pitfalls and Best Practic, Preses Around Outsourcing Softwar...aztechcouncil
 
Cloud Computing in 3-D
Cloud Computing in 3-DCloud Computing in 3-D
Cloud Computing in 3-DEverest Group
 
Test Your Cloud Maturity Level: A Practical Guide to Self Assessment
Test Your Cloud Maturity Level: A Practical Guide to Self AssessmentTest Your Cloud Maturity Level: A Practical Guide to Self Assessment
Test Your Cloud Maturity Level: A Practical Guide to Self AssessmentDavid Resnic
 
Cross-Platform Observability for Cloud Foundry
Cross-Platform Observability for Cloud FoundryCross-Platform Observability for Cloud Foundry
Cross-Platform Observability for Cloud FoundryVMware Tanzu
 
Cordys Cloud Harbor Webinar 15 Dec09
Cordys Cloud Harbor Webinar 15 Dec09Cordys Cloud Harbor Webinar 15 Dec09
Cordys Cloud Harbor Webinar 15 Dec09gaborfulop
 
New Continuous Release and Deployment Capabilities for CICS Customers v4
New Continuous Release and Deployment Capabilities for CICS Customers v4New Continuous Release and Deployment Capabilities for CICS Customers v4
New Continuous Release and Deployment Capabilities for CICS Customers v4Susan Yoskin
 
Cloud 12 08 V2
Cloud 12 08 V2Cloud 12 08 V2
Cloud 12 08 V2Pini Cohen
 
BMC Engage 2015: Optimizing Service Desk Interactions with Knowledge Management
BMC Engage 2015: Optimizing Service Desk Interactions with Knowledge ManagementBMC Engage 2015: Optimizing Service Desk Interactions with Knowledge Management
BMC Engage 2015: Optimizing Service Desk Interactions with Knowledge ManagementJon Stevens-Hall
 
Zibrasoft | Offshore Software Development
Zibrasoft | Offshore Software DevelopmentZibrasoft | Offshore Software Development
Zibrasoft | Offshore Software DevelopmentZibraSofttechnologies
 
Overcoming Barriers to Adoption of Virtual Worlds in Government
Overcoming Barriers to Adoption of Virtual Worlds in GovernmentOvercoming Barriers to Adoption of Virtual Worlds in Government
Overcoming Barriers to Adoption of Virtual Worlds in Governmentjcichelli
 

Ähnlich wie Managing Software Debt as Systems Age (20)

Managing Software Debt - Federal Reserve Bank
Managing Software Debt - Federal Reserve BankManaging Software Debt - Federal Reserve Bank
Managing Software Debt - Federal Reserve Bank
 
Managing Software Debt in Practice 2011
Managing Software Debt in Practice 2011Managing Software Debt in Practice 2011
Managing Software Debt in Practice 2011
 
Boeing Webinar - Integrating Quality in Portfolio Management - oct 2010
Boeing Webinar - Integrating Quality in Portfolio Management -  oct 2010Boeing Webinar - Integrating Quality in Portfolio Management -  oct 2010
Boeing Webinar - Integrating Quality in Portfolio Management - oct 2010
 
Application Release Automation Demo - Deployit
Application Release Automation Demo - DeployitApplication Release Automation Demo - Deployit
Application Release Automation Demo - Deployit
 
New Capabilities and Product Strategy for .NET on PCF
New Capabilities and Product Strategy for .NET on PCF New Capabilities and Product Strategy for .NET on PCF
New Capabilities and Product Strategy for .NET on PCF
 
Saa s webinar slides final rlh - 3-31
Saa s webinar slides   final rlh - 3-31Saa s webinar slides   final rlh - 3-31
Saa s webinar slides final rlh - 3-31
 
How dvcs can reduce your development costs and enhance productivity final
How dvcs can reduce your development costs and enhance productivity finalHow dvcs can reduce your development costs and enhance productivity final
How dvcs can reduce your development costs and enhance productivity final
 
Start > Automate > Create | Book Publishing in the Cloud
Start > Automate > Create | Book Publishing in the CloudStart > Automate > Create | Book Publishing in the Cloud
Start > Automate > Create | Book Publishing in the Cloud
 
국내 최초 클라우드 플랫폼 ‘세일즈포스닷컴’ 활용 가이드(1)
국내 최초 클라우드 플랫폼 ‘세일즈포스닷컴’ 활용 가이드(1)국내 최초 클라우드 플랫폼 ‘세일즈포스닷컴’ 활용 가이드(1)
국내 최초 클라우드 플랫폼 ‘세일즈포스닷컴’ 활용 가이드(1)
 
Lunch and Learn, Pitfalls and Best Practic, Preses Around Outsourcing Softwar...
Lunch and Learn, Pitfalls and Best Practic, Preses Around Outsourcing Softwar...Lunch and Learn, Pitfalls and Best Practic, Preses Around Outsourcing Softwar...
Lunch and Learn, Pitfalls and Best Practic, Preses Around Outsourcing Softwar...
 
Cloud Computing in 3-D
Cloud Computing in 3-DCloud Computing in 3-D
Cloud Computing in 3-D
 
Test Your Cloud Maturity Level: A Practical Guide to Self Assessment
Test Your Cloud Maturity Level: A Practical Guide to Self AssessmentTest Your Cloud Maturity Level: A Practical Guide to Self Assessment
Test Your Cloud Maturity Level: A Practical Guide to Self Assessment
 
Cross-Platform Observability for Cloud Foundry
Cross-Platform Observability for Cloud FoundryCross-Platform Observability for Cloud Foundry
Cross-Platform Observability for Cloud Foundry
 
Cordys Cloud Harbor Webinar 15 Dec09
Cordys Cloud Harbor Webinar 15 Dec09Cordys Cloud Harbor Webinar 15 Dec09
Cordys Cloud Harbor Webinar 15 Dec09
 
New Continuous Release and Deployment Capabilities for CICS Customers v4
New Continuous Release and Deployment Capabilities for CICS Customers v4New Continuous Release and Deployment Capabilities for CICS Customers v4
New Continuous Release and Deployment Capabilities for CICS Customers v4
 
Social Media in PLM
Social Media in PLMSocial Media in PLM
Social Media in PLM
 
Cloud 12 08 V2
Cloud 12 08 V2Cloud 12 08 V2
Cloud 12 08 V2
 
BMC Engage 2015: Optimizing Service Desk Interactions with Knowledge Management
BMC Engage 2015: Optimizing Service Desk Interactions with Knowledge ManagementBMC Engage 2015: Optimizing Service Desk Interactions with Knowledge Management
BMC Engage 2015: Optimizing Service Desk Interactions with Knowledge Management
 
Zibrasoft | Offshore Software Development
Zibrasoft | Offshore Software DevelopmentZibrasoft | Offshore Software Development
Zibrasoft | Offshore Software Development
 
Overcoming Barriers to Adoption of Virtual Worlds in Government
Overcoming Barriers to Adoption of Virtual Worlds in GovernmentOvercoming Barriers to Adoption of Virtual Worlds in Government
Overcoming Barriers to Adoption of Virtual Worlds in Government
 

Mehr von Chris Sterling

Cloud Native Java with Spring Cloud Services
Cloud Native Java with Spring Cloud ServicesCloud Native Java with Spring Cloud Services
Cloud Native Java with Spring Cloud ServicesChris Sterling
 
The DevOps Revolution And Beyond...
The DevOps Revolution And Beyond...The DevOps Revolution And Beyond...
The DevOps Revolution And Beyond...Chris Sterling
 
From Zero to Continuous Validated Learning: Lean Startup on PaaS
From Zero to Continuous Validated Learning: Lean Startup on PaaSFrom Zero to Continuous Validated Learning: Lean Startup on PaaS
From Zero to Continuous Validated Learning: Lean Startup on PaaSChris Sterling
 
Microservices: Aren't Microservices Just SOA?
Microservices: Aren't Microservices Just SOA?Microservices: Aren't Microservices Just SOA?
Microservices: Aren't Microservices Just SOA?Chris Sterling
 
Reduce Time to Value: Focus First on Configuration Management Debt
Reduce Time to Value: Focus First on Configuration Management DebtReduce Time to Value: Focus First on Configuration Management Debt
Reduce Time to Value: Focus First on Configuration Management DebtChris Sterling
 
Managing Software Debt - Quality Debt Focus - QASIG Kirkland
Managing Software Debt - Quality Debt Focus - QASIG KirklandManaging Software Debt - Quality Debt Focus - QASIG Kirkland
Managing Software Debt - Quality Debt Focus - QASIG KirklandChris Sterling
 
Managing Software Debt - Quality Debt Focus for QASIG Seattle
Managing Software Debt - Quality Debt Focus for QASIG SeattleManaging Software Debt - Quality Debt Focus for QASIG Seattle
Managing Software Debt - Quality Debt Focus for QASIG SeattleChris Sterling
 
Managing Software Debt Workshop at Intel
Managing Software Debt Workshop at IntelManaging Software Debt Workshop at Intel
Managing Software Debt Workshop at IntelChris Sterling
 
Recognizing Software Debt - Beyond Agile Puget Sound
Recognizing Software Debt - Beyond Agile Puget SoundRecognizing Software Debt - Beyond Agile Puget Sound
Recognizing Software Debt - Beyond Agile Puget SoundChris Sterling
 
Dollars and Dates are Killing Agile
Dollars and Dates are Killing AgileDollars and Dates are Killing Agile
Dollars and Dates are Killing AgileChris Sterling
 
Integrating Quality into Project Portfolio Management
Integrating Quality into Project Portfolio ManagementIntegrating Quality into Project Portfolio Management
Integrating Quality into Project Portfolio ManagementChris Sterling
 
The Software Debt Bubble: Is It About to Burst
The Software Debt Bubble: Is It About to BurstThe Software Debt Bubble: Is It About to Burst
The Software Debt Bubble: Is It About to BurstChris Sterling
 
Towards a Push-Button Release
Towards a Push-Button ReleaseTowards a Push-Button Release
Towards a Push-Button ReleaseChris Sterling
 
Testing in an Agile Context 2011
Testing in an Agile Context 2011Testing in an Agile Context 2011
Testing in an Agile Context 2011Chris Sterling
 
UW Agile CP202 Adv Topics Class 4 Scaling Multi-Level Planning Portfolio Mana...
UW Agile CP202 Adv Topics Class 4 Scaling Multi-Level Planning Portfolio Mana...UW Agile CP202 Adv Topics Class 4 Scaling Multi-Level Planning Portfolio Mana...
UW Agile CP202 Adv Topics Class 4 Scaling Multi-Level Planning Portfolio Mana...Chris Sterling
 
UW Agile CP202 - Class 1 User Stories
UW Agile CP202 - Class 1 User StoriesUW Agile CP202 - Class 1 User Stories
UW Agile CP202 - Class 1 User StoriesChris Sterling
 
Intro To Tdd Agile Palooza
Intro To Tdd Agile PaloozaIntro To Tdd Agile Palooza
Intro To Tdd Agile PaloozaChris Sterling
 
Class5 Scaling And Strategic Planning
Class5 Scaling And Strategic PlanningClass5 Scaling And Strategic Planning
Class5 Scaling And Strategic PlanningChris Sterling
 
Executable Specifications Agile Palooza
Executable Specifications Agile PaloozaExecutable Specifications Agile Palooza
Executable Specifications Agile PaloozaChris Sterling
 
Building Integrity In Seminar
Building Integrity In   SeminarBuilding Integrity In   Seminar
Building Integrity In SeminarChris Sterling
 

Mehr von Chris Sterling (20)

Cloud Native Java with Spring Cloud Services
Cloud Native Java with Spring Cloud ServicesCloud Native Java with Spring Cloud Services
Cloud Native Java with Spring Cloud Services
 
The DevOps Revolution And Beyond...
The DevOps Revolution And Beyond...The DevOps Revolution And Beyond...
The DevOps Revolution And Beyond...
 
From Zero to Continuous Validated Learning: Lean Startup on PaaS
From Zero to Continuous Validated Learning: Lean Startup on PaaSFrom Zero to Continuous Validated Learning: Lean Startup on PaaS
From Zero to Continuous Validated Learning: Lean Startup on PaaS
 
Microservices: Aren't Microservices Just SOA?
Microservices: Aren't Microservices Just SOA?Microservices: Aren't Microservices Just SOA?
Microservices: Aren't Microservices Just SOA?
 
Reduce Time to Value: Focus First on Configuration Management Debt
Reduce Time to Value: Focus First on Configuration Management DebtReduce Time to Value: Focus First on Configuration Management Debt
Reduce Time to Value: Focus First on Configuration Management Debt
 
Managing Software Debt - Quality Debt Focus - QASIG Kirkland
Managing Software Debt - Quality Debt Focus - QASIG KirklandManaging Software Debt - Quality Debt Focus - QASIG Kirkland
Managing Software Debt - Quality Debt Focus - QASIG Kirkland
 
Managing Software Debt - Quality Debt Focus for QASIG Seattle
Managing Software Debt - Quality Debt Focus for QASIG SeattleManaging Software Debt - Quality Debt Focus for QASIG Seattle
Managing Software Debt - Quality Debt Focus for QASIG Seattle
 
Managing Software Debt Workshop at Intel
Managing Software Debt Workshop at IntelManaging Software Debt Workshop at Intel
Managing Software Debt Workshop at Intel
 
Recognizing Software Debt - Beyond Agile Puget Sound
Recognizing Software Debt - Beyond Agile Puget SoundRecognizing Software Debt - Beyond Agile Puget Sound
Recognizing Software Debt - Beyond Agile Puget Sound
 
Dollars and Dates are Killing Agile
Dollars and Dates are Killing AgileDollars and Dates are Killing Agile
Dollars and Dates are Killing Agile
 
Integrating Quality into Project Portfolio Management
Integrating Quality into Project Portfolio ManagementIntegrating Quality into Project Portfolio Management
Integrating Quality into Project Portfolio Management
 
The Software Debt Bubble: Is It About to Burst
The Software Debt Bubble: Is It About to BurstThe Software Debt Bubble: Is It About to Burst
The Software Debt Bubble: Is It About to Burst
 
Towards a Push-Button Release
Towards a Push-Button ReleaseTowards a Push-Button Release
Towards a Push-Button Release
 
Testing in an Agile Context 2011
Testing in an Agile Context 2011Testing in an Agile Context 2011
Testing in an Agile Context 2011
 
UW Agile CP202 Adv Topics Class 4 Scaling Multi-Level Planning Portfolio Mana...
UW Agile CP202 Adv Topics Class 4 Scaling Multi-Level Planning Portfolio Mana...UW Agile CP202 Adv Topics Class 4 Scaling Multi-Level Planning Portfolio Mana...
UW Agile CP202 Adv Topics Class 4 Scaling Multi-Level Planning Portfolio Mana...
 
UW Agile CP202 - Class 1 User Stories
UW Agile CP202 - Class 1 User StoriesUW Agile CP202 - Class 1 User Stories
UW Agile CP202 - Class 1 User Stories
 
Intro To Tdd Agile Palooza
Intro To Tdd Agile PaloozaIntro To Tdd Agile Palooza
Intro To Tdd Agile Palooza
 
Class5 Scaling And Strategic Planning
Class5 Scaling And Strategic PlanningClass5 Scaling And Strategic Planning
Class5 Scaling And Strategic Planning
 
Executable Specifications Agile Palooza
Executable Specifications Agile PaloozaExecutable Specifications Agile Palooza
Executable Specifications Agile Palooza
 
Building Integrity In Seminar
Building Integrity In   SeminarBuilding Integrity In   Seminar
Building Integrity In Seminar
 

Managing Software Debt as Systems Age

  • 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. 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. 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. Lack of emphasis on software quality attributes contributes to decay © 2009-2010, 4 Friday, September 24, 2010 4
  • 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. 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. 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. 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. Software Debt Creeps into software slowly and leaves organizations with liabilities 9 Friday, September 24, 2010 9
  • 10. Software Debt Creeps In © 2009-2010, 10 Friday, September 24, 2010 10
  • 11. Software Debt Creeps In © 2009-2010, 11 Friday, September 24, 2010 11
  • 12. Software Debt Creeps In © 2009-2010, 12 Friday, September 24, 2010 12
  • 13. Managing Software Debt – an Overview © 2009-2010, 13 Friday, September 24, 2010 13
  • 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. 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. Technical Debt Issues in software that will impede future development if left unresolved 16 Friday, September 24, 2010 16
  • 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. 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. Regression Costs - Manual vs. Automated © 2009-2010, 19 Friday, September 24, 2010 19
  • 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. Quality Debt A lack of quality will lessen the value per feature added over time 21 Friday, September 24, 2010 21
  • 22. Accrual of Quality Debt with Releases © 2009-2010, 22 Friday, September 24, 2010 22
  • 23. Break/Fix Only Prolongs the Agony © 2009-2010, 23 Friday, September 24, 2010 23
  • 24. Effect of Project Constraints on Quality © 2009-2010, 24 Friday, September 24, 2010 24
  • 25. Effect of Project Constraints on Quality © 2009-2010, 24 Friday, September 24, 2010 24
  • 26. Acceptance Test-Driven Development © 2009-2010, 25 Friday, September 24, 2010 25
  • 27. A Fit Case Study Cost reduction using Fit for test automation and data conversion 26 Friday, September 24, 2010 26
  • 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. 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. Configuration Management Debt Unpredictable and error-prone release management 29 Friday, September 24, 2010 29
  • 31. Traditional Source Control Management © 2009-2010, 30 Friday, September 24, 2010 30
  • 32. Traditional Source Control Management Main Branch © 2009-2010, 30 Friday, September 24, 2010 30
  • 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. 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. 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. Flexible Source Control Management © 2009-2010, 31 Friday, September 24, 2010 31
  • 37. Flexible Source Control Management Main Branch © 2009-2010, 31 Friday, September 24, 2010 31
  • 38. Flexible Source Control Management Version 1 Main Branch © 2009-2010, 31 Friday, September 24, 2010 31
  • 39. Flexible Source Control Management Version 1 Version 2 Main Branch © 2009-2010, 31 Friday, September 24, 2010 31
  • 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. Continuous Integration © 2009-2010, 32 Friday, September 24, 2010 32
  • 42. Scaling to Multiple Integrations © 2009-2010, 33 Friday, September 24, 2010 33
  • 43. The Power of 2 Scripts: Deploy and Rollback Deploy Rollback © 2009-2010, 34 Friday, September 24, 2010 34
  • 44. Design Debt Design decays when not attended to so design software continually 35 Friday, September 24, 2010 35
  • 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. * 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. Platform Experience Debt Silos of knowledge and increased specialization will increase cost of maintenance over time 37 Friday, September 24, 2010 37
  • 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. Team Configuration Patterns Virtual Architect Pattern Integration Team Pattern Component Shepherd Pattern Team Architect Pattern © 2009-2010, 39 Friday, September 24, 2010 39
  • 50. Virtual Team Pattern Enterprise Planning © 2009-2010, 40 Friday, September 24, 2010 40
  • 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. Integration Team Pattern All features are Integrate implemented Features and integrated every iteration Feature Development © 2009-2010, 42 Friday, September 24, 2010 42
  • 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. Component Shepherd Pattern © 2009-2010, 44 Friday, September 24, 2010 44
  • 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. Feature Team Pattern © 2009-2010, 46 Friday, September 24, 2010 46
  • 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. What is possible? High quality can be attained and enables accelerated feature delivery. 48 Friday, September 24, 2010 48
  • 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. Lets wrap this up... What should I take away from this? 50 Friday, September 24, 2010 50
  • 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. Thank you Questions and Answers 52 Friday, September 24, 2010 52
  • 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