< Previous | Next >

Lesson 4: Assign dependencies between project activities

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:

  1. 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.
    1. In the Schedule Gantt viewlet, click the splitter bar to open the Gantt chart view. Click the Dependency icon Dependency icon to enable the dependency creation mode. When enabled, the Dependency icon is highlighted with a blue background.
    2. 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.
      Develop project creation framework hover text.
    3. Now click the successor task, "Run unit tests". An arrow indicates the dependency relationship. Click Save.
      Dependency arrow in Gantt view
  2. Now, create a dependency between the tasks, "Run unit tests" and "Deliver Iteration 1 build".
    1. Ensure that the Dependency icon is highlighted. Click the predecessor task "Run unit tests", and then click the successor task, "Deliver Iteration 1 build".
    2. Click Save.
      Dependency arrows in Gantt view
  3. 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:
    1. 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.
  4. 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:
    1. 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.
  5. 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. Dependencies
    Number 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.
  6. To resolve the dependencies, in the WBS tree, click the project. In the Schedule Gantt viewlet, click the Resolve dependency icon Resolve dependency. 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.

Lesson checkpoint

In this lesson, you learned about the following concepts:
  • What dependencies are
  • How to create dependencies
  • The effect of dependencies on project schedules
< Previous | Next >

Feedback