Understanding Schedule Dependencies

This topic provides overviews of:

  • Dependency types and relationships.

  • Activities with multiple dependencies.

  • Dependencies across projects.

  • Copying projects with dependent activities.

A dependency is a logical relationship between two project activities in which the start or end date of one activity depends on the start or end date of another activity. The activity that depends on the other activity is the successor, and the activity that it depends on is the predecessor. The system calculates the successor activity's start date, end date, or duration based on the dependency relationship, dependency type, and calculation method that you establish.

You can define multiple activity successors and activity predecessors for each project activity. The system sets the start and end dates of new activities that are equal to the project start date. You can manually update the dates and duration, or use dependencies and constraints to determine the activity start and end dates.

The best practice for project activity scheduling is to set dependencies and constraints on all activities to drive the project schedule rather than manually updating every activity date. When you specify a dependency on an activity, the predecessor activity schedule might affect the successor activity schedule. If that successor activity has additional related dependencies, there can be a cascading effect on many activity dates. You can select the activity date cascade calculations option on the Project General - Program Management page to specify when to calculate activity dates and roll them up to summary activities. Delaying the summary date rollup can help you manage system performance.

This table identifies the system calculation processing based on the activity date cascade calculations options.

Activity Date Cascade Calculations Option

System Calculation Processing

Manual

The system does not calculate any of the activity schedule. You must manually enter the activity's start date, end date, and duration. The system does not roll up activity start and end dates to summary activities.

Delay Calculations Until Save

Certain date processing occurs immediately upon field edits, and other date processing and summary roll-ups occur when you save.

At save, the system rolls up the activity start and end dates to summary activities. Additionally, the system updates the successor activity dates as a result of dependencies, constraints, or changes to predecessor activities.

Realtime Calculation

Activity dependency changes and predecessor date changes flow through the schedule as soon as the changes are made. Summary activity date processing occurs immediately.

Define dependencies on the Activity Predecessors page where you specify predecessor projects, predecessor activities, dependency types, and lead or lag time. Dependency types that you can establish include:

  • End-to-Start: The start date of the successor activity is based on the end date of the predecessor activity.

  • End-to-End: The end date of the successor activity is based on the end date of the predecessor activity.

  • Start-to-Start: The start date of the successor activity is based on the start date of the predecessor activity.

  • Start-to-End: The end date of the successor activity is based on the start date of the predecessor activity.

Additionally, you can define a lag time or lead time for dependency relationships. Lag time is the delay between activities that have a dependency. Lead time is the overlap between activities that have a dependency.

Activity Date Calculation Methods

The system calculates activity start date, end date, and duration based on the calculation method that you specify at the activity level and the lag or lead time that you specify when you create the dependency.

You specify the calculation method in the Calculate field on the Project Activities page or the Activity Definitions - General Information page. The available options are:

  • Duration: The system calculates the duration, in whole work days, of the activity based on the start date and end date using this formula: (End Date) – (Start Date) = (Duration).

  • End Date: The system calculates the end date of the activity based on the start date and duration using this formula: (Start Date) + (Duration) = (End Date).

  • Start Date: The system calculates the start date of the activity based on the duration and end date using this formula: (End Date) – (Duration) = (Start Date).

Specify lead or lag time, in whole work days, in the Lag field on the Activity Predecessors page.

Lag time is the delay between activities that have a dependency. For example, if you need a two-day delay between the end of one activity and the start of another, you can establish an end-to-start dependency and specify a lag time of two days. Lag time is expressed with a positive whole number in the Lag column of the Activity Predecessors page.

Lead time is the overlap between activities that have a dependency. For example, if an activity can start when its predecessor is two weeks from its end date, you can establish and end-to-start dependency with a lead time of ten days for the successor activity. Lead time is expressed with a negative whole number in the Lag column of the Activity Predecessors page.

End-to-Start Dependencies

For an end-to-start dependency, the system sets the start date of the successor activity to the next working day after the predecessor's end date plus or minus any lag or lead time. When the calculation method is:

  • End Date: The system sets the successor's end date to its new start date plus the duration, plus or minus any lag or lead time.

  • Duration: The end date remains as it was and the system sets the duration to the number of working days from the new start date to the existing end date, plus or minus and lag or lead time.

Note: You cannot set an end-to-start dependency on an activity that has the start date calculation method.

This table shows activities, durations, start dates, and end dates before you establish the end-to-start dependency:

Activity

Duration

Start Date

End Date

Develop

15 days

June 1 (Monday)

June 19 (Friday)

Unit Test

5 days

June 1 (Monday)

June 5 (Friday)

This table shows the effect on the successor activity start and end dates based on the end-to-start dependency with an end date calculation method:

Dependency Relationship

Dependency Type

Lag

Activity

Duration

Start Date

End Date

Predecessor

Develop

15 days

June 1 (Monday)

June 19 (Friday)

Successor

End-to-Start on Develop Activity

2 days

Unit Test

5 days

June 24 (Wednesday)

June 30 (Tuesday)

Note: For the examples in this topic, the duration, start date, and end date are based on the work days in a business calendar with Monday-Friday work weeks.

End-to-End Dependencies

For an end-to-end dependency, the system sets the successor activity's end date to the predecessor activity's end date plus or minus any lag or lead time. When the calculation method is:

  • Start Date: The system sets the successor's start date to its end date minus the duration, plus or minus any lag or lead time.

  • Duration: The start date remains as it was and the system sets the duration to the number of working days from the new end date to the existing start date, plus or minus and lag or lead time.

Note: You cannot set an end-to-end dependency on an activity that has the end date calculation method.

Activity

Duration

Start Date

End Date

Develop

15 days

June 1 (Monday)

June 19 (Friday)

Unit Test

5 days

June 1 (Monday)

June 5 (Friday)

Dependency Relationship

Dependency Type

Lag

Activity

Duration

Start Date

End Date

Predecessor

Develop

15 days

June 1 (Monday)

June 19 (Friday)

Successor

End-to-End on Develop Activity

–1 day (Lead)

Unit Test

5 days

June 12 (Friday)

June 18 (Thursday)

Start-to-Start Dependencies

For a start-to-start dependency, the system sets the successor activity's start date to the predecessor activity's start date plus or minus any lag or lead time. When the calculation method is:

  • End Date: The system sets the successor's end date to its start date plus the duration, plus or minus any lag or lead time.

  • Duration: The end date remains as it was and the system sets the duration to the number of working days from the new start date to the existing end date, plus or minus and lag or lead time.

Note: You cannot set a start-to-start dependency on an activity that has the start date calculation method.

Activity

Duration

Start Date

End Date

Develop

15 days

June 1 (Monday)

June 19 (Friday)

Unit Test

5 days

June 15 (Monday)

June 19 (Friday)

Dependency Relationship

Dependency Type

Lag

Activity

Duration

Start Date

End Date

Predecessor

Develop

15 days

June 1 (Monday)

June 19 (Friday)

Successor

Start-to-Start on Develop Activity

2 days

Unit Test

5 days

June 3 (Wednesday)

June 9 (Tuesday)

Start-to-End Dependencies

For a start-to-end dependency, the system sets the successor activity's end date to the predecessor activity's start date plus or minus any lag or lead time. When the calculation method is:

  • Start Date: The system sets the successor's start date to its end date minus the duration, plus or minus any lag or lead time.

  • Duration: The start date remains as it was and the system sets the duration to the number of working days from the new end date to the existing start date, plus or minus and lag or lead time.

Note: You cannot set a start-to-end dependency on an activity that has the end date calculation method.

Activity

Duration

Start Date

End Date

Develop

15 days

June 1 (Monday)

June 19 (Friday)

Unit Test

5 days

June 1 (Monday)

June 5 (Friday)

Dependency Relationship

Dependency Type

Lag

Activity

Duration

Start Date

End Date

Predecessor

Develop

15 days

June 1 (Monday)

June 19 (Friday)

Successor

Start-to-End on Develop Activity

0 days

Unit Test

5 days

May 26 (Tuesday)

June 1 (Monday)

You can set one or more dependencies on a successor activity. Each of these dependencies can consist of different types, such as an end-to-end dependency with a predecessor activity along with an end-to-start dependency with another predecessor activity. Each dependency can yield different effects on the successor's start and end dates. The system sets the successor dates and duration based on the predecessor activity that drives the successor dates to the latest date.

Example One of a Successor Activity with Multiple Dependencies

Activity

Duration

Start Date

End Date

Functional Design

10 days

June 1 (Monday)

June 12 (Friday)

Usability Design

2 days

June 1 (Monday)

June 2 (Tuesday)

Develop

15 days

June 1 (Monday)

June 19 (Friday)

Dependency Relationship

Dependency Type

Activity

Duration

Start Date

End Date

Predecessor

Functional Design

10 days

June 1 (Monday)

June 12 (Friday)

Predecessor

Usability Design

2 days

June 1 (Monday)

June 2 (Tuesday)

Successor

  • End-to-Start on Functional Design

  • Start-to-Start on Usability Design

Develop

15 days

June 15 (Monday)

July 3(Friday)

The Functional Design and Usability Design activities are both predecessors to the Develop activity, However, the system uses the Functional Design activity end date to determine the Develop activity start and end dates. The next working day after the Functional Design activity end date drives the Develop activity dates to be later than if it was driven by the Usability Design activity start date.

Example Two of a Successor Activity with Multiple Dependencies

Activity

Duration

Start Date

End Date

Functional Design

10 days

June 1 (Monday)

June 12 (Friday)

Usability Design

2 days

June 1 (Monday)

June 2 (Tuesday)

Develop

15 days

June 1 (Monday)

June 19 (Friday)

Unit Test

7 days

June 1 (Monday)

June 9 (Tuesday)

Dependency Relationship

Dependency Type

Activity

Duration

Start Date

End Date

Predecessor

Functional Design

10 days

June 1 (Monday)

June 12 (Friday)

Predecessor

Usability Design

2 days

June 1 (Monday)

June 2 (Tuesday)

Predecessor

Develop

15 days

June 1 (Monday)

June 19 (Friday)

Successor

  • End-to-Start on Functional Design

  • Start-to-Start on Usability Design

  • End-to-Start on Develop

Unit Test

7 days

June 22 (Monday)

June 30 (Tuesday)

The system uses the Develop activity to determine the Unit Test activity's dates. The end date for the Develop activity drives the Unit Test activity dates to be later than the Functional Design activity end date and the Usability Design activity start date.

Use the Activity Predecessors page to define a dependency between a successor activity on one project and a predecessor activity on a different project. You can define dependencies across projects as long as the projects are within the same business unit.

The system uses the scheduling calculation method that is specified at the project level of the successor activity if the successor's dates must change to align with the new dependency relationship. The system allows multiple levels of cross-project dependencies.

On project templates, you can set up dependencies within a single project. The system calculates the correct activity start dates and end dates for the new project based on the dependency. If you create projects from copies of existing projects, the system copies dependencies within that project to the target project.