agile maintenance by shrikant vashishtha
TRANSCRIPT
![Page 2: Agile Maintenance by ShriKant Vashishtha](https://reader031.vdocuments.us/reader031/viewer/2022020106/55a5b9871a28ab6d0e8b4625/html5/thumbnails/2.jpg)
Definition
• Software maintenance in software engineering is the modification of a software product after delivery to correct faults, to improve performance or other attributes, or to adapt the product to a modified environment (ISO/IEC 14764)
![Page 3: Agile Maintenance by ShriKant Vashishtha](https://reader031.vdocuments.us/reader031/viewer/2022020106/55a5b9871a28ab6d0e8b4625/html5/thumbnails/3.jpg)
Agenda
• What is Agile Maintenance all about?
• Share learning of Xebia Application Lifecycle Management approach
![Page 4: Agile Maintenance by ShriKant Vashishtha](https://reader031.vdocuments.us/reader031/viewer/2022020106/55a5b9871a28ab6d0e8b4625/html5/thumbnails/4.jpg)
A Snapshot of Traditional Maintenance
• Support team wait for issues to come• Customer communicates bugs through Manager
using Bugzila, Excel or email• Support team simulates the bug and fix it• Update the test case document and design
document and traceability matrix• Testing team tests the issue and runs regression
tests• After acceptance test, patch is deployed in the
production
![Page 5: Agile Maintenance by ShriKant Vashishtha](https://reader031.vdocuments.us/reader031/viewer/2022020106/55a5b9871a28ab6d0e8b4625/html5/thumbnails/5.jpg)
Issues in Traditional Approach
No transparency in:– Estimation and time to deliver– What team does and doesn’t
• Manual tests and a lot of focus on unnecessary documentation
• Passive approach. No focus on reducing technical debt
• Demotivated team
![Page 6: Agile Maintenance by ShriKant Vashishtha](https://reader031.vdocuments.us/reader031/viewer/2022020106/55a5b9871a28ab6d0e8b4625/html5/thumbnails/6.jpg)
Lifecycle of a Bug in Agile Maintenance
• A bug reported and added into product backlog• Team estimates the bug• Bug added to Sprint backlog• Developer begins the work with definition of READY
and agrees on definition of DONE• Write test case and reproduce bug• Fix the bug and run test cases as part of CI.• Ready for automated acceptance testing (Fitnesse)
![Page 7: Agile Maintenance by ShriKant Vashishtha](https://reader031.vdocuments.us/reader031/viewer/2022020106/55a5b9871a28ab6d0e8b4625/html5/thumbnails/7.jpg)
Tests as Vise
Test Cases
Bug to be fixed or code to be refactored
![Page 8: Agile Maintenance by ShriKant Vashishtha](https://reader031.vdocuments.us/reader031/viewer/2022020106/55a5b9871a28ab6d0e8b4625/html5/thumbnails/8.jpg)
A Snapshot of Agile Maintenance
• Bug is logged in issue tracking tool (JIRA/ScrumWorks)
• Developers estimate and Product Owner prioritizes the issues.
• Pro-active instead of Reactive– Pay off technical debt– Fixing the leaks
• Improving quality of existing software– Focus on automated testing (unit/integration/acceptance)
– Test coverage more than 85%
– Adhere to standards through automated code review
![Page 9: Agile Maintenance by ShriKant Vashishtha](https://reader031.vdocuments.us/reader031/viewer/2022020106/55a5b9871a28ab6d0e8b4625/html5/thumbnails/9.jpg)
Agile Maintenance
0 5 10 15 20 25
0
50
100
150
200
250
300
350
400
450
500
Bugs openTotal FixedUndiscovered
![Page 10: Agile Maintenance by ShriKant Vashishtha](https://reader031.vdocuments.us/reader031/viewer/2022020106/55a5b9871a28ab6d0e8b4625/html5/thumbnails/10.jpg)
Traditional Maintenance Issues Revisited
No transparency in:Estimation and time to deliverWhat team does and doesn’t
Manual tests and a lot of focus on unnecessary documentation
Passive approach. No focus on reducing technical debtDemotivated team
![Page 11: Agile Maintenance by ShriKant Vashishtha](https://reader031.vdocuments.us/reader031/viewer/2022020106/55a5b9871a28ab6d0e8b4625/html5/thumbnails/11.jpg)
One Team Multiple Projects – Forces
• Maintenance is unpredictable. Sometimes you get a lot of issues, sometimes not
![Page 12: Agile Maintenance by ShriKant Vashishtha](https://reader031.vdocuments.us/reader031/viewer/2022020106/55a5b9871a28ab6d0e8b4625/html5/thumbnails/12.jpg)
One Team Multiple Projects – Forces
• You may want to safeguard the project from any knowledge-base loss in case of any illness/vacations
• Human resources go waste if maintenance team doesn’t have any issues in hand
![Page 13: Agile Maintenance by ShriKant Vashishtha](https://reader031.vdocuments.us/reader031/viewer/2022020106/55a5b9871a28ab6d0e8b4625/html5/thumbnails/13.jpg)
One Team Multiple Projects – The Concept
• One single consolidated list of issues from multiple projects handled in a Scrum sprint
• Proxy product-owner (PPO) from Xebia talks to product-owners, understand priority and define product backlog
• PPO then has a planning meeting with team and define Sprint backlog
• Team handles the issues of multiple projects mentioned in the sprint backlog
![Page 14: Agile Maintenance by ShriKant Vashishtha](https://reader031.vdocuments.us/reader031/viewer/2022020106/55a5b9871a28ab6d0e8b4625/html5/thumbnails/14.jpg)
One Team Multiple Projects Common Sprint Backlog
![Page 15: Agile Maintenance by ShriKant Vashishtha](https://reader031.vdocuments.us/reader031/viewer/2022020106/55a5b9871a28ab6d0e8b4625/html5/thumbnails/15.jpg)
One Team Multiple Projects Scrum Board and Burndown Chart
![Page 16: Agile Maintenance by ShriKant Vashishtha](https://reader031.vdocuments.us/reader031/viewer/2022020106/55a5b9871a28ab6d0e8b4625/html5/thumbnails/16.jpg)
One Team Multiple Projects Advantages
• Good value of money. Comparatively smaller team handles multiple projects
• Good team spirit. Self-organizing team handles multiple projects
• Developers have a lot of choice to work and experiment with
• Knowledge base stays with the whole team instead of one single individual. It provides better results in handling critical issues as knowledge base is bigger now
![Page 17: Agile Maintenance by ShriKant Vashishtha](https://reader031.vdocuments.us/reader031/viewer/2022020106/55a5b9871a28ab6d0e8b4625/html5/thumbnails/17.jpg)
Traditional Maintenance Issues Revisited Yet Again
No transparency in:Estimation and time to deliverWhat team does and doesn’t
Manual tests and a lot of focus on unnecessary documentation
Passive approach. No focus on reducing technical debt
Demotivated team
![Page 18: Agile Maintenance by ShriKant Vashishtha](https://reader031.vdocuments.us/reader031/viewer/2022020106/55a5b9871a28ab6d0e8b4625/html5/thumbnails/18.jpg)
A Sprint in Maintenance Project
• A maintenance Sprint may consist:– Priority 1 bug (show-stoppers)– Priority 2 bug (major)– Priority 3 bug (low)– Priority 4 bug (improvements)– Refactoring for design improvements– Enhancement required in the functionality
• Product owner decides the priority of the issues and defines the Sprint backlog with the help of team and Scrum Master
![Page 19: Agile Maintenance by ShriKant Vashishtha](https://reader031.vdocuments.us/reader031/viewer/2022020106/55a5b9871a28ab6d0e8b4625/html5/thumbnails/19.jpg)
Dealing with Priority 1 Issues in Agile Sprint - Approaches
• Estimate a part of Sprint (for instance 20%) to work on production issues
• Stop a sprint if you find Priority 1 issue and plan accordingly
• Allocate a part of team to work dedicatedly on Priority 1 issue
• Use Kanban• Follow Type C Scrum
![Page 20: Agile Maintenance by ShriKant Vashishtha](https://reader031.vdocuments.us/reader031/viewer/2022020106/55a5b9871a28ab6d0e8b4625/html5/thumbnails/20.jpg)
Type C Scrum
Type A - Isolated cycles of work
Type B - Overlapping iterations
Type C – All at Once
![Page 21: Agile Maintenance by ShriKant Vashishtha](https://reader031.vdocuments.us/reader031/viewer/2022020106/55a5b9871a28ab6d0e8b4625/html5/thumbnails/21.jpg)
Type C Scrum Explained
![Page 22: Agile Maintenance by ShriKant Vashishtha](https://reader031.vdocuments.us/reader031/viewer/2022020106/55a5b9871a28ab6d0e8b4625/html5/thumbnails/22.jpg)
References
• Don't Let Short-Term Agile Create Long-Term Pain – Gartner
• Preparing for Agile Maintenance – Knowledge Management – Xebia Blog
• Knowledge Transfer in Agile Maintenance Projects – Xebia Blog
• Agile Maintenance – One Team Multiple Projects – Xebia Blog
• Type C Scrum Explained – Xebia Blog
• Agile Way of Documentation – Xebia Blog
• Working Effectively with Legacy Code – Michael Feathers
• The definition of READY – Xebia Blog
![Page 23: Agile Maintenance by ShriKant Vashishtha](https://reader031.vdocuments.us/reader031/viewer/2022020106/55a5b9871a28ab6d0e8b4625/html5/thumbnails/23.jpg)
Questions