If you're working on more than one project at a time or if your managers are asking you to do so, it's time to make some decisions. Not every project should be started or finished, and certainly no one person or team should work on all projects at the same time. The organization needs to make some decisions about whether to commit to a project, kill it so it doesn't interfere with other projects, or transform it so it can succeed in a reasonable time.
"I'm on three different must-do projects. I can't tell if they are all really "must do." If they were, wouldn't my managers decide which one I should be on?" - A Harried Developer
Dear Harried Developer:
If you're in this position, as a developer, tester, project manager, or some other person charged with helping complete projects, I can sympathize with you. You have managers who have made only a partial commitment to each of your projects. If you're a manager, there's a tool you can use to decide which project each staff person should work on for now -the project portfolio.
Some managers don't realize that the portfolio decision of when to do which project isn't a final decision for all time but a decision for now . It's much easier to realize that when you have agile teams all working in the same duration timeboxes. Even if you don't have agile teams, you can still decide when to start and finish each project.
Make a Real Commitment
When you commit to a project, make it a full commitment, meaning that all the necessary people are on the project full time and that they have all the necessary resources they'll need, such as a project room, computers, networks, white boards, and sticky notes.
When you make a commitment to a project, decide how long that commitment should last. If you only evaluate the project portfolio once a year, then the commitment is for the entire year. I can now hear some of you saying, "JR, we only formally evaluate the portfolio once a year, but our managers change their minds every week." If you're in that situation, start working in timeboxes of one week in which you commit to completing no more than one week's worth of work at a time. That way, if your managers change their minds, at least you've finished something. You shouldn't incur more context switching costs.
For those of you working on waterfall projects, working in one-week timeboxes can be agonizing. You can only make very small increments of progress in a week. Also, usually the progress made at the beginning of the project is just on specs and plans. But, if you only have a week to work before you have to move to another project, you can actually accomplish more because the timebox focuses you, the entire team, and, as a result, the organization on this project.
One of the reasons managers in waterfall-project organizations have such a difficult time deciding which project is top priority is that the projects rarely release something useful. If you can't tell when you're going to get a project done, it's much harder to commit to it for a long period of time. That's why a commitment for now works better. Then all you'll have to do is define the for now time period.
If you use an agile lifecycle or any kind of lifecycle that allows people to see progress more often than just at the end of the project, you can also decide the lengths of the commitments. The least amount of time for a commitment should equal the length of an iteration in an agile project, when a feature is complete in an incremental lifecycle, or when a piece is ready for evaluation in an iterative lifecycle.
The key is to make a real commitment. If the managers can't commit, put this project on the project portfolio backlog for now . You can always move it from the backlog to a committed project when you have people and resources available.