« Stuck on Velocity... | Main | For the Love of Agile »

Wednesday, February 11, 2009

TrackBack

TrackBack URL for this entry:
http://www.typepad.com/services/trackback/6a00d83452ee9169e20111685ae943970c

Listed below are links to weblogs that reference Handling Support on Agile Teams:

Comments

Kevin E. Schlabach

I like to fall back on the collective code ownership part of agile to answer this question if possible.

If you are splitting the two teams... are you splitting them in a way where they own separate areas of code? Example: Team A now owns modules 1,2,3 while Team B owns 4,5,6 and the scrum of scrums handles the interfaces between them.

If so, then I would strongly support your option 2. First of all, 30% won't remain constant. If your team is good and the market is calm, they will put less time into the support work and more into new functionality. In other times it will reverse. The more important factor is to have the team writing the code also be the same team supporting that same code. This is both an accountability and an efficiency issue.

If this is not possible and your teams are split and will swarm of whatever is needed (and they will overlap each other's historical work)... then I would choose option 1 or option 3 based on the team dynamics and experience. Keeping the most people happy the longest is important (greater good).

Let me know what you think about this... (you know where to find me!)

Dennis Stevens

Approach two is probably the best. Over at http://www.agile-software-development.com/2009/02/handling-support-on-agile-software.html a variation of this is demonstrated that I really like. It demonstrates the actual velocity of "good code" that is produced without double counting the work to fix defects. You didn't actually produce more stories or NUTS (nebulous units of time) when you fixed a defect. It shouldn't be viewed as extra work - it should have been delivered right the first time.

Damon

Another argument against Approach Three is that by having a team dedicated to support requests, how can you be sure you are delivering the best business value. You should be weighing up the benefit of fixing a support request vs delivering a new feature/enhancement. If you seperate out the backlogs you lose that visibility. We've taken an approach similar to the one outlined in option two, and also started following a more lean (pull centric) approach to the support requests as the lean practices lend themselves better to support work.

Ed Darnell

Is there a more agile solution?

For me the maintenance issue is more a symptom of waterfall thinking, than true agility. Defects are some of the best feedback you can get. Agile teams thrive on feedback.

A defect is an indicator that there is something not quite right. The knee-jerk (non-agile) reaction is to look to process or roles to solve the problem.

The agile answer is to look at what non-agile behaviours might be causing the problem in the first place.

Agile teams should be able to take defects in their stride. Test driven discipline should help avoid defects in the first place, but where they do slip through agility should allow them to be rectified quickly and safely.

Mike Cottmeyer

Thanks Ed for the comment.

I agree with your post 100%. Defects are great feedback and when we find them we need to fix them.

Not all support is defects thought... sometimes it is answering how to questions, sometime it is a down server, sometimes it is a problem with the code.

The problem is that someone has to be pulled away from their sprint commitment and work on the support issue.

The fundamental question is, what is the best way to handle that with minimal disruption to the team and their ability to predictably deliver new features!

Thanks for the comment!

Mark

I also found this of interest and had originally considered this after reading a blog post by Damon Poole.

http://damonpoole.blogspot.com/2007/12/unconciously-agile.html

I can see where having a tool that supports the easy management of both new and maintenance releases in parallel would improve our velocity. What do others think?

Mark

Mike,

I have seen a few organizations struggle with this issue in the past. The most popular solution I've seen is to have half the team work on new development and the other half work on bug fixes for a set amount of time and back to everyone doing new development at the end of the bug fix sprint/s. Agile should reduce the number of defects in the first place and shouldn't require a significant effort or growing backlog.

I would also recommend agile teams consider using tools like VersionOne and Accurev to increase their ability to work on both simultaneously and improve their velocity.

Dave Nicolette

I have a couple of gut reactions to the three approaches.

First, I think there's a fourth approach. Teams that use a kanban process typically allow for one or two "urgent" items to be added at any time. As soon as a pair finishes a story or MMF, they can pick up the "urgent" item.

Something like that might be adapatable to teams that are using an iterative process. It might look a bit like Approach Two, except that instead of leaving a cushion for bug fixes based on historical data, you would leave a fixed amount of cushion per iteration and that's it.

My second gut reaction is that the description of the problem is a smell. It's a team that created its own mess, and now has to live with it. They might want to look for the root cause(s) of the high defect rate, especially since many of the bugs appear to be truly critical - causing users to be unable to work. If they can correct the underlying problem, they won't create so many serious defects in the first place, and they won't have to disrupt value-add work as frequently for bug fixing.

Mike Cottmeyer

Dave,

I agree with your 'smell' comment. Most of the teams I work with are in some sort of transition mode. Ideally you want to get to a place where code quality is high and you don't have so many support issues. Many teams take time to get there and need some way of managing through these issues while they get their environment under control.

Mike

David

Support for development, is akin to documentation for administrators. Too many people have their fun with the implementation, and shy away from what comes next.
I don't think this is an agile issue, just a general IT issue.
In regards to the approaches, I think approach 1 is sensible. It ensures everyone does some of what they want to do, and only some of what they don't as well. They can complain but probably won't complain loudly.
This approach also ensures information exchange and removes one team from possibly becoming a single point of failure.

Regards
David
http://www.jacksguides.com

Verify your Comment

Previewing your Comment

This is only a preview. Your comment has not yet been posted.

Working...
Your comment could not be posted. Error type:
Your comment has been saved. Comments are moderated and will not appear until approved by the author. Post another comment

The letters and numbers you entered did not match the image. Please try again.

As a final step before posting your comment, enter the letters and numbers you see in the image below. This prevents automated programs from posting comments.

Having trouble reading this image? View an alternate.

Working...

Post a comment

Comments are moderated, and will not appear until the author has approved them.

Subscribe