Agile – Multiple scrum teams moving to single backlog

agilescrum

We currently have 5 scrum teams that work off their own product backlog for the past year.
Each team works on their own dedicated system but underlying technology is the same .Net.

There has been a lot of discussion on moving to feature based teams working off a single backlog. The reason is one of our main systems has a significant amount of work coming and their is not enough capacity to deliver all the work in the year. The other reason which I believe is the significant one is it gives greater flexibility to adjust to changes in the portfolio rapidly.

A decision been made to change two teams to work on a single backlog but the devs don't have experience on the other systems. One thing we're doing is cross-skilling by moving an experience system developer over to the team.

My question is, have you experienced moving to single backlog for two or more different systems. What were your challenges? What did you need to do to get it to work?

Best Answer

We manage about a half dozen projects using a single backlog. I say "about" because it depends upon how you want differentiate projects.

Loosely, we have five or six product owners, some of whom own more than one product. We have a reasonably small team with seven devs and a team lead who also codes when he has time. And we have a few evangelizers who work with our process folk to move ideas into the pipeline. Of course, several folk wear several hats which muddies things but I'll ignore that for my answer. Interestingly, we do not have a formal scrum master.

We didn't have to merge backlogs together, but it sounds like a straightforward task on your side.

Keeping things organized can be a real pain, so here are some points you'll want to consider.

  • Governance is key. Everyone who has an administrative finger in the pie must communicate with others before making significant changes. And / or those making changes must be comfortable with their authority to do so (and be prepared to take the heat for a bad change). Our change makers have strong executive backing and lines are pretty clearly drawn around areas. But when there's a doubt, we ask before we change.

  • There can be more overhead involved with backlog grooming, prioritization, and kick-offs. Prioritization as a ritual suffers the most because it's hard to get all of the owners together on a regular basis. We use a number of go-betweens to negotiate priority and / or deliver the bad news of not making the priority cut.

  • A lot of our work is driven by external commitment. That takes away some of the autonomy out of our decisions, but that's the reality of business. Your devs need to be aware of that change though. Feathers can get ruffled if there is a perceived loss of control. We try not to over-commit though, and we've had to say "no" to some product owners who were sitting on the cusp of making it into the sprint.

  • We generally use two methods to tag what product a product backlog item belongs to. We use both simply because it makes grooming and other tasks easier.

    1. We'll preface the PBI title with the product name or shorthand version.
    2. We have a separate field that indicates overall product, and that has to be filled out as well.
  • We have to put conscious effort into cross-training and making sure that everyone gets a hand in the various areas. We have a very large code base with respect to our development team. Some of the code we do is very specialized as well. Our team lead is awesome in that regard and he'll push our commitment level down a notch so we can afford the inefficiencies that come from cross-training. Having a strong team lead is critical in this regard.

  • We do our best to maintain our sprint time frames. Complex projects with newer team members translates into not uncommon bleed over with commitments. Process around your branching will really help here. All of our work is done against a branch that is then merged back to a trunk release. We also have a build server that runs nightly in addition to ad-hoc triggers. Devs who break the build know and resolve the issue within 24 hours. Period. Failure to resolve within 24 hours means your commit is rolled back and the senior devs give them grief. And the senior devs are hardest on themselves when it comes to maintaining the build.

  • Code walk-throughs and reviews become even more critical. It helps keep everyone up to date on what's changing in the various areas.

  • Likewise, the daily standup involves all the devs plus our UI people. We're right at the edge of beneficial collaborative communication and inefficiency from too many people. But we keep the standup to less than 15 minutes and will quickly move on from side discussions. Usually we're done in 5 to 10 minutes.

  • I can't speak to the effects on metrics like velocity or overall commitment and burndown rates. Those aspects just haven't been important enough for us to follow closely. YMMV, so take that under consideration. This also presumes that each team has a reasonably similar definition of story point. If not, that's going to mess up initial estimates after the merge. It will also generate some problems for historical comparisons since you're not using the same unit of measure as you were before. Easy way out is to just declare it a "new team" for the metrics and just start gathering data after the merge.

  • We have seen significant benefit from this approach. We've had some sprints where all hands are focused on one area and we can knock out a lot of change in a short period of time. You shouldn't underestimate the value that comes from being able to quickly apply double the normal number of developers on a particular project. But you have to put in the cross-training ahead of time. It also means we never have devs with "nothing to do" because of test cycles or grooming or whatever. We always have a backlog to tackle.

  • Dedicate time for R&D projects. Otherwise it's too easy for them to slip through the cracks and you lose the opportunity to invest in those areas.

  • Really work on ego-less coding and that while you may have experts in an area, you don't have owners of a code area. Preventing the opportunity for bruised egos is important when different styles are introduced into an area. So long as the new code meets the team standards and is functional, it should be good. Just because it's not how the expert would have done it doesn't matter.

  • Make sure the teams involved are using the same coding conventions and style. Nothing like inconsistency here to wreak havoc on your attempts at integration.

  • Keep holding your retrospectives, and hold them as a group. It's important to get everyone's feedback on what's working, what's not working, and what needs to be tried differently. This helps drive a sense of camaraderie within the team and gives a sense of ownership around the development process.