InfoQ

InfoQ

News

My Bookmarks

Login or Register to enable bookmarks for unlimited time.

The content has been bookmarked!

There was an error bookmarking this content! Please retry.

Multiple Projects, One Agile Team

Posted by Geoffrey Wiseman on Dec 05, 2007

Sections
Process & Practices,
Architecture & Design
Topics
Customers & Requirements ,
Agile ,
Agile in the Enterprise
Tags
Planning ,
Business/IT Alignment ,
Scrum

It's not uncommon for an organization to have one group of developers who need to complete multiple projects. In those situations, how should the group be structured, and how should their work be planned and allocated?

When the ratio of developers to projects is relatively high (say, 6-10 developers per project), and the size of the projects and their relative priorities is known, this is commonly addressed by splitting the developers into two or more teams.

On the other hand, if the ratio of developers per project is quite low (1-3 developers per project), and the size of the projects and their relative priorities is less clear or subject to change, it can be difficult to split the developers into teams in a meaningful way.

Gilad Gruber asked for some advice on how to structure a project and team:

I am wondering what is the best way and what is the SCRUM way of handling this. My feeling is that the best way is to have a single backlog per team (even if this means that in a sprint the team is working on backlog items belonging to multiple projects). I think the purists will recommend splitting the team and having multiple backlogs.

Wolfgang Shulze Zachau shared his experience:

We have one team and one product backlog covering a variety of projects. There is one product owner and he is the ultimate decider on priorities, after careful consultation with the customers and other stakeholders. Works well, as long as the [Product Owner (PO)] is left to make his own decisions.

He added, "Of course, you need the right kind of guy to be PO."

Xu Yi-Kaveri disagreed:

I [am] against the idea of having a single product backlog per team. First, product owner is the person who can decide the format of product backlog. And basically I think you do not have a single product owner for different projects.

He raised the concern of how you can prioritize amongst multiple projects, and confusing feature priority and project priority. Instead, he suggested:

You should have your team's capacity estimated, then perhaps you need to negotiate with project managers about capacity division among projects. Then use your project specific capacity to select product backlog items for different projects.

Roy Morien suggested choosing between the approaches using common sense:

But in all of this, common sense must prevail, surely. If it is convenient and efficient to have many teams, each with its own PB, then fine, go for it. Each PB will have to be separately prioritised. If a common backlog that is shared by many teams, then that implies that many teams, of appropriate numbers each (7-9 maximum) share the same PB, and then it just becomes a problem of handling the prioritising of the PB, AND of the orderly selecting of items to go onto the various Sprint Backlogs.

Finally, George Dinwiddie stepped in to share (via mailing list and blog) some of the problems he has experienced with using multiple product backlogs:

As estimates are only estimates, the developers are put in a position of deciding whether to continue working on an unfinished story or switch to something different because they've used up the capacity allotment. Or perhaps they're pressured into working overtime because the POs will blame the developers for anything that goes wrong. A lot of things can happen, but few or none of them are Agile.

I can tell you that that it's not pretty, and it's not good for the business.

  • This article is part of a featured topic series on Agile

Related Sponsor

In today’s hyper-competitive world, later may be too late to adopt Agile development and this Roadmap for Success will help you get started. Download "Agile Development: A Manager's Roadmap for Success" now!

Developers choosing which projects get their features? by Deborah Hartmann Posted
Re: Developers choosing which projects get their features? by Geoffrey Wiseman Posted
Re: Developers choosing which projects get their features? by Kelly Waters Posted
Re: Developers choosing which projects get their features? by Geoffrey Wiseman Posted
Implicit backlog and waste... by Amr Elssamadisy Posted
  1. Back to top

    Developers choosing which projects get their features?

    by Deborah Hartmann

    George's comments resonate for me, I hadn't noticed that before:

    > the developers are put in a position of deciding whether
    > to continue working on an unfinished story or switch to
    > something different because they've used up the capacity
    > allotment.

    So, even if there is a single PO he or she would need to negotiate in some low-value stories to ensure that their owners wouldn't be disappointed if those stories get cut when the unexpected occurs and it's realised that a story will need to be dropped from an iteration.

    If this isn't done, the team effectively ends up deciding resource allocation across different projects. I can see how this would tend to encourage overtime, to avoid getting embroiled in inter-departmental politics. So much for sustainable pace. (And we all know that tired teams make more mistakes).

  2. Back to top

    Re: Developers choosing which projects get their features?

    by Geoffrey Wiseman

    If this isn't done, the team effectively ends up deciding resource allocation across different projects. I can see how this would tend to encourage overtime, to avoid getting embroiled in inter-departmental politics. So much for sustainable pace. (And we all know that tired teams make more mistakes).


    Yes, I've seen that at play. In fact, I've been in that position. I was once assigned on an ongoing basis to a client project in 'operations' mode for 0.5 days a week, but not any specific day, and given very little sense of comparative priority. That meant that at any given moment, I was largely in charge of what happened, and why.

    It had uncomfortable moments. For the most part, it worked out. Like any project, if the participants are all reasonable people trying to do the right thing, it will often work, in spite of whatever screwy arrangement has been set up to manage it.

  3. Back to top

    Re: Developers choosing which projects get their features?

    by Kelly Waters

    Click below to see what I say about how to share an agile development team...

    kw-agiledevelopment.blogspot.com/2007/07/how-to...

    Kelly Waters
    www.allaboutagile.com

  4. Back to top

    Re: Developers choosing which projects get their features?

    by Geoffrey Wiseman

    Click below to see what I say about how to share an agile development team.


    One of the things I value about scrum is that the sprint is a goal, and the tasks lead to the goal, so you might drop stories, as long as you believe you can achieve the goal.

    That's harder to manage with a split-project-budget as you describe -- making scoping decisions could involve negotiation and careful planning. That's liveable, but it does take away a little from having a self-directed team.

    (That is presumably partially true even with one backlog and one product owner -- but in that model, I can imagine the product-owner doing a more cohesive job of the planning and prioritizing.)

  5. Back to top

    Implicit backlog and waste...

    by Amr Elssamadisy

    I know it sounds difficult/problematic to have one PO across multiple projects, but prioritization has to be done by someone.

    If there is no single PO (and a single backlog), the development team *acts* as if there is implicitly. The fact that they do things in a particular order imply a priority which probably won't match the customers' priorities.

Educational Content

Cool Code

Kevlin Henney examines code samples to see what can be learned from them starting from the premise that one won’t write great code unless he knows how to read it.

Collaboration: At the Extremities of Extreme

Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.

Yesod Web Framework

Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).

Transactions without Transactions

Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.

Attila Szegedi on JVM and GC Performance Tuning at Twitter

Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.

10 tips on how to prevent business value risk

One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.

Interview: Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives

InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.

Beauty Is in the Eye of the Beholder

Alex Papadimoulis discusses ugly code, where it comes from, how to avoid it, and how to get rid of it.