Anybody have a team that is responsible for both new development and support activities? I got a great question from one of my readers last week that I'd like to share.
I have a team that’s responsible for both supporting what we’ve already created and released as well as developing new features or enhancements to what’s been released. I’m about to split a scrum team up from 12 people to 2 teams of 6. Most folks have no desire to do support full-time.
With only rough estimates of potential weekly incoming product defect ticket rates, we’re trying to determine how best to deal with this situation so that we can maximize our teams’ velocities while ensuring that we can deal with incoming product defect tickets within appropriate resolution times. The natural tendency is to have a very conservative velocity, but we’re hoping for something better than that.
This is a problem not unique to agile teams. Software organizations have been struggling with this one for years. The root of the problem is that your project needs a predictable throughput. Stable velocity is essential for a well managed predictable agile project... but your support activities make establishing a stable velocity nearly impossible. Support is a variable the team can't really define or control.
I'd love to tell you to just add the support tickets to the backlog with all the new development work and prioritize them sprint to sprint along with the other product features. The problem with this approach is most times support tickets are a drop everything, get the customer working activity. Support tickets also defy estimation. You are never going to know how long they will to take... you don't know their tasks... you might not even be able to predict their relative size. Service requests just have to get done... and they have to get done now.
I don’t know that there is a magic answer to this question. Like most things, it is a matter of understanding the particulars of your environment, and of your people, and coming up with something that meets your individual needs. Here are a few approaches I have tried in the past with varying degrees of success. Would love for you guys to reply to this blog with your ideas an other approaches for dealing with this difficult issue.
Approach One
Alternate the teams between support iterations and new development iterations. The team would establish a steady velocity (every other week) based on their new development work and that steady velocity could be measured against the remaining backlog to balance the scope and end date. If the team is not 100% consumed with support during a given sprint, they can use the extra time to get ahead of the game on their upcoming development sprints.
Approach Two
Assuming you have some historical data on how much time you spend doing support, allocate a fixed amount of bandwidth to support activities each sprint. For example, each team would allocate 30% of their time to support activities and velocity would emerge based on the time they have remaining to do new development.
Assuming the support needs will vary iteration to iteration, you will have to account for that variability in your commitments to your organization. I'd track best case, worst case, and average velocity based on what the team has been able to deliver iteration over iteration. You would then express this variability to the business as either a range of delivery dates or as a range of product features that could be delivered by a fixed date.
Approach Three
The last (and maybe least desirable approach for your team) is to have one team responsible for development and one team that is responsible for support. That would allow the development team to get into a groove writing new code and the support team to establish patterns for how much and how quickly they can get through support tickets. Because no one wants to do support full time, you would rotate people in and out of the support team and back onto the new development team.
I'm interested in your thoughts. Please weigh in with how you've handled this issue on your teams and what has worked (and maybe more importantly) what hasn't. Subscribe to this blog
Subscribe to Leading Agile
Need training, coaching, or help leading an agile transformation?
email: mike@cottmeyer.com or call: 404.312.1471
Wednesday, February 11, 2009
Handling Support on Agile Teams
Monday, October 27, 2008
Supporting Agile
John Boghos is writing a blog. This post is to let you know a little about John and why you need to care about his new site... Supporting Agile.
John and I work together at VersionOne. John is our customer support lead and is passionate about being excellent in customer service. John is one of those rare... albeit strange folks that are really interested in this space and want to explore how to do it better.
I did a few years of customer support early in my career. It is a hard, often thankless job, and I did not last long. John has made a career out of this. Over the past twenty-four years John has worked in food service, telemarketing, telecommunications, project management, and the software industry.
John's blog is going to explore how to manage a support queue using agile techniques and principles. He will also discuss how to best work with an agile team when you are the guy supporting their product. This is an interesting space that needs some more attention.
There are lots of teams out there using iterations, story points, backlogs, and velocity to try to make some sense out of their support queues. These are teams that are striving to become more predictable and eliminate waste in their processes. I am really interested in what John has to say and look forward to reading more from his experiences.
Visit http://www.supportingagile.com to hear what John has to say. I doubt you will be disappointed. Subscribe to this blog
Subscribe to Leading Agile