Choose the right type of task dependency

By Bonnie Biafore

When project execution begins, a project takes on a life of its own. The project schedule that you so carefully craft during the planning phase becomes obsolete almost immediately, if not sooner. But taking the time during project planning to define task dependencies correctly results in a schedule that's easy to maintain regardless of what happens — or how quickly.

If you've ever used a handheld calculator to calculate the start dates, finish dates, and slack for a task, you already know the value of task dependencies and Microsoft Office Project Professional 2003 calculations. When you set the type of dependency between two tasks, Project can use that relationship to recalculate the schedule if the dates or durations change.

The ideal project schedule is one that mirrors real life. To achieve this ideal, every dependency that exists in real life must exist in the Project schedule.

Use task dependencies, not date constraints

Applying dependencies to tasks is preferable to setting hard dates in a schedule. Fixed dates applied to tasks, called date constraints, quickly increase the effort to maintain the schedule. If you use date constraints, you often must manually recalculate dates when the schedule changes.

However, date constraints don't always cause schedule problems. For example, when tasks occur on specific dates, such as training classes or conferences, date constraints keep those events tied to the correct dates on the calendar.

Chronology vs. control

Although tasks are called either successors or predecessors, a dependency is not really about chronology, but about control. A task dependency specifies which of two tasks controls the scheduling of the other. The independent task (the predecessor) determines the scheduling of the dependent task (the successor). As you'll see in the following section, a predecessor can occur before, at the same time as, or after its successor.

Types of task dependencies

There are four types of task dependencies: finish-to-start, start-to-start, finish-to-finish, and start-to-finish.

Finish-to-start (FS)

This type of dependency is the most common, perhaps because control and chronology work in the same direction in this dependency. After the predecessor task finishes, the successor task starts. For example:

  • After members of a construction crew set up the concrete forms for a foundation, they start to pour the concrete into the forms.

— or —

  • After the concrete is cured, the carpenters start to frame the house.

Start-to-start (SS)

This type of dependency indicates that the start of one task triggers the start of the second task. A lag time between tasks is often used with this type of dependency. For example:

  • Members of a road crew start to place traffic cones to close a lane on the highway. Ten minutes after they start, the line-painting machine starts to paint lines.

— or —

  • A book author starts writing a manuscript. One day after the author submits the first chapter, the editor starts revising the manuscript.

Finish-to-finish (FF)

This type of dependency includes one task that continues only as long as another task is in progress. For example:

  • Traffic flaggers direct traffic until construction work is completed.

— or —

  • The concession stand at a sports arena stops serving refreshments when the game ends. In fact, it often stops serving alcoholic beverages two hours before the game ends (a lead time on the dependency).

Start-to-finish (SF)

This type of dependency turns most people's concept of predecessor and successor tasks upside down. The confusion occurs because in most start-to-finish cases, the predecessor occurs after the successor. And the start of the predecessor controls the finish of the successor. For example:

Conference registration must start whether the registration booth is ready or not. Therefore, the start of the task "Check in registered attendees" controls the end of the task "Set up registration booth."

Choose the right dependency type

Many project managers think about which task occurs first when choosing dependencies. However, you can more effectively select the dependency type if you ask questions that help you identify which tasks are in control. If the task dependency type isn't obvious to you, follow these steps to identify the characteristics of the dependency that you need:

  1. Identify the predecessors to a task     Ask the question, "What does this task need before it can start?" Identifying predecessors is often easier than finding successors. By asking this question, you can determine the tasks that act as predecessors for the task you're evaluating.
  2. Determine whether the start or finish of the predecessor controls the scheduling of the successor     For example, if the finish of the predecessor controls the second task, the dependency type must be either finish-to-finish or finish-to-start.
  3. Determine whether the predecessor triggers the start or finish of the successor     For example, if the result in the previous step is "finish" and the result for this step is "start," the dependency type is finish-to-start.
  4. To further define the task relationships, identify whether the dependency uses lead time or lag time     In Project, you can further qualify the relationship between two tasks with a lag or a lead. For example, if you can't start to add the second coat of paint until the first coat has dried, the finish-to-start dependency between the "Paint first coat" task and the "Paint second coat" task includes a four-hour lag.

You can define lag or lead times based on duration or based on a percentage of the duration of the predecessor task.

Automated dependencies

Project can automatically adjust dependencies for you as you modify tasks — which can be a help or a hindrance. While you're developing a schedule, automated dependencies are a great timesaver. You can insert, remove, and rearrange tasks and expect Project to add or modify the dependencies for you. For example, if you add three tasks in a row to a project phase, Project automatically links the three new tasks to the existing predecessor and successor tasks.

When you create a new project schedule, the automated dependencies feature is turned on by default so that Project can re-establish task dependencies. So, when you insert a new task between two existing tasks, Project automatically removes the dependency between the two original tasks and creates finish-to-start dependencies to link the new task to its predecessor and successor tasks.

After your schedule is set and the task dependencies are the way you want them, turn off this feature to prevent Project from making changes that you don't intend — for example, when you want to move a task but still maintain all of its task dependencies.

To turn off automated dependencies, on the Tools menu, click Options, and then click the Schedule tab. Clear the Autolink inserted or moved tasks check box.

More information

About the author     Bonnie Biafore is a PMI (Project Management Institute)-certified Project Management Professional (PMP). She is a consultant, trainer, speaker, and award-winning author of several books about investing, personal finance, and project management, including On Time! On Track! On Target! Managing Your Projects Successfully with Microsoft® Project (Microsoft Press, 2006).

Applies to:
Project 2003