Asana Dependencies: How to Know What’s Blocking What [VIDEO]

Most teams build their projects using due dates. Due dates matter and they keep a project moving. But they don't tell anyone when it's actually time to start working on a task.

That's what dependencies do. A dependency alerts you when a task you've been waiting on is ready to go. Without them, work gets stuck. Teammates chase each other for updates, and deadlines slip because nobody really knows what is blocking what.

This post explains how to use dependencies in Asana to make task relationships visible, and how to use the notification system to keep everyone up to date.

What a dependency actually is

Take the task “Write a design document”. You can see the dependency already on it: that task is blocking “Client design review call”. Open the review call task and you see the reverse relationship, it's blocked by “Write the design document”.

So every time you create a dependency, you're establishing a relationship between two tasks. Say Warwick is doing one and I'm doing the other. When I'm ready to work on mine, I can look first and see I'm blocked by his. I need to follow up with Warwick and be aware of when he finishes, because only when he finishes can I actually do my task. Those dependent relationships are a lot more visible and easier to look at.

Seeing dependencies in timeline view

In the timeline view you can visualise when tasks start and finish. Here you can see the same tasks, Warwick's and mine, with a little arrow showing his is blocking mine. Across the whole project I've linked tasks that are dependent on one another.

How to create a dependency

Creating dependencies is easy. When you create your task, go to the dependencies area, click add the dependency, and search for the task, for example “Design reports dashboard”. Then you establish whether this task is blocked by or blocking.

Blocked by means the other task has to be completed first, because this task is blocked by it.

The four dependency types (and which to use)

You can also choose the specific type of dependency from a dropdown. The default, which you'll use most of the time, is finish to start: when this task finishes, that one can start.

You could change it to finish to finish, where when one finishes the other is able to be finished. Or start to start, so when you start one you can start the other. Or the last option, when you start one you can finish the other. Most of the time you're going to use finish to start. Whichever you choose determines how the dependency looks in the timeline view.

A faster way: drag to create in the Gantt view

I find creating dependencies is quicker and easier in the timeline or Gantt view. Hover your mouse on a task. Grab the top left dot and drag it backwards onto another task, and you're saying that task is blocking this one. Click the x to remove it. Or grab the bottom right dot and drag it onto another task, and you're saying this task has to be done before that one can be completed.

Pro tip: build dependencies into a template

So you don't have to recreate dependencies every time you build a project, add them to a template. I'm building this as a project first, setting up all my dependencies, then later saving the project as a template.

Every time we've implemented this for a client, they love how much time it saves and how much more visibility they get into how projects are progressing and what's blocking what.

The failsafe when completing a blocked task

There are a couple more options to be aware of. If you're assigned a task that's blocked by another task and you try to complete it, Asana warns you: you're still blocked by a different task, are you sure you want to mark this as complete? It's a nice little failsafe so you don't accidentally complete things.

Using the critical path

If you're going to work in the timeline view, which works really well for dependencies, there's a dependencies settings section where you can enable the critical path.

The critical path is where Asana looks at the very last task in the project based on due date, and identifies the longest chain of dependent tasks. It follows that golden line all the way back through the milestones and tasks that feed it. It helps you identify the most critical tasks and the order in which you should handle them to get to project completion.

Date shifting and buffer options

In your project settings you'll also find dependency options, where you decide how dependency date shifting happens.

The first option is to maintain a buffer between tasks. If you shift a task out, the buffer in between can be maintained for downstream dependent tasks only, or for all dependent tasks, so everything stays connected.

Or, if you've had a delay and shift a task back, you might want to consume the buffer to catch up. Finally, you can choose to do none of this, so shifting a task doesn't impact any downstream tasks.

There's no right or wrong answer. I usually find consuming the buffer is best. With that on, if I shift a task back, the connected tasks shift along with it and the buffer in between is lost. A change to one task can have a knock-on effect to all of its dependent tasks.

Getting notified when a blocking task changes

One of the best things about dependencies is that if a task blocking your task gets changed, you get notified in your inbox. Here I'm told Warwick changed the due date on the blocking task to July 31st, so I now know my client design review call, which is blocked by his, might need its date reviewed. It's good to be aware of the change and adjust accordingly.

And when the blocking task is completed, you're notified again. It's now marked as done, so you can get started, because your task is no longer waiting on other tasks.

The payoff: stop chasing your team

The notifications alone are one of the reasons I love dependencies. I picture a relay race: my teammate comes up behind me, passes me the baton, and it's my turn to run to the finish line.

It solves a real problem. I don't have to chase my team for updates, asking have you done this yet, where's this at, why isn't that getting done. You look at the dependencies and see where the blockage is happening.

If you want to see it in action, watch the video. And if you'd like help unlocking features like this across your Asana setup, book an intro call with our team.

If you’d like help setting up Asana, you can book an introductory call here: https://minorco.com/asana-consulting/

FAQ

What is a dependency in Asana?

A dependency is a relationship between two tasks. One task is either blocking another or blocked by it. It tells you when a task you've been waiting on is ready to start, rather than just when it's due.

What are the dependency types in Asana?

There are four: finish to start (when one task finishes the next can start), finish to finish (when one finishes the other can be finished), start to start (when one starts the other can start), and start to finish (when one starts the other can be finished). Finish to start is the default and the one you'll use most.

How do I create a dependency in Asana?

In the task's dependencies area, click add the dependency, search for the task, and set whether it's blocked by or blocking. You can also drag between tasks in the timeline or Gantt view: drag from the top left dot to set a blocker, or the bottom right dot to set what this task blocks.

What is the critical path in Asana?

Enabled in the timeline view's dependency settings, the critical path identifies the longest chain of dependent tasks leading to the last task by due date. It helps you see the most critical tasks and the order to handle them in to reach project completion.

Will Asana notify me when a blocking task changes?

Yes. If a task blocking your task is changed or completed, you get a notification in your inbox, so you know when to review your dates or get started, without chasing your team for updates.