Social Bazaar and Commercial Bazaar: Comparative Study of ...
Managing Software Debt Agile Bazaar
-
Upload
chris-sterling -
Category
Technology
-
view
2.087 -
download
1
description
Transcript of Managing Software Debt Agile Bazaar
![Page 1: Managing Software Debt Agile Bazaar](https://reader030.fdocuments.in/reader030/viewer/2022020217/54552a63b1af9f40378b473f/html5/thumbnails/1.jpg)
Managing Software Debt
Continued Delivery of High Value as Systems Age
Chris SterlingTechnology Consultant / Agile Coach /
Certified Scrum TrainerSterling Barton, LLC
Web: www.SterlingBarton.comEmail: [email protected]
Blog: www.GettingAgile.com Follow Me on Twitter: @csterwa
Hash Tag for Presentation: #swdebt
1Thursday, March 4, 2010
![Page 2: Managing Software Debt Agile Bazaar](https://reader030.fdocuments.in/reader030/viewer/2022020217/54552a63b1af9f40378b473f/html5/thumbnails/2.jpg)
© 2009-2010,
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
2
2Thursday, March 4, 2010
![Page 3: Managing Software Debt Agile Bazaar](https://reader030.fdocuments.in/reader030/viewer/2022020217/54552a63b1af9f40378b473f/html5/thumbnails/3.jpg)
© 2009-2010,
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
3
3Thursday, March 4, 2010
![Page 4: Managing Software Debt Agile Bazaar](https://reader030.fdocuments.in/reader030/viewer/2022020217/54552a63b1af9f40378b473f/html5/thumbnails/4.jpg)
© 2009-2010,
Lack of emphasis on software quality attributes contributes to decay
4
4Thursday, March 4, 2010
![Page 5: Managing Software Debt Agile Bazaar](https://reader030.fdocuments.in/reader030/viewer/2022020217/54552a63b1af9f40378b473f/html5/thumbnails/5.jpg)
© 2009-2010,
Like-to-Like Migrations
“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.
5
5Thursday, March 4, 2010
![Page 6: Managing Software Debt Agile Bazaar](https://reader030.fdocuments.in/reader030/viewer/2022020217/54552a63b1af9f40378b473f/html5/thumbnails/6.jpg)
© 2009-2010,
Limited Platform Expertise
Risk and costs increase as expertise becomes more limited for aging software platforms.
6
6Thursday, March 4, 2010
![Page 7: Managing Software Debt Agile Bazaar](https://reader030.fdocuments.in/reader030/viewer/2022020217/54552a63b1af9f40378b473f/html5/thumbnails/7.jpg)
© 2009-2010,
Costs for Release Stabilization Increase Over Time
0
125000
250000
375000
500000
Release 1
Release 2Release 3
Release 4Release 5
Release 6
Cost of Fixing Defects Cost for Feature Dev
7Thursday, March 4, 2010
![Page 8: Managing Software Debt Agile Bazaar](https://reader030.fdocuments.in/reader030/viewer/2022020217/54552a63b1af9f40378b473f/html5/thumbnails/8.jpg)
© 2009-2010,
Regression Costs - Manual vs. Automated
8
8Thursday, March 4, 2010
![Page 9: Managing Software Debt Agile Bazaar](https://reader030.fdocuments.in/reader030/viewer/2022020217/54552a63b1af9f40378b473f/html5/thumbnails/9.jpg)
© 2009-2010,
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
9
9Thursday, March 4, 2010
![Page 10: Managing Software Debt Agile Bazaar](https://reader030.fdocuments.in/reader030/viewer/2022020217/54552a63b1af9f40378b473f/html5/thumbnails/10.jpg)
Software Debt
10
Creeps into software slowly and leaves organizations with liabilities
10Thursday, March 4, 2010
![Page 11: Managing Software Debt Agile Bazaar](https://reader030.fdocuments.in/reader030/viewer/2022020217/54552a63b1af9f40378b473f/html5/thumbnails/11.jpg)
© 2009-2010,
Software Debt Creeps In
Shows a relatively new system with little software debt accrued.
11
11Thursday, March 4, 2010
![Page 12: Managing Software Debt Agile Bazaar](https://reader030.fdocuments.in/reader030/viewer/2022020217/54552a63b1af9f40378b473f/html5/thumbnails/12.jpg)
© 2009-2010,
Software Debt Creeps In
An aging software system slowly incurs significant debt in multiple functional areas.
12
12Thursday, March 4, 2010
![Page 13: Managing Software Debt Agile Bazaar](https://reader030.fdocuments.in/reader030/viewer/2022020217/54552a63b1af9f40378b473f/html5/thumbnails/13.jpg)
© 2009-2010,
Software Debt Creeps In
An older system has accrued significant debt in all functional areas and components.
13
13Thursday, March 4, 2010
![Page 14: Managing Software Debt Agile Bazaar](https://reader030.fdocuments.in/reader030/viewer/2022020217/54552a63b1af9f40378b473f/html5/thumbnails/14.jpg)
© 2009-2010,
Managing Software Debt – an Overview
14
14Thursday, March 4, 2010
![Page 15: Managing Software Debt Agile Bazaar](https://reader030.fdocuments.in/reader030/viewer/2022020217/54552a63b1af9f40378b473f/html5/thumbnails/15.jpg)
© 2009-2010,
Managing Software Debt
15
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
15Thursday, March 4, 2010
![Page 16: Managing Software Debt Agile Bazaar](https://reader030.fdocuments.in/reader030/viewer/2022020217/54552a63b1af9f40378b473f/html5/thumbnails/16.jpg)
© 2009-2010,
Types of Software Debt
Technical Debt
Quality Debt
Configuration Management Debt
Design Debt
Platform Experience Debt
16
16Thursday, March 4, 2010
![Page 17: Managing Software Debt Agile Bazaar](https://reader030.fdocuments.in/reader030/viewer/2022020217/54552a63b1af9f40378b473f/html5/thumbnails/17.jpg)
Technical Debt
17
Issues in software implementation that will impede future development if left unresolved
17Thursday, March 4, 2010
![Page 18: Managing Software Debt Agile Bazaar](https://reader030.fdocuments.in/reader030/viewer/2022020217/54552a63b1af9f40378b473f/html5/thumbnails/18.jpg)
© 2009-2010,
* 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
18
18Thursday, March 4, 2010
![Page 19: Managing Software Debt Agile Bazaar](https://reader030.fdocuments.in/reader030/viewer/2022020217/54552a63b1af9f40378b473f/html5/thumbnails/19.jpg)
© 2009-2010,
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.”
19
19Thursday, March 4, 2010
![Page 20: Managing Software Debt Agile Bazaar](https://reader030.fdocuments.in/reader030/viewer/2022020217/54552a63b1af9f40378b473f/html5/thumbnails/20.jpg)
Quality Debt
A lack of quality, either technical or functional, will lessen value per feature added over time
20
20Thursday, March 4, 2010
![Page 21: Managing Software Debt Agile Bazaar](https://reader030.fdocuments.in/reader030/viewer/2022020217/54552a63b1af9f40378b473f/html5/thumbnails/21.jpg)
© 2009-2010,
Accrual of Quality Debt with Releases
21
21Thursday, March 4, 2010
![Page 22: Managing Software Debt Agile Bazaar](https://reader030.fdocuments.in/reader030/viewer/2022020217/54552a63b1af9f40378b473f/html5/thumbnails/22.jpg)
© 2009-2010,
Break/Fix Only Prolongs the Agony
22
22Thursday, March 4, 2010
![Page 23: Managing Software Debt Agile Bazaar](https://reader030.fdocuments.in/reader030/viewer/2022020217/54552a63b1af9f40378b473f/html5/thumbnails/23.jpg)
© 2009-2010,
Effect of Project Constraints on Quality
23
23Thursday, March 4, 2010
![Page 24: Managing Software Debt Agile Bazaar](https://reader030.fdocuments.in/reader030/viewer/2022020217/54552a63b1af9f40378b473f/html5/thumbnails/24.jpg)
© 2009-2010,
Effect of Project Constraints on Quality
23
23Thursday, March 4, 2010
![Page 25: Managing Software Debt Agile Bazaar](https://reader030.fdocuments.in/reader030/viewer/2022020217/54552a63b1af9f40378b473f/html5/thumbnails/25.jpg)
© 2009-2010,
Acceptance Test-Driven Development
24
24Thursday, March 4, 2010
![Page 26: Managing Software Debt Agile Bazaar](https://reader030.fdocuments.in/reader030/viewer/2022020217/54552a63b1af9f40378b473f/html5/thumbnails/26.jpg)
A Fit Case Study
Cost reduction using Fit for test automation and data conversion
25
25Thursday, March 4, 2010
![Page 27: Managing Software Debt Agile Bazaar](https://reader030.fdocuments.in/reader030/viewer/2022020217/54552a63b1af9f40378b473f/html5/thumbnails/27.jpg)
© 2009-2010,
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
26
26Thursday, March 4, 2010
![Page 28: Managing Software Debt Agile Bazaar](https://reader030.fdocuments.in/reader030/viewer/2022020217/54552a63b1af9f40378b473f/html5/thumbnails/28.jpg)
© 2009-2010,
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
27
27Thursday, March 4, 2010
![Page 29: Managing Software Debt Agile Bazaar](https://reader030.fdocuments.in/reader030/viewer/2022020217/54552a63b1af9f40378b473f/html5/thumbnails/29.jpg)
Configuration Management Debt
Creating unpredictable and error-prone release management
28
28Thursday, March 4, 2010
![Page 30: Managing Software Debt Agile Bazaar](https://reader030.fdocuments.in/reader030/viewer/2022020217/54552a63b1af9f40378b473f/html5/thumbnails/30.jpg)
© 2009-2010,
Traditional Source Control Management
29
29Thursday, March 4, 2010
![Page 31: Managing Software Debt Agile Bazaar](https://reader030.fdocuments.in/reader030/viewer/2022020217/54552a63b1af9f40378b473f/html5/thumbnails/31.jpg)
© 2009-2010,
Traditional Source Control Management
29
Main Branch
29Thursday, March 4, 2010
![Page 32: Managing Software Debt Agile Bazaar](https://reader030.fdocuments.in/reader030/viewer/2022020217/54552a63b1af9f40378b473f/html5/thumbnails/32.jpg)
© 2009-2010,
Traditional Source Control Management
29
Main Branch
Version 1Branch
Integrate forVersion 2
CodeComplete
29Thursday, March 4, 2010
![Page 33: Managing Software Debt Agile Bazaar](https://reader030.fdocuments.in/reader030/viewer/2022020217/54552a63b1af9f40378b473f/html5/thumbnails/33.jpg)
© 2009-2010,
Traditional Source Control Management
29
Main BranchDebt
Death March
Version 1Branch
Integrate forVersion 2
CodeComplete
29Thursday, March 4, 2010
![Page 34: Managing Software Debt Agile Bazaar](https://reader030.fdocuments.in/reader030/viewer/2022020217/54552a63b1af9f40378b473f/html5/thumbnails/34.jpg)
© 2009-2010,
Traditional Source Control Management
29
Main BranchDebt
Death March {Debt accrues quickly within stabilization periods
Version 1Branch
Integrate forVersion 2
CodeComplete
29Thursday, March 4, 2010
![Page 35: Managing Software Debt Agile Bazaar](https://reader030.fdocuments.in/reader030/viewer/2022020217/54552a63b1af9f40378b473f/html5/thumbnails/35.jpg)
© 2009-2010,
Flexible Source Control Management
30
30Thursday, March 4, 2010
![Page 36: Managing Software Debt Agile Bazaar](https://reader030.fdocuments.in/reader030/viewer/2022020217/54552a63b1af9f40378b473f/html5/thumbnails/36.jpg)
© 2009-2010,
Flexible Source Control Management
30
Main Branch
30Thursday, March 4, 2010
![Page 37: Managing Software Debt Agile Bazaar](https://reader030.fdocuments.in/reader030/viewer/2022020217/54552a63b1af9f40378b473f/html5/thumbnails/37.jpg)
© 2009-2010,
Flexible Source Control Management
30
Main Branch
Version 1
30Thursday, March 4, 2010
![Page 38: Managing Software Debt Agile Bazaar](https://reader030.fdocuments.in/reader030/viewer/2022020217/54552a63b1af9f40378b473f/html5/thumbnails/38.jpg)
© 2009-2010,
Flexible Source Control Management
30
Main Branch
Version 1 Version 2
30Thursday, March 4, 2010
![Page 39: Managing Software Debt Agile Bazaar](https://reader030.fdocuments.in/reader030/viewer/2022020217/54552a63b1af9f40378b473f/html5/thumbnails/39.jpg)
© 2009-2010,
Flexible Source Control Management
30
Main Branch
Version 1 Version 2{Not Easy! Must have proper infrastructure to do this.
30Thursday, March 4, 2010
![Page 40: Managing Software Debt Agile Bazaar](https://reader030.fdocuments.in/reader030/viewer/2022020217/54552a63b1af9f40378b473f/html5/thumbnails/40.jpg)
© 2009-2010,
Continuous Integration
31
31Thursday, March 4, 2010
![Page 41: Managing Software Debt Agile Bazaar](https://reader030.fdocuments.in/reader030/viewer/2022020217/54552a63b1af9f40378b473f/html5/thumbnails/41.jpg)
© 2009-2010,
Scaling to Multiple Integrations
32
32Thursday, March 4, 2010
![Page 42: Managing Software Debt Agile Bazaar](https://reader030.fdocuments.in/reader030/viewer/2022020217/54552a63b1af9f40378b473f/html5/thumbnails/42.jpg)
Design Debt
Design decays when not attended to so design your software continually
33
33Thursday, March 4, 2010
![Page 43: Managing Software Debt Agile Bazaar](https://reader030.fdocuments.in/reader030/viewer/2022020217/54552a63b1af9f40378b473f/html5/thumbnails/43.jpg)
© 2009-2010,
* Abuse User Stories
34
Implement Securityfor User Information
* From “User Stories Applied” presented by Mike Cohn Agile 2006
34Thursday, March 4, 2010
![Page 44: Managing Software Debt Agile Bazaar](https://reader030.fdocuments.in/reader030/viewer/2022020217/54552a63b1af9f40378b473f/html5/thumbnails/44.jpg)
© 2009-2010,
* Abuse User Stories
34
Implement Securityfor User Information
As a Malicious Hacker I want to steal credit card information so that I can make fraudulent charges
* From “User Stories Applied” presented by Mike Cohn Agile 2006
34Thursday, March 4, 2010
![Page 45: Managing Software Debt Agile Bazaar](https://reader030.fdocuments.in/reader030/viewer/2022020217/54552a63b1af9f40378b473f/html5/thumbnails/45.jpg)
Platform Experience Debt
Silos of knowledge and increased specialization will increase cost of maintenance over time
35
35Thursday, March 4, 2010
![Page 46: Managing Software Debt Agile Bazaar](https://reader030.fdocuments.in/reader030/viewer/2022020217/54552a63b1af9f40378b473f/html5/thumbnails/46.jpg)
© 2009-2010,
How to Combat Platform Experience Debt
Ignore it (I do not suggest this!) Surround existing functionality with automated functional tests
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
36
~OR~
36Thursday, March 4, 2010
![Page 47: Managing Software Debt Agile Bazaar](https://reader030.fdocuments.in/reader030/viewer/2022020217/54552a63b1af9f40378b473f/html5/thumbnails/47.jpg)
© 2009-2010,
Team Configuration Patterns
Virtual Architect Pattern
Integration Team Pattern
Component Shepherd Pattern
Team Architect Pattern
37
37Thursday, March 4, 2010
![Page 48: Managing Software Debt Agile Bazaar](https://reader030.fdocuments.in/reader030/viewer/2022020217/54552a63b1af9f40378b473f/html5/thumbnails/48.jpg)
© 2009-2010,
Virtual Architect Pattern
EnterprisePlanning
38
38Thursday, March 4, 2010
![Page 49: Managing Software Debt Agile Bazaar](https://reader030.fdocuments.in/reader030/viewer/2022020217/54552a63b1af9f40378b473f/html5/thumbnails/49.jpg)
© 2009-2010,
Virtual Architect 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
39
39Thursday, March 4, 2010
![Page 50: Managing Software Debt Agile Bazaar](https://reader030.fdocuments.in/reader030/viewer/2022020217/54552a63b1af9f40378b473f/html5/thumbnails/50.jpg)
© 2009-2010,
Integration Team Pattern
40
Feature Development
Integrate Features
All features are implemented
and integrated every iteration
40Thursday, March 4, 2010
![Page 51: Managing Software Debt Agile Bazaar](https://reader030.fdocuments.in/reader030/viewer/2022020217/54552a63b1af9f40378b473f/html5/thumbnails/51.jpg)
© 2009-2010,
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
41
41Thursday, March 4, 2010
![Page 52: Managing Software Debt Agile Bazaar](https://reader030.fdocuments.in/reader030/viewer/2022020217/54552a63b1af9f40378b473f/html5/thumbnails/52.jpg)
© 2009-2010,
Component Shepherd Pattern
42
42Thursday, March 4, 2010
![Page 53: Managing Software Debt Agile Bazaar](https://reader030.fdocuments.in/reader030/viewer/2022020217/54552a63b1af9f40378b473f/html5/thumbnails/53.jpg)
© 2009-2010,
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
43
43Thursday, March 4, 2010
![Page 54: Managing Software Debt Agile Bazaar](https://reader030.fdocuments.in/reader030/viewer/2022020217/54552a63b1af9f40378b473f/html5/thumbnails/54.jpg)
© 2009-2010,
Team Architect Pattern
44
44Thursday, March 4, 2010
![Page 55: Managing Software Debt Agile Bazaar](https://reader030.fdocuments.in/reader030/viewer/2022020217/54552a63b1af9f40378b473f/html5/thumbnails/55.jpg)
© 2009-2010,
Team Architect 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
45
45Thursday, March 4, 2010
![Page 56: Managing Software Debt Agile Bazaar](https://reader030.fdocuments.in/reader030/viewer/2022020217/54552a63b1af9f40378b473f/html5/thumbnails/56.jpg)
What is possible?
High quality can be attained and should enable accelerated feature delivery at same time.
46
46Thursday, March 4, 2010
![Page 57: Managing Software Debt Agile Bazaar](https://reader030.fdocuments.in/reader030/viewer/2022020217/54552a63b1af9f40378b473f/html5/thumbnails/57.jpg)
© 2009-2010,
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…
47
47Thursday, March 4, 2010
![Page 58: Managing Software Debt Agile Bazaar](https://reader030.fdocuments.in/reader030/viewer/2022020217/54552a63b1af9f40378b473f/html5/thumbnails/58.jpg)
Lets wrap this up...
What should I take away from this?
48
48Thursday, March 4, 2010
![Page 59: Managing Software Debt Agile Bazaar](https://reader030.fdocuments.in/reader030/viewer/2022020217/54552a63b1af9f40378b473f/html5/thumbnails/59.jpg)
© 2009-2010,
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!
49
49Thursday, March 4, 2010
![Page 60: Managing Software Debt Agile Bazaar](https://reader030.fdocuments.in/reader030/viewer/2022020217/54552a63b1af9f40378b473f/html5/thumbnails/60.jpg)
Thank you
Questions and Answers
50
50Thursday, March 4, 2010
![Page 61: Managing Software Debt Agile Bazaar](https://reader030.fdocuments.in/reader030/viewer/2022020217/54552a63b1af9f40378b473f/html5/thumbnails/61.jpg)
© 2009-2010,
Chris Sterling – Sterling Barton, LLC
Technology Consultant, Agile Consultant and Certified Scrum Trainer
Consults on software technology, Agile technical practices, Scrum, and effective management techniques
Innovation Games® Trained Facilitator
Open Source Developer
Software architecture consulting for Agile Teams:
Continuous Integration
Source Code Monitoring
Release Management
Design techniques
51
Email: [email protected] Web: http://www.sterlingbarton.comBlog: http://www.gettingagile.com
Follow me on Twitter: @csterwa
51Thursday, March 4, 2010