Defining Project Dependencies

Often, our clients ask for tips and tricks on managing a complicated project plan through the VUCA world which is full of ambiguity, and volatility. We often land on dependency management – a neat addition to your toolbox that can vastly improve the planning experience.

The Project Management Reality

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

The ideal project plan is one that mirrors real life. To achieve this ideal, the dependencies that exist in real life should be represented in the Project schedule.

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

In the world of Microsoft Project, there are four types of task dependencies: finish-to-start, start-to-start, finish-to-finish, and start-to-finish.

Finish-to-Start (FS)

Example: If we were planning a project to make a cake, you might use a finish-to-start dependency between the “Bake cake” and “Decorate cake” tasks. When the “Bake cake” task is finished, the “Decorate cake” task begins.

Start-to-Start (SS)

This type of dependency indicates that the start of one task triggers the start of the second task. Lag time between tasks is often used with this type of dependency.

Example: Going back to the cake example, let’s say you had planned to make the icing for the cake while the cake is baking in the oven. You can’t start making the icing until the cake has started baking, so you might use a start-to-start dependency between the “Bake cake” and “Make icing” tasks.

Finish-to-Finish (FF)

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

Example: In our cake example, let’s say there are some finishing touches to the decorations that you can’t finish until the cake is delivered.  You can use a finish-to-finish dependency between the “Decorate cake” and “Deliver cake” tasks.  When the “Decorate cake” task is finished, then the “Deliver cake” task can be completed.

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.

Example: If you need to create a task for billing the customer.  It begins when the customer requests the cake, but it can’t be completed until after the cake delivery has begun.  You can use a start-to-finish dependency between the “Deliver cake” and “Bill customer” tasks so that when the “Deliver cake” task has begun, it is okay for the “Bill customer” task to finish

Choosing 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 by asking 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. e.g. 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. e.g. If the result in the previous step is “finish” and the result for this step is “start”, the dependency type if finish-to-start.
  4. To further define the task relationships, identify whether the dependency uses lead time or lag time. e.g. If you can’t start to decorate the cake until the cake has cooled, the finish-to-start dependency between “bake cake” and “ice cake” include a 1-hour lag.

Taking the time to set up a plan with not just dependencies, but the RIGHT dependencies will enable you to deal with ambiguity and change throughout the project life much easier. As people say, if you fail to plan, you plan to fail.

If you’d like support with your project management, please don’t hesitate to get in touch.