Agile for maintenance projects

Posted on March 14th, 2008 in Agile, Methodology by siddharta || 7 Comments

In the previous post I wrote that Sanjiv Augustine was giving a talk in Chennai. After the talk we had a discussion about implementing Agile in maintenance projects. This is one of those topics that is not discussed very often, but it’s a topic that crops up very often in an Indian context where many teams are working on offshore maintenance projects.

There are two types of maintenance projects that are commonly encountered. One is when you have a bunch of feature enhancements to an existing project. The second is when you get bug reports from the field that are fixed as they arrive.

The first type is quite straightforward to handle — just prioritize your feature request list and handle like a normal agile project.

The second type is a lot more tricky because you are fixing bugs as they arrive. This means that there is no backlog as such. Rather, bugs are worked on as they arrive in a first-come first-served manner. Sometimes you might have a few bug reports come in simultaneously in which case some basic prioritisation is done, but on the whole it is mostly first-come first-served. What is more, there is no specific “release,” but bugs are fixed and then immediately pushed into production.

It is this second type of project that I want to discuss in this post, because my experience has been that iterations are really ill-suited for this sort of development. The problem with iterations is that you need a definite start date and end date, but it doesn’t make sense to wait and collect bug reports, then plan it out and release them all at once at the end of the iteration. It would be much better if you could work on bug reports as they come in, using some sort of queue.

Naturally, the first thing that comes to mind is David Anderson‘s Kanban based method which is based on queues and flow rather than iterations. This seems to be ideally suited to the variable input rate that occurs in bug fixing. One caution is that applying this method requires a good understanding of lean and a mature team and is definitely on the “Ri” end of the “Shu-Ha-Ri” scale. If you are interested, Sajiv has links to a talk that David gave at Yahoo! a few months ago.

Another option that Sanjiv mentioned was doing extremely short iterations. By extremely short, I don’t mean 1 week iterations, but more like 1 day iterations(!). The basic idea is that each day you look at the bug reports available, select some to implement that day, then code, test, integrate within the same day. Repeat every day. Some teams do 2 day iterations instead of 1 day iterations, but the idea is the same – plan, implement and integrate over a very short time frame. This may be easier to implement for those who are familiar with Scrum because the basic principles still apply, though over a very, very short time frame. Given the huge popularity of Certified Scrum Master courses and the subsequent familiarity with Scrum, it might be easier for a new ScrumMaster to go this route.

Another challenge with maintenance projects is that you are often not dealing with your own code. You might be working with some messy legacy code with bad design, no unit tests and so on. What do you do then? All I can say at the moment is to check out Michael Feather’s excellent book, “Working Effectively With Legacy Code“. It’s a must read book for anyone doing agile, maintenance or otherwise.

There are no a priori best practices

Posted on February 3rd, 2008 in Methodology by siddharta || No Comment

Corey Ladas: There are no a priori best practices. There are only the practices you are using now. And practices that are better than the ones you are using now.


Introduction to Agile Methodologies presentation

Posted on January 24th, 2008 in Agile, Methodology, presentation, silverstripesoftware by siddharta || 5 Comments

I recently gave a presentation on an Introduction to Agile Methodologies. Unfortunately, I only have the presentation, and not the audio narration that goes with the presentation. Therefore a few of the slides might not make sense taken out of context from the narration. Here is the presentation:

SlideShare | View | Upload your own

Adopting Agile in an Organisation

Posted on July 25th, 2007 in Agile, Methodology by siddharta || 1 Comment

Mike Griffiths has a fantastic three part blog series on how to adopt agile methods in an organization. As can be expected, there is a lot of emphasis on managing change in the organisation (the number one stumbling block in my experience)

  • Part 1: Why, Who, What, When, Where
  • Part 2: Why change is difficult, why people naturally resist change, and when people do accept changes
  • Part 3: A change framework to effectively implement agile methods

Through the three parts, he points out 16 mistakes that are often made while implementing a change program for agile adoption. These include mistakes like Mistake #8: Underestimating the resistance to change, Mistake #9: Think people will want to adopt agile because it is better and Mistake #14: Not explaining that things will feel uncomfortable to begin with.

If you are leading the change effort for agile adoption in your organisation, then you owe it to yourself to check out the posts.

Yahoo groups for agile processes

Posted on February 10th, 2007 in Agile, Methodology by siddharta || No Comment

One of the best ways to learn more about agile processes is to join the discussions on yahoo groups. There are loads of yahoo groups discussing agile. Here are some that I read:

Continue reading ‘Yahoo groups for agile processes’ »

« Previous Entries Next Entries »