As you know, projects are made up of tasks.
Together, these tasks should represent the entire scope of work that
needs to be completed in order to successfully finish the project. In
that sense, all tasks of a project are connected; they all contribute
to the successful completion of the project.
However, some tasks are linked to each other in greater detail. There are two types of tasks when working on a project: summary tasks and subtasks.
Summary tasks provide summary information about the tasks that are
subordinate to the summary within a project, and the subtasks are the
detailed tasks that must be accomplished to complete the summary tasks.
For example, if you had a project called Home Move Plan, a summary task
would be Packing, and subtasks would be Inventory and Organize All
Possessions, Clean Closets and Storage Areas, Conduct a Sale or Make
Donations, and so on. The subtasks are detailed tasks of the summary
task, and they can (and should) be logically linked to each other. The
total span of time, from the earliest start date to the latest finish
date, for all the subtasks is the duration of the summary task. These
types of relationships between tasks, and how they apply to Project,
will be discussed in the following sections.
Understanding Task Relationships
Some tasks in a project often cannot start until one
or more other tasks have finished. Usually this is because a task might
need to use the output generated by another task. In the example of
moving to a new house, you must calculate your expenses before you can
determine the best method of moving. Therefore, the start of the task
Determine the Best Method of Moving is determined by, and should be
linked to, the finish of the task Calculate Moving Expenses. The link
expresses that the schedule for determining the best moving method is
dependent on the schedule for calculating your expenses, because you
cannot make the decision until you know your moving budget.
A novice scheduler in this moving project might just
list the tasks and type in start and finish dates for all the tasks
using Manually Scheduled mode. But if the scheduler later finds out
that for some reason the Calculate Moving Expenses task will be
delayed, he or she will then have to go through the entire project,
typing in later start and finish dates for all the tasks that will be
affected by the initial delay; an inefficient and error-prone process.
When project schedule tasks start or finish dates are manually entered
on an auto-scheduled task, a Constrained Task symbol is added to the
Indicator column. Constraints are not added to Manually Scheduled tasks.
However, if the auto-scheduled tasks are created in
Project and dependency links are defined, the scheduler can simply
enter a delayed start date for Calculate Moving Expenses, and Project
calculates the new start and finish dates for all the tasks that are
dependent, directly or indirectly, on that task. To correct the
schedule due to a delay, all the scheduler has to do is modify the task
(the start date or the duration), and all the other tasks will be
recalculated and those changes highlighted. The reason you take the
time to define links between tasks is so that Project can recalculate
the schedule for you quickly when there is a schedule change that
affects other tasks.
Defining Dependency Links
Tasks are linked to show a dependency relationship as predecessor and successor
tasks. The predecessor task determines the schedule of the successor,
or dependent task. The terms predecessor and successor are used to
refer to the direction of the link and not the position of the tasks.
You will see that more sophisticated linking can create a situation
where successor tasks begin before predecessor tasks are accomplished,
even though the successor tasks depend on the predecessor tasks for
completion.
To illustrate usage of the terms successor and predecessor,
suppose you need to schedule the painting of a room. Four tasks are
involved: Put on the Protective Tape, Apply the Primer, Apply Paint,
and Clean Up. The start of Apply Paint depends on the finish of Apply
Primer; therefore, Apply Primer is the predecessor to Apply Paint.
Similarly, Apply Paint is the predecessor to Clean Up (because you
cannot clean up until you have applied the paint). In theory, Clean Up
is the successor to Apply Paint, because you want to clean up after all
the painting is done, but realistically you can begin to clean up
before completing the Apply Paint task.
The start date for the successor task should be linked to the finish date for the predecessor. As illustrated in Figure 1, Microsoft Project draws a small arrow from the finish of each predecessor task to the start of its successor task.
When you refer to a dependency link, the linked date
of the predecessor task (either its start or its finish) is named
first, and the linked date of the successor task is named last. In the
painting example in Figure 1, the dependency relationships for the first three tasks are called Finish-to-Start links
because the predecessor’s finish determines the successor’s start.
Finish-to-Start is the most common type of link, but there are three
other types you can use: Finish-to-Finish, Start-to-Start, and
Start-to-Finish.
By establishing the link in the painting example,
you instruct Microsoft Project to set the start date for Apply Paint
based on the scheduled finish date for Apply Primer. Any change that
alters the calculated finish date for the predecessor causes Project to
also reschedule the start date for the dependent or successor task. If
you define task links, Project automatically reschedules dependent
tasks when the schedule for the predecessor changes.
When you link two tasks in manual task mode, Project
shifts the start date of the successor task to the finish date of the
processor task as if the tasks were auto-scheduled. However, changes to
the predecessor task will not automatically propagate to the successor.
The successor tasks will be highlighted with a dashed “warning”
outline, indicating that the task would move if it were auto-scheduled.
Caution
Do not link two unrelated
tasks just to level out the workload for a resource who is assigned to
work on both tasks. It is true that the link forces Project to schedule
the tasks one after the other, thus allowing the worker to complete one
task before starting the next. But if the worker is later removed from
working on one of the tasks, there is no way to tell that the link no
longer serves a purpose and can be removed (unless you just happen to
remember it or create a note on the task), and you will be left with an
unnecessary delay that could prolong the finish of your project. The
preferred way to deal with this problem is to delay one of the tasks by using the Leveling Delay Field. |
Defining the Types of Dependency Link Relationships
You can create four types of dependency
relationships, depending on whether you use the start dates or finish
dates when linking tasks. The name for each dependency type includes a
reference to the linked date for the predecessor (either its start date
or its finish date), followed by a reference to the linked date for the
dependent task (either its start or finish date). Therefore, a
Finish-to-Start relationship signifies that the finish date of the
predecessor task is used to schedule the start date of the dependent
task. The predecessor is referenced first, and then the dependent or
successor task is referenced.
Project usually uses two-letter code abbreviations for the four dependency types, as shown in Table 1.
The first letter in the code refers to the predecessor’s start or
finish, and the second letter refers to the dependent task. Thus, the
code for Finish-to-Start is “FS.” The following subsections describe
the different dependency types.
Table 1. The Linking Relationships in Microsoft Project
Code | Dependency Type | Meaning |
---|
FS | Finish-to-Start | Predecessor’s finish determines successor’s start. |
SS | Start-to-Start | Predecessor’s start determines successor’s start. |
FF | Finish-to-Finish | Predecessor’s finish determines successor’s finish. |
SF | Start-to-Finish | Predecessor’s start determines successor’s finish. |
By default, when you link tasks, they are defined as
a Finish-to-Start relationship. You can change this dependency
relationship type in the Task Information dialog box. After you have
established the link, open the Task Information dialog box for the
successor task by right-clicking on the task and selecting Task
Information. Then, on the Predecessors tab, you can change the
dependency relationship from the drop-down list in the Type column. Be
sure you choose correctly; remember that
the predecessor comes before the successor in the name (Start-to-Finish
means the predecessor’s start determines the successor’s finish).