Search code examples
project-managementagilescrumestimation

How to manage agile development when the team is not stable?


I have been using agile approaches (XP and Scrum) for my projects for several years with great results. But in all cases, all members of the dev team were committed 100% to the project.

Now I am faced with doing this when the team is not stable. For instance, one iteration there may be four people working, the next maybe only two or three.

I realize this makes it hard (or impossible) to estimate using the normal velocity approach since it will fluctuate to much and not be stable. What follows is that one cannot really expect to be able to release at the end of each iteration.

Maybe another approach is needed here. Just grab stuff from the backlog and just muddle through and release whenever it is possible. I really don't like that though...

Any thoughts?


Solution

  • From the question I assume you have some developers (probably, 2) 100% commited to the project and some (another 2-3) only participate at a times.

    One thing you can do is set different process for core developers who are 100% commited and everyone else. Use you normal agile process for core people and release their work at normal iteration cycle. For non-core people, do little planning and assume their (and your) estimates would be way of at a times. Ideally their changes should be isolated and merged into stable branch of code by core members, but not every project's architecture and team roles allow this.

    The point is to separate and isolate source of chaos and leave the heart of a project and team unaffected.