Friday, April 06, 2007

Applying Agile/Scrum practices in Maintenance projects

In many Agile training programs and conferences, common question that gets raised is, does Agile/Scrum works in maintenance projects ?

I always say "YES" and the team needs to tweak Or invent the practices to suit their needs.
Maintenance projects could be enhancement projects OR pure defect fixing projects.

Enhancement projects involve new set of development over existing one. Since the developers gets new set of requirements at the end of each iteration, one can apply the standard set of Scrum practices with little or no modification.

Defect Fixing projects involve fixing defects on closed or current projects not in development. Sometimes these projects are boring, especially if a new team has been hired for defect fixing purposes only. The customer sends a set of defects on a daily basis or weekly basis with a deadline to deliver. The development team needs to fix them ASAP and send the patch for further testing.

While coaching one of such a defect fixing projects, I found that the following Scrum practices can be applied without much modification
1. Daily Scrum meetings
2. Scrum of Scrum
3. Modeling days while solving complex defects
4. Information radiators displaying InProgress, completed, reopened, closed defects and other information
5. Usage of Wiki for collaborating with the customer
6. Requirement workshop while understanding complex defects
7. Review and Retrospective

Common problem that I have found in defect fixing projects include, setting the iteration length. Especially, if the defects are given on a day to day basis without prior knowledge of what you are going to get, it makes the life of the development team bit difficult.
This can be solved by collaborating with the customer and coming up with a plan to have 1 or 2 weeks of iteration length.


Venkatesh said...

I wonder how things can be controlled if team lacks visibility to think forward for even couple of weeks. I mean, team plans for few tasks. But, gets higher priority tasks creeping in every other day. How do they manage their sprint?

Anonymous said...

I personally feel applying agile/scrum on a maintenance project is meaningless. I say this say because of the delivery dates are so squeezed, and the whole team will ignore the quality standards, and nearly torture the code to meet their dates. Finally the application becomes a mess, and the whole system will be rubbish in no time.

Venkatesh Krishnamurthy said...

Maintainance projects could be pure defect fixing project or enhancement projects. Most of the projects that I have interacted didn't go through the phase of extreme pressure. It could be because of various reasons. Apart from that, I feel that applying Agile methods on a project is not related to type of project, but the context behind the application. I believe that, Agile practices can be applied to any project if there intention is to mitigate the risk at an early stage.

Anonymous said...

Sadly the first anonymous speak/poster seem not to have understood agile/scrum process at all.

This is the kind of people who tell others that Scrum/agile didn't work in their project/situation. Well, that's because you never actually did Scrum.

If you don't to things properly, you'll fail no matter what methodology you use.

Anonymous said...

Yes, i agree with second anonymous saying. i dont think first anonymous even know that there's sprint planning, estimation and committed backlog within the available capacity.
My experience proves to me that it is possible to apply scrum in maintenance project.

Anonymous said...

I am new with Agile methodologies, so a question I am facing is: How to manage the requirements for these projects?. For example Group requirements based on priority list and define periodically (quarterly or semi-anual) the sprints required fullfill the list?

Anonymous said...

One should understand that SCRUM is not "Prescriptive", it is "evoloving" you have to "adpat" and "Evolve" the process to fit the problem context...Given this guiding principle, you can apply SCRUM to any project...Be it Mainennance, Greenfield and Hybrid..I have tried these before and have seen some success

Anonymous said...

I do not completely agree that we can use Agile/can apply Agile for any of the project. Agile is good at the project which are of Fix duration but for maintance project we would not have much success rate. And even though we have a success but it would be for small projects. What if we have 70 to 150 issues having approximately 30 enahncements catering to multiple client for client then? I just suggest before applying it just think 2 or trice condersing the quality aspects.

Anonymous said...

Do not agree completely we can use some parts from it but cannot apply it fully.

Venkatesh Krishnamurthy said...

Agile method shouldn't be just looked as a process. It has the common sensical approach of risk mitigation. Whether it is a maintainance or a green field project, risks are always there. So, apply Agile practices if one wants to mitigate risks.

Anonymous said...

Scrum Sucks in maintenance project of large team.. Sadly the concept of feature and independent to each other module does not exist. And multiple team working on the same code in different sprint cycle means a lot of overhead of merging and retesting... small team with a single scrupm team may be OK but with a large team divided into multiple scrums it simply sucks...