In this lesson, you will learn how to create Finish-to-Start
dependencies between project tasks. A Finish-to-Start dependency means
that the start of the successor activity depends on the completion
of the predecessor activity. This lesson is the final lesson in the
tutorial. At the end of this lesson, you will have a project with
a realistic expected schedule.
Use the Schedule Gantt viewlet to perform
this task. In the navigation bar, click Work,
and click the Schedule tab.
Dependencies are links between project activities, which
can be used to sequence tasks in time and in a logical order. Dependencies
are also used to create relationships between tasks that are dependent
on each other. When you use dependencies to create an activity sequence
and schedule for your project, you create a project that is not bound
by specific dates, and can easily accommodate changes in the schedule.
Dependency
creation is a two-step process: first, create the dependency relationships,
and second, resolve the dependencies to adjust the schedule dates.
To
create dependencies:
- In the WBS tree, expand the "Develop Work Management module"
project. First, we will create a Finish-to-Start dependency between
the first two tasks. This means that the second or successor task
cannot start until the first or predecessor task is complete.
- In the Schedule Gantt viewlet, click the splitter
bar to open the Gantt chart view. Click the Dependency icon
to enable the
dependency creation mode. When enabled, the Dependency icon is highlighted
with a blue background.
- In the WBS tree, click the predecessor task, "Develop
project creation framework". The corresponding row is highlighted
in the Gantt chart.
Note: To ensure that the correct element
is highlighted, hover the mouse over the task box in the Gantt chart.
The hover text indicates the name of the selected element.
- Now click the successor task, "Run unit tests". An arrow
indicates the dependency relationship. Click Save.
- Now, create a dependency between the tasks, "Run unit tests"
and "Deliver Iteration 1 build".
- Ensure that the Dependency icon is highlighted. Click
the predecessor task "Run unit tests", and then click the successor
task, "Deliver Iteration 1 build".
- Click Save.
- Now, create a Finish-to-Start dependency between the task,
"Deliver Iteration 1 build" and the task "Write scheduling rules".
This means that the tasks in Iteration 2 can start only after the
Iteration 1 final build is delivered. To create the dependency:
- In the Gantt chart view, with the dependency icon highlighted,
click the task, "Deliver Iteration 1 build", and then the task, "Write
scheduling rules". Click Save.
- Now, create another dependency to schedule the task, "Develop
scheduling algorithm" after the completion of the task "Write scheduling
rules". You can do that by creating another Finish-to-Start dependency:
- In the Gantt chart view, with the dependency icon highlighted,
click the "Write scheduling rules" task and then click the "Develop
scheduling algorithm" task. Click Save.
- Continue to define Finish-to-Start dependencies for the
remaining tasks. You will end up with dependencies as shown in the
following table (the element numbers shown in the table are not represented
in the application, and are shown here to conveniently identify dependency
relationships:
Table 1. DependenciesNumber |
Element type |
Name |
Predecessor |
1 |
Iteration |
Iteration 1: Project creation framework |
|
2 |
Task |
Develop project creation framework |
|
3 |
Task |
Run unit tests |
2 |
4 |
Task |
Deliver Iteration 1 build |
3 |
5 |
Iteration |
Iteration 2: Project scheduling service |
|
6 |
Summary Task |
Develop scheduling algorithm |
|
7 |
Task |
Write scheduling rules |
3 |
8 |
Task |
Develop scheduling algorithm |
7 |
9 |
Task |
Run unit tests |
8 |
10 |
Summary Task |
Integrate project creation and scheduling |
|
11 |
Task |
Write integration code |
9 |
12 |
Task |
Run unit tests |
11 |
13 |
Task |
Run system tests |
12 |
14 |
Task |
Deliver final build |
13 |
After creating these dependency relationships, resolve the
dependencies to adjust the schedule dates.
- To resolve the dependencies, in the WBS tree, click the
project. In the Schedule Gantt viewlet, click the Resolve
dependency icon
. On the confirmation
message, click Yes. The schedule
dates of the tasks are changed to incorporate the dependencies. For
example, Task 3, "Run unit tests", starts the day after Task 2, "Develop
project creation framework", is complete. Similarly, Task 4, "Deliver
Iteration 1 build" starts the day after Task 3, "Run unit tests",
is complete.
Look at the schedule dates for your project now. The project
duration is aggregated from the individual project tasks. The expected
end date of the project is the finish date of the last task. The start
and end dates for the project tasks are calculated based on the dependencies,
and the assigned task durations. Also, notice that the end dates are
calculated to keep up with the project calendar and the designated
working and non-working days.
The advantage of having a schedule
based on dependencies is that any changes to the work breakdown structure,
or in duration, are automatically adjusted by the dependencies, and
no manual refactoring is required. For example, if you change the
duration of a task to three days from one day, and then resolve the
dependencies again, the ensuing project schedule is automatically
adjusted as the dependent tasks are moved out to accommodate the change.
This
lesson is the final lesson of the tutorial; you now have a project
structure ready, and can assign resources to work on the project tasks.