Mark Needham

Thoughts on Software Development

Increasing team sizes: Parallelising work

with 3 comments

One of the trickiest things to do when working in bigger teams is ensuring that it is possible to parallelise the work we have across the number of pairs that we have available.

From my experience this problem happens much less frequently in smaller teams. Perhaps inevitably it’s much easier to find 2 or 3 things that can be worked on in parallel than it is to find 6 or 7 or more.

As a result we can sometimes end up with the situation where 2 stories are played in parallel with a slight dependency between them.

It may be possible to start those two stories at the same time but one may rely on an implementation of the other in order for it to be considered complete.

It’s not an ideal situation but it still seems doable if we ensure that the two pairs work closely together both metaphorically and in terms of their physical proximity.

I think a more useful strategy is to look at how many things can be worked on in parallel and then deciding the team size rather than choosing the team size and then trying to find a way to make the way the stories are written/played fit around this decision.

This is rarely what happens since budgets/need to get to market quickly often take precedence so we end up working in a sub optimal way.

While this is a trade off that the business may be happy to make I still think it’s useful to identify the risk we’re assuming by taking this approach as well as recognising that the amount of work we can flow through the system is limited by how much we can process in parallel.

Written by Mark Needham

November 26th, 2010 at 3:53 am

Posted in Agile

Tagged with ,

  • Pingback: Tweets that mention Increasing team sizes: Parallelising work at Mark Needham -- Topsy.com

  • Cloves

    Standard project management tools come in handy here. If working on anything greater than a 4 people project, it pays a lot spending some time in planning the project.

    Being agile-ish, this should be done for each “large deliverable”. Think as Ubuntu’s six month releases.

    For the readers, a crash-course in PM:

    1. Set the scope: what we’ll do and specially what we’ll not do;

    2. Break the work into smaller manageable pieces (or user stories): [Clone Amazon.com] –> [shopping cart, recomendations, payments, shipping, ...] –> [payment by CC, payment by fund transfer, shipping by UPS, ...]

    3. Estimate how much time each task will take. Do your best, but don’t be paranoid about getting it right.

    4. Find the dependency relationships between them. Use a project management tools (like open-source openproj.org) and you’ll be able to quickly find you “critical path”;

    The “critical path” is the work sequence that should be followed to theoretically finish the project as fast as possible.

  • Pingback: Increasing team sizes: Boredom at Mark Needham