When planning a software project, I wish to force Microsoft Project to keep several tasks that are dependent on each other and assigned to the same resource together, without other tasks interleaved by resource leveling.
For example, I have the tasks –
- Design CDataAccess
- Implement CDataAccess
- Optimize CDataAccess
I want them to follow one another in the GANTT without any other task (such as “Design CDBController”) appearing somewhere in between.
This is fairly unique to software development because “context switching” between tasks is a really bad idea.
Here is an example of the problem (which is a cut down version of the real GANTT) –
GANTT Example http://img36.imageshack.us/img36/5483/gantt.png
(As you can see – task 5 jumps in between tasks 2 and 3 because task 7 depends on it. In this particular example I would have wanted task 5 to either be before task 1 or after task 3).
I have a predecessor dependency set, such that optimization must happen after implementation, and implementation must happen after design, but this isn’t sufficient because it means that the tasks follow each other, but not necessarily IMMEDIATELY follow each other.
Playing with priorities can sometimes help, but things soon get too confusing to manage (a random change in priority in one place causes unintended changes elsewhere).
Is there a way to force such a requirement in Microsoft Project? I would have expected the ability to add a predecessor of type “Finish-to-Immediate-Start”…
Things that are possible but have drawbacks –
- Consolidating the three tasks into one (summing their durations). This is something I wish to avoid because I like smaller tasks in the GANTT. Making time estimates on large tasks is a lost cause – tasks must be small, or time estimates mean nothing.
- Adding explicit start dates. This doesn’t really solve the problem because it prohibits resource leveling from actually doing anything.
What you’re asking for isn’t directly possible in Project. The best suggestion I have for you is to create a summary task around tasks 1-3, assign the resource to that and remove the assignment from tasks 1-3. This will force the first three tasks to be leveled as a group.
You lose some power of Project when doing this however: reporting actuals and so forth on individual tasks will be made harder to do.