Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

2 teams (A and B) in different geo locations are developing Project P.

Both of the teams are also developing few other smaller projects: A has projects PA1 and PA2. B has PB1 and PB2. P is the only one common to the 2 teams.

The Scrum design today:

  • Each team has a PO, and they decide on the priorities together.
  • One common Backlog that contains stories from project P and from PA1 and PA2. PB1 and PB2 are done off-scrum.
  • Each team has its own sprint and SM. Team A picks stories from the backlog that are related to projects P, PA1 and PA2. Team B takes stories only related to P.

The problem:

  • I want to manage PB1 and PB2 in Scrum as well.

Possible solutions:

  • Add PB1 and PB2 to the same Backlog? - will complicate the backlog even more than now.
  • Separate to 3 backlogs (P, PA1-2, PB1-2)? - There is a rule of "one backlog per team"... Should we break it? And is it even supported in TFS?

Any idea how to solve the problem?

share|improve this question
    
Is there a good reason why P is split across the two teams, rather than one team having P and the other having PA1, PA2, PB1 and PB2? (or some other even split) –  pdr May 15 '12 at 19:05

2 Answers 2

up vote 5 down vote accepted

I'm currently 2/3rd of the way through Agile Software Requirements: Lean Requirements Practices for Teams, Programs, and the Enterprise and I would highly recommend that book as it covers a lot of the topics issues involved in scaling out agile process to more than one team and maintaining backlogs for enterprise-level products (i.e. those that might span years)

Although I haven't encountered your specific situation so I can't really say how well my advice would work in practice, based on my own experience with Agile, combined with external reading, this is what I would suggest:

  • Maintain separate backlogs for each product. So you would have five backlogs: P, A1, A2, B1, B2. This way each backlog clearly indicates where you are in that product's development and what lays ahead for that product.
    • When you have too many stories in a backlog, you reduce overall agility as there's more things for you to manage. Having 5 different products in one backlog won't be very productive. Especially if you have more than one product owner. How much moving around would you have to do if you had a single backlog and all of a sudden your CTO comes to you and says, A2 is your highest priority, put everything else on hold?
    • Leave product backlog at a somewhat high-level (i.e. don't break stuff down to 1-3pt). Having only larger items will again reduce the number of stories and the teams need to deal with and will make it much easier to prioritize work.
  • Create 2 team backlogs: A and B. Based on business needs and priorities you should able to pull stories from P, A1, and A2 and transfer those into A. And P, B1 and B2 would get transferred into B.
    • Ideally you would only have several iterations worth of stories in the team backlogs. This way as business needs and priorities shift, you'll be able to adjust the volume of stories that you pull from each of the product backlogs.
    • These team backlogs would take product stories and possibly break them down into finer chunks with more details defined. But you'd only fill in details when the team is ready to actually do the work.

The positive thing is that having separate product backlogs means that you'll have 5 velocities and you will be able to predict exactly when each feature for those products will be delivered.

The challenge will be to standardize the point scale across the 5 projects and 2 teams because if different products/teams use different point scale, your velocity will be worthless. The book I mentioned above talks about some of the ways for this standardization. Basically, you want to start with same base weight (e.g. 1pt ~ 1 day of work). Also having scrum of scrums meetings (possibly with technical leads) will help with higher level planning, equalizing the point scale and coordination of work between the teams.

share|improve this answer
    
+1 for using separate product backlogs for A1, A2, B1, and B2, each of which are a subset of the product backlog for P. I assume the Sprint Backlog for team A would simply pull from the A1 and A1 product backlogs? –  Matthew Flynn May 15 '12 at 18:30
    
@MatthewFlynn: I think you had the right idea but confused the facts a bit. OP had 5 different projects. "P" is separate from A# and B# projects. "P" is unique because it is shared by both team A and B. But yeah, what I'm saying is that each team only has ONE backlog (no agile rules broken) but they pull from multiple product backlogs based on the product that each team actually is working on. –  DXM May 15 '12 at 19:14
    
You're right--I misread. There is no relationship between P and PA1. –  Matthew Flynn May 15 '12 at 19:18
    
Interesting! I think I'll have a read of that book. –  Jeremy Holovacs May 15 '12 at 20:14

One word of advice on story points---I generally do not like to share the raw points with outside parties. Team A and Team B (especially if they are not co-located and in conversation with one another) are going to have their own relative points and should be allowed to gauge their own baseline and level of effort for each user story. I've seen far too many discussions between stakeholders and the product owner over why team A is able to have a velocity of 50 per sprint while team B has a velocity of 25. I'm all for transparency, but you have to protect your team members from that kind of discussion. If you have to report anything externally, I'd come up with a translated tee-shirt size from the points like "1-3 (Small) 5-13 (Medium) 20-40(Large) 100+(XL)." This is especially important when you have strong, opinionated stakeholders who are not familiar with Scrum and the idea of story points and relative estimation. Your best bet is to just to let them see the backlog's priorities, the general release plan, and maybe a backlog burn-down chart that shows no points, only the trend line with dates. Those points are there first and foremost to elicit discussion among the team members about the level of effort. After that takes place, it may help you as a product owner or scrum master to plan better. It was never meant to be an objective score for your stakeholders to judge your teams efficacy or hard work. Making it so will discourage them from being honest.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.