About Task Dependencies

Setting dependencies between tasks is a way to serialize the execution of tasks, making sure that one task does not start or finish until another task is started or finished. Setting slack time is a way to pad the start and finish dates so a task starts a certain number of days before or after another task starts or finishes. When a dependency is added for a task, the task dates for the task that is depended upon (the dependee task) determines the dates for the dependent task.

How Dependencies Work

If a dependency defines Task A as dependent upon Task B, Task B's start and finish date do not change as a result of this dependency. Only Task A's dates change and the change is a result of two components of the dependency:


  • Dependency Type

There are four types of dependencies:

FS (Finish-to-start). The selected task cannot start until this one finishes. This is the default task dependency.

SF (Start-to-finish). The selected task cannot finish until this task starts.

FF (Finish-to-finish). The selected task cannot finish until this task finishes.

SS (Start-to-start). The selected task cannot start until this task starts.

Once you insert a sub-task under a task, the task becomes a summary task (meaning it has children that determine its start and end dates). In that case, if the summary task had an FF or SF dependency, that dependency becomes invalid.


  • Slack Time

The number of days or hours before or after the date determined by the dependency type. For example, if the dependency type is Finish-to-Start, then the dependent task should start when the dependee finishes. If you specify a slack time of +1.0 day, then the dependent task should start 1 day after the dependee task finishes. A slack time of -1.0 day means the dependent task starts 1 day before the dependee finishes. You can also use hours to define slack time, such as +4.0 hours.

Below are examples of how dependency types and slack times impact task dates.

For each of these examples, assume the dependent task (the task the dependency is added to) is a task with a 2-day duration. Also assume the dependee task (the task specified in the dependency) is called FIXED TASK (indicating that its start and finish dates do not change as a result of the dependency). FIXED TASK is also a 2-day task and has these dates:

Start: Thur Jul 24, 2008

End: Fri Jul 25, 2008

The dependent task has this Dependency Type and Slack Time:

Will have this Estimated Start Date

And this Estimated Finish Date

Because the dependent task:

FS+0.0 d

Mon Jul 28, 2008

Tues Jul 29, 2008

cannot start until FIXED TASK finishes

FS+1.0 d

Tues Jul 29, 2008

Wed Jul 30, 2008

can start 1 day after or after the completion of the dependee FIXED TASK finishes

FS-1.0 d

Fri Jul 25, 2008

Mon Jul 28, 2008

cannot start until after FIXED TASK finishes minus one day, which means it starts the day the task finishes

SF+0.0 d

Wed Jul 23, 2008

Thur Jul 24, 2008

cannot finish before FIXED TASK starts so the system enters the earliest date allowable for the finish date: the day FIXED TASK starts

SF+1.0 d

Thur Jul 24, 2008

Fri Jul 25, 2008

cannot finish before FIXED TASK starts plus 1 day, so the task's finish date is 1 day after FIXED TASK starts

SF-1.0 d

Tues Jul 22, 2008

Wed Jul 23, 2008

cannot finish before FIXED TASK starts minus 1 day, so the task's finish is 1 day before FIXED TASK starts

SS+0.0 d

Thur Jul 24, 2008

Fri Jul 25, 2008

cannot start before FIXED TASK starts so the system enters the earliest start date allowable, which is the same as FIXED TASK's start date

SS+1.0 d

Fri Jul 25, 2008

Mon Jul 28, 2008

cannot start before FIXED TASK starts plus 1 day

SS-1.0 d

Wed Jul 23, 2008

Thur Jul 24, 2008

cannot start before FIXED TASK starts minus 1 day

FF+0.0 d

Thur Jul 24, 2008

Fri Jul 25, 2008

cannot finish before FIXED TASK finishes so the system enters the earliest date allowable for the task's finish date, which is the same as FIXED TASK's finish date

FF+1.0 d

Fri Jul 25, 2008

Mon Jul 28, 2008

cannot finish before FIXED TASK plus 1 day

FF-1.0 d

Wed Jul 23, 2008

Thur Jul 24, 2008

cannot finish before FIXED TASK minus 1 day

Since a project template WBS does not contain start and finish dates, when you add dependencies for template tasks, dates are not affected. When the tasks are using in a project or project concept, the defined dependencies will determine the start and finish dates.

Dependency Syntax

When shown in the WBS, the dependencies are abbreviated using this convention:

Task ID: [Dependency Type] [Number of Slack Days or Hours, if any]

Multiple dependencies are displayed with a comma separator. For example, if the task has two dependencies the column will look like this:

4:FS+2.0 d, 5:FS+12.0 d

The value displayed depends on the column width. If the column width is not sufficient, the user can mouse-over the entry to display all dependency details.

Furthermore, a dependency sequence can reflect a subproject in a master project or an external cross project dependency, as follows:

5:FS+12.0 d (subproject in a master project)
ProjectName:FS+12.0 d (external cross project dependency)

The default value "FS" is stored in the properties file. Possible values for the setting could be FS, FF, SS or SF. When you edit the Dependency field for FS values, you need only enter the dependency number. For example, if you enter "8", the system will append the ":FS" to the dependency number and the resulting dependency will be "8:FS".

Here are some examples of dependency abbreviations.

This Dependency:

Means this for the task that has the dependency:

3:FS+0.0 d

The task is dependent on task ID 3. The dependency is Finish-To-Start, which means task 3 must finish before the task can start.

2:SF+1.0 h

The task is dependent on task ID 2. The dependency is Start-To-Finish, which means task 2 must start before the task can finish. There is a slack time of 1 hour.

4:SS-3.0 d

The task is dependent on task ID 4. The dependency is Start-To-Start, which means task 4 must start before the task can start. There is a slack time of minus 3 days.

1:FF+5.0 d

The task is dependent on task ID 1. The dependency is Finish-To-Finish, which means task 1 must finish before the task can finish. There is a slack time of 5 days.

4:FS+0.0 d

The task is dependent on Task ID 4, with a dependency type of Finish-To-Start.

Cross Project Task Dependencies

It is possible to have cross Project Tasks dependencies within the Master Project schedule.


  • Only the Project Owner or the Project Lead can establish the task dependency between projects.
  • The Sub Project is added as a dependency to the selected task.
  • There can be dependencies or slack time between WBS tasks in one project to another WBS task in another project inside the Master WBS schedule.
  • Cross project dependencies also support the standard dependencies such as Finish-To-Start, Finish-To-Finish, Start-To-Start, Start-To-Finish dependency along with the lag and lead time.

For example consider two projects P2 and P3 to be added in the WBS of project P1. Task T21 of project P2 will be dependent on Task T31 of project P3 and vice versa. The WBS of P1 is shown below.

P1 WBS

P1

---P2

-------T21

---P3

-------T31

For information about adding a dependency to an external project and viewing external dependencies, see Listing Dependencies for a WBS Task.