How to Set Task Dependencies in Microsoft Project

In this blog post, I’m going to walk you through how to set task dependencies in Microsoft Project. If you’ve ever opened a new schedule and wondered how to get Microsoft Project to automatically calculate your task dates — without manually typing a start and finish date for every single task — then this article is for you. Task dependencies are the answer, and once you understand them, you’ll never want to build a schedule without them.

If you would prefer to watch the YouTube video on this topic, click here or click the thumbnail below.

task dependencies

So what exactly is a task dependency? Simply put, a task dependency is a relationship between two tasks that tells Microsoft Project the order in which those tasks should occur. For example, suppose you’re managing a software implementation project for a company called Contoso. Before your team can begin testing the new system, they first have to finish installing it. That relationship — install first, then test — is a task dependency. When you define that relationship in your schedule, Microsoft Project automatically calculates when the testing task can begin based on when the installation task finishes. No manual date entry required.

In this article, I’ll walk you through all four dependency types that Microsoft Project supports, show you two different methods for applying each one, and explain how to add lag time and lead time to fine-tune your schedule. Let’s dive in!

The Four Task Dependency Types You Need to Know

Before we start clicking around in Microsoft Project, it’s worth taking a moment to understand the four dependency types available to you. Each one describes a different relationship between two tasks — specifically, between a predecessor (the task that drives the timing) and a successor (the task whose timing is controlled).

  • Finish to Start (FS): The successor task cannot begin until the predecessor task finishes. This is by far the most common dependency type and the one you’ll use most often.
  • Start to Start (SS): The successor task cannot start until the predecessor task starts. Use this when two tasks need to begin together or one can only begin once another is already underway.
  • Finish to Finish (FF): The successor task cannot finish until the predecessor task finishes. This is useful when two tasks must wrap up at the same time.
  • Start to Finish (SF): The successor task cannot finish until the predecessor task starts. This is the rarest dependency type and is used only in very specific scheduling scenarios.

One important thing to note is that Microsoft Project also allows you to apply lag time (a delay between tasks) or lead time (an overlap between tasks) to any of these dependency types. I’ll cover both of those at the end of this article.

How to Set a Finish to Start (FS) Dependency

The Finish to Start dependency is the default in Microsoft Project, and it’s the one that drives most project schedules. Here’s how to apply it using two different methods.

Method 1: Use the Link Tasks Button

  1. In the Gantt Chart view, select the predecessor task first, then hold the Ctrl key and select the successor task.
  2. On the Task tab in the ribbon, click the Link the Selected Tasks button — it looks like a chain link icon. You can also find this button on the Quick Access Toolbar if you’ve added it there.

Notice that Microsoft Project immediately draws a link line between the two tasks on the Gantt bar chart, and the successor task’s start date automatically adjusts based on when the predecessor finishes.

Method 2: Use the Predecessors Column

  1. Click in the Predecessors column for the successor task. If you don’t see this column, right-click any column header and insert it.
  2. Type the row ID number of the predecessor task — for example, 4 — and press Enter.

Notice that because Finish to Start is the default dependency type, you don’t need to type any additional code. Microsoft Project applies the FS relationship automatically.

How to Set a Start to Start (SS) Dependency

A Start to Start dependency is useful when two tasks need to begin at the same time — or when a successor task can only begin once its predecessor has already started. Here’s how to set it up.

Method 1: Use the Task Dependency Dialog

  1. First, link the two tasks using the Link the Selected Tasks button, as described above. This creates a Finish to Start dependency by default.
  2. On the Gantt bar chart, double-click the arrowhead on the link line between the two tasks.
  3. In the Task Dependency dialog that appears, open the Type pick list and select Start to Start.
  4. Click OK.

Method 2: Use the Predecessors Column

  1. Click in the Predecessors column for the successor task.
  2. Type the predecessor’s row ID followed by ss — for example, 7ss — and press Enter.

Notice that the link line on the Gantt chart updates to reflect the new Start to Start relationship.

How to Set a Finish to Finish (FF) Dependency

A Finish to Finish dependency means the successor task cannot finish until the predecessor task finishes. This comes in handy when two parallel tasks must wrap up together — for instance, user documentation and a training video that both need to be complete before a product launch.

Method 1: Use the Task Dependency Dialog

  1. Link the two tasks using the Link the Selected Tasks button to create the initial dependency.
  2. Double-click the arrowhead on the link line between the two tasks.
  3. In the Task Dependency dialog, open the Type pick list and select Finish to Finish.
  4. Click OK.

Method 2: Use the Predecessors Column

  1. Click in the Predecessors column for the successor task.
  2. Type the predecessor’s row ID followed by ff — for example, 10ff — and press Enter.

How to Set a Start to Finish (SF) Dependency

The Start to Finish dependency is the least commonly used of the four types. In this relationship, the successor task cannot finish until the predecessor task starts. You might encounter this in scenarios like just-in-time scheduling or shift handoff situations. Most project managers will rarely — if ever — need this one, but it’s good to know it exists.

Method 1: Use the Task Dependency Dialog

  1. Link the two tasks using the Link the Selected Tasks button.
  2. Double-click the arrowhead on the link line between the two tasks.
  3. In the Task Dependency dialog, open the Type pick list and select Start to Finish.
  4. Click OK.

Method 2: Use the Predecessors Column

  1. Click in the Predecessors column for the successor task.
  2. Type the predecessor’s row ID followed by sf — for example, 13sf — and press Enter.

How to Add Lag Time Between Tasks

Sometimes a successor task can’t start immediately after its predecessor finishes — there’s a required waiting period. For example, suppose your project includes a task called Pour Concrete Foundation, and the successor task is Begin Framing. You know the concrete needs 10 days to cure before framing can begin. That 10-day wait is called lag time, and here’s how to add it.

  1. Double-click the arrowhead on the link line between the two tasks to open the Task Dependency dialog.
  2. Leave the Type set to Finish to Start (or whichever type is appropriate).
  3. In the Lag field, type the amount of lag time — for example, 10d for 10 days.
  4. Click OK.

Notice that Microsoft Project pushes the successor task’s start date forward by 10 days after the predecessor finishes, giving your concrete the time it needs to cure before framing begins.

How to Add Lead Time Between Tasks

Lead time is the opposite of lag time — it creates an overlap between tasks, allowing the successor to start before its predecessor has fully finished. In Microsoft Project, you enter lead time as a negative lag value. For example, suppose your team can begin writing test scripts 2 days before the development task is complete. Here’s how to set that up.

  1. Double-click the arrowhead on the link line between the two tasks to open the Task Dependency dialog.
  2. Leave the Type set to Finish to Start.
  3. In the Lag field, type a negative value — for example, -2d for a 2-day overlap.
  4. Click OK.

Notice that the successor task now starts 2 days earlier than it otherwise would — overlapping with the end of its predecessor. That’s lead time in action.

If you want to go deeper than task dependencies and build truly professional, well-structured Microsoft Project schedules, I cover all of this — and much more — in my training courses. Whether you’re just getting started or looking to sharpen your advanced skills, you can view Dale’s Microsoft Project training courses.

Wrapping Up

And that’s it! You now know how to apply all four task dependency types in Microsoft Project — Finish to Start, Start to Start, Finish to Finish, and Start to Finish — using both the Link Tasks button and the Predecessors column. You also know how to fine-tune those relationships with lag time and lead time. With these tools in your toolkit, you can build schedules that accurately reflect how your project work actually flows, and let Microsoft Project do the date-calculation heavy lifting for you.

If you have any questions about what we covered here, drop them in the comments section below. I’d love to hear from you!

Frequently Asked Questions

What is the most commonly used task dependency type in Microsoft Project?

The Finish to Start (FS) dependency is by far the most commonly used type. It simply means the successor task cannot start until the predecessor task finishes — which reflects how most real-world project work is sequenced.

Can I link more than two tasks at once in Microsoft Project?

Yes! You can select multiple tasks at once and click the Link the Selected Tasks button. Microsoft Project will create a chain of Finish to Start dependencies from the first selected task down to the last. This is a great time-saver when you’re setting up a long sequence of tasks.

What’s the difference between lag time and lead time?

Lag time adds a delay between two linked tasks — for example, waiting for paint to dry before applying a second coat. Lead time creates an overlap, allowing a successor task to begin before its predecessor is fully complete. In Microsoft Project, you enter lead time as a negative lag value in the Task Dependency dialog.

How do I remove a task dependency in Microsoft Project?

There are a few ways to do this. You can double-click the arrowhead on the link line to open the Task Dependency dialog and click Delete. Alternatively, you can select both linked tasks and click the Unlink Tasks button on the Task tab in the ribbon. You can also clear the value in the Predecessors column for the successor task.

Why should I use task dependencies instead of manually entering dates?

Manually entering dates might seem faster at first, but it creates a brittle schedule. When something changes — and it always does — you’d have to manually update every affected date throughout the project. Task dependencies let Microsoft Project recalculate your schedule automatically whenever a change occurs, saving you significant time and reducing the risk of errors.

Can I enter multiple predecessors for a single task?

Absolutely. A task can have as many predecessors as needed. In the Predecessors column, simply type each predecessor ID separated by a comma — for example, 4,6,8. Microsoft Project will schedule the successor task to begin only after all of its predecessors have met their dependency conditions.

Where can I learn more about task dependencies in Microsoft Project?

Dale Howard has a library of free tutorials on his YouTube channel, plus in-depth training courses at dalehowardmvp.com.

Ready to master Microsoft Project?

Task dependencies are just the beginning. Dale’s step-by-step training courses will take you from the fundamentals all the way through advanced scheduling techniques — at your own pace. Whether you’re brand new to Microsoft Project or looking to level up your skills, there’s a course designed for you.View Dale’s Training Courses

One response to “How to Set Task Dependencies in Microsoft Project”

Leave a Reply

Your email address will not be published. Required fields are marked *

Are you human? Please solve:Captcha