When project execution begins, a project
takes on a life of its own. The project schedule that you so carefully
craft during the planning phase becomes obsolete almost immediately, if
not sooner. But taking the time during project planning to define task
dependencies correctly results in a schedule that's easy to maintain
regardless of what happens — or how quickly.
If you've ever used a handheld calculator to calculate the start
dates, finish dates, and slack for a task, you already know the value of
task dependencies and Microsoft Office Project Professional 2003
calculations. When you set the type of dependency between two tasks,
Project can use that relationship to recalculate the schedule if the
dates or durations change.
The ideal project schedule is one that mirrors real life. To achieve
this ideal, every dependency that exists in real life must exist in the
Project schedule.
Use task dependencies, not date constraints
Applying dependencies to tasks is preferable to setting hard dates in
a schedule. Fixed dates applied to tasks, called date constraints,
quickly increase the effort to maintain the schedule. If you use date
constraints, you often must manually recalculate dates when the schedule
changes.
However, date constraints don't always cause schedule problems. For
example, when tasks occur on specific dates, such as training classes or
conferences, date constraints keep those events tied to the correct
dates on the calendar.
Chronology vs. control
Although tasks are called either successors or predecessors, a
dependency is not really about chronology, but about control. A task
dependency specifies which of two tasks controls the scheduling of the
other. The independent task (the predecessor) determines the scheduling
of the dependent task (the successor). As you'll see in the following
section, a predecessor can occur before, at the same time as, or after
its successor.
Types of task dependencies
There are four types of task dependencies: finish-to-start, start-to-start, finish-to-finish, and start-to-finish.
Finish-to-start (FS)
This type of dependency is the most common, perhaps because control
and chronology work in the same direction in this dependency. After the
predecessor task finishes, the successor task starts. For example:
- After members of a construction crew set up the concrete forms for a foundation, they start to pour the concrete into the forms.
— or —
- After the concrete is cured, the carpenters start to frame the house.
Start-to-start (SS)
This type of dependency indicates that the start of one task triggers
the start of the second task. A lag time between tasks is often used
with this type of dependency. For example:
- Members of a road crew start to place traffic cones to close a
lane on the highway. Ten minutes after they start, the line-painting
machine starts to paint lines.
— or —
- A book author starts writing a manuscript. One day after the
author submits the first chapter, the editor starts revising the
manuscript.
Finish-to-finish (FF)
This type of dependency includes one task that continues only as long as another task is in progress. For example:
- Traffic flaggers direct traffic until construction work is completed.
— or —
- The concession stand at a sports arena stops serving refreshments
when the game ends. In fact, it often stops serving alcoholic beverages
two hours before the game ends (a lead time on the dependency).
Start-to-finish (SF)
This type of dependency turns most people's concept of predecessor
and successor tasks upside down. The confusion occurs because in most
start-to-finish cases, the predecessor occurs after the successor. And
the start of the predecessor controls the finish of the successor. For
example:
Conference registration must start whether the registration booth is
ready or not. Therefore, the start of the task "Check in registered
attendees" controls the end of the task "Set up registration booth."
Choose the right dependency type
Many project managers think about which task occurs first when
choosing dependencies. However, you can more effectively select the
dependency type if you ask questions that help you identify which tasks
are in control. If the task dependency type isn't obvious to you, follow
these steps to identify the characteristics of the dependency that you
need:
- Identify the predecessors to a task
Ask the question, "What does this task need before it can start?"
Identifying predecessors is often easier than finding successors. By
asking this question, you can determine the tasks that act as
predecessors for the task you're evaluating.
- Determine whether the start or finish of the predecessor controls the scheduling of the successor
For example, if the finish of the predecessor controls the second task,
the dependency type must be either finish-to-finish or finish-to-start.
- Determine whether the predecessor triggers the start or finish of the successor
For example, if the result in the previous step is "finish" and the
result for this step is "start," the dependency type is finish-to-start.
- To further define the task relationships, identify whether the dependency uses lead time or lag time
In Project, you can further qualify the relationship between two tasks
with a lag or a lead. For example, if you can't start to add the second
coat of paint until the first coat has dried, the finish-to-start
dependency between the "Paint first coat" task and the "Paint second
coat" task includes a four-hour lag.
You can define lag or lead times based on duration or based on a percentage of the duration of the predecessor task.
Automated dependencies
Project can automatically adjust dependencies for you as you modify
tasks — which can be a help or a hindrance. While you're developing a
schedule, automated dependencies are a great timesaver. You can insert,
remove, and rearrange tasks and expect Project to add or modify the
dependencies for you. For example, if you add three tasks in a row to a
project phase, Project automatically links the three new tasks to the
existing predecessor and successor tasks.
When you create a new project schedule, the automated dependencies
feature is turned on by default so that Project can re-establish task
dependencies. So, when you insert a new task between two existing tasks,
Project automatically removes the dependency between the two original
tasks and creates finish-to-start dependencies to link the new task to
its predecessor and successor tasks.
After your schedule is set and the task dependencies are the way you
want them, turn off this feature to prevent Project from making changes
that you don't intend — for example, when you want to move a task but
still maintain all of its task dependencies.
To turn off automated dependencies, on the
Tools menu, click
Options, and then click the
Schedule tab. Clear the
Autolink inserted or moved tasks check box.