Don't use task dependencies to model resource constraints
For example, if resource R1 is assigned to tasks T1 and T2, the planner will model a dependency between the tasks to "make the dates come out right". They understand that a resource can't be asked to work on two tasks simultaneously, so they want to spread out the work and schedule the tasks one after the other.
But just because a resource is assigned to two separate tasks does not mean that there are dependencies between the two tasks. In fact, it is not necessary to introduce task dependencies in order to level resources.
Here is the basic workflow I use when planning a project:
- Define the activities - What needs to be accomplished in order for this project to be successful?
- Sequence the activities - In what order - if any - do these things need to happen?
- Identify activity dependencies (AKA "predecessors" ) - Is it necessary for one activity to complete before another can begin?
- Estimate activity effort - Given known resource capabilities and constraints, how long will it take to complete this activity?
- Assign resources to specific activities.
You'll notice that sequencing project activities and identifying dependencies are completely independent from assigning resources.
For those who don't know, the idea of not over-scheduling is called resource leveling. You can use the MS Project resource leveling function, and your start and end dates will automatically be calculated for you. Here's how it works:
1. Create a new project in MS project. Go to Gantt chart view and make sure you can see the Work column (Insert --> Column, then enter "work").
2. Enter 3 tasks called Task 1, Task 2, and Task 3. Assign work efforts of 8 hours to each. Do not enter any predecessor information.
3. Assign resource R1 to each of the 3 tasks.
In the Gantt chart view you will see that R1 is assigned to complete all three tasks on the same day. This is the point where planners go wrong. In order to help out ol' R1, they enter dependencies between the three tasks. While this does have the effect of spreading out the work, it also introduces an incorrect model of the task network.
Rather than enter predecessor information, go to Tools --> Level Resources and click the Level Now button. You'll see the tasks spread out to a more managable schedule. The stalwart R1 will thank you, and as someone who reviews and approved project plans, I'll thank you as well.