Using Agile practices to support software maintenance
Reedy Feggins 120000A43D Visits (13941)
At some point in time, every software application will go into maintenance where most of the software updates going forward are limited to minor enhancements and bug fixes. While often overlooked, maintenance is an integral part of most IT organizations. Studies have shown that some IT organizations spend as much as 75% of their overall software budgets on software maintenance.
While many iT organizations have started using agile practices on projects, the projects usually are fixed iterations, between 2 to 4 weeks, use a single product backlog and have a core team focused on delivery. Recently, I was called on to coach a team trying to adapt Scrum to support their software maintenance activities (aka “software sustainment”). The team had initially tried to use out-of-the-box Scrum and had run into several challenges due to need to support multiple applications simultaneously, conflicting stakeholder priorities and inability to create a single ranked product backlog.
During our initial discovery sessions with the team we compared typical agile team practices to the development practices of the support team, see table below.
After reviewing this customer's current development practices with the team we also uncovered some additional challenges related to when fixes could be delivered to production. Using all these factors we recommended agile approach based on Scrum but modified to overcome some of their scaling factors. We also used the Scrum process in Rational Team Concert (RTC) and made modifications to support these process modifications. We had the team modify their practices for
We also helped them establish a better process for managing a formal monthly release process using RTC for those enhancement and fixes that needed to be bundled into a minor point release. Using this combination we provided the team with the flexibility they needed to deliver small fixes weekly while providing the Service Representatives with a predictable schedule to help manage and prioritize larger customer deliverables.
The customer has been using this approach for the last 3 months successfully and we plan on following up to make additional process modifications after they have completed 6 months using this approach.