Improve critical path

Critical path(Timeline) – Asana Help Center (Understanding Dependencies in Project Management [2024] • Asana)calculation method in the function to highlight critical path in timeline is different from the critical path calculation method in the general project management field.
In the documentation, the Critical Path (Timeline) is described as follows:" Calculating your project’s critical path Your project’s critical path is the longest chain of dependent tasks that need to be completed for your project to be finished. However, subtasks are not included when calculating your critical path. Calculating how long it will take you to complete your project is done through task duration and dependencies between these tasks, including any time gaps."

Append: The result of executing the critical path is different between “Asana” and another company’s “PMsoftware”. I attach an image.


In addition,
Please refer to this document

In ISO21500, it states that “2.8 critical path sequence of activities that determine the earliest possible completion date for the project or phase”

The Gantt view has been added and there is an option to highlight the critical path, but I still find the display of the critical path unsettling.

In the figure below,
The critical path is highlighted as “1(1)-2(2)-4(3)-2(4)-1(5)”.
However, according to my understanding, “1(1)-2(2)-5(31)-2(4)-1(5)” is the critical path.

2 Likes

@Ka_Nishiyama I agree with you.

I’m not a fan of Gantt charts in general, but I’d thought I’d play around with it.

The way the Gantt view displays the critical path is incorrect. It should be the path that can’t afford any delays compared to planning.

I have the same experience, where it picks the wrong path.

@Marie @Emily_Roman Can you flag this for the involved team?

1 Like

Thanks for sharing your feedback, @Ka_Nishiyama and @Jan-Rienk!

I’ll create a task to our product team to investigate further and consider updates to critical path in future updates. I’ll let you know when I have any news :slight_smile:

2 Likes

I found out why the critical path calculation was strange.
It’s because there is no total number of days set for the tasks. Tasks have start and due date fields, but the start and due dates are both date fields, and there is nothing between them.

I noticed this when I was looking at this post.

I think duration would be a welcome addition anyway.

We’re not thinking in dates, we’re either thinking:

  • “when is this due and how long does this take” to calculate when to start
    or the other way round:
  • “when can we start and how long does this take” to calculate when it could be due

Related topics:

1 Like

Hi, @Jan-Rienk
Thank you for the information. This is the answer to the question about the period. It means that it can be set in the Gantt view. I’m wondering how it will be consistent with the timeline. I’ll check it out later.

2 Likes

I have since talked with support about this. I’ll add what I discussed here.

TLDR:
- Critical path is working as documented, so it is not clasified as a bug.
- I still think current functionality is problematic, and my feedback has been passed on to the product team

The issue with using the longest chain

The documentation describes the critical path as “the longest chain of dependent tasks that need to be completed for your project to be finished”. If you interpret that as the longest chain of dependent tasks between start of the first and end of the last task then technically the critical path isn’t wrong according to the documentation.

That’s not the whole story though, as the purpose of critical path in project management is to be aware of the path that can’t afford any delays.

Now Ideally, we’d calculate the critical path on the estimated time per task rather than the deadlines, but I’m fine with assuming the start and due dates are representing the amount of time needed to complete the task accurately.

If you look at my example you can see that a delay in task B would delay the entire project. Task C could be delayed for two days and not endanger timely project completion.

Still, Asana highlights the path through task C as the critical path, which is plainly wrong and misleading.

Using the critical path in this instance (prioritizing task C over B) would work to delay the project rather than ensure it is completed on time.
Now I know that Asana refuses to call something a bug when it functions according to the documentation, but it’s a problem nonetheless. And a bit of an embarrassing one if I’m honest.

=============

When managing a project, the critical path could be a great help in quickly determining what has priority.

Let’s say we’re at Friday 19th, and someone has fallen ill.

If task B isn’t started on Monday, it risks delaying the entire project.

When I can see the critical path (task B) at a glance, I can make sure it is staffed before the weekend.

I can worry about staffing the non-critical path (Taks C) on Monday.

Another argument is that it’s just wrong. Theory indicates how to determine the critical path with good reason, and launching a feature that you call critical path but assign your own (less useful) meaning to seems ill informed and misleading.

I don’t want to sound too harsh (I like Asana, I really do) but I’m choosing to be honest over being polite as I think this is more useful feedback.

The problem with using the longest chain from first start date to last end date

You can see here that you should be able to finish earlier when you shift deadlines in task B. It is however not a problem not to start B immediately after A, as this will not result a longer project time.

The critical path is not to indicate how long the project takes according to current planning, it is to indicate the path that determines the shortest possible project duration. This means any tasks that start before or end after the critical path are planned incorrectly.

image

Perhaps another visual indicator could be used to indicate an opportunity in finishing the project faster by re-planning task B?
Another indication of unnecessary long project times are tasks along the critical path that don’t start as soon as the previous task finishes, which could perhaps also be visualised.

In this example, red indicates the time wasted because of poorly planning the critical path in orange (assuming only working days)

This is the time that becomes available when the project is planned along the critical path:

  • Start with first critical path activity
  • Have immediate hand-offs between critical path activities
  • End with critical path activity

The problem with using the greater number of dependencies

The amount of dependencies is not relevant when calculating critical path, just that the dependency is there. What is relevant is duration. Looking at the example below the critical path chosen is indeed the one with the most dependencies, and I think this is incorrect and unhelpful. You will notice that we can a delay both task B and task D without any problems, but a delay in task C will delay the entire project.

Again ignoring the fact that estimated time is a better indicator, but for now let’s assume the time between start and due date is a decent indicator for the estimated processing time.

The sequence with the longest duration determines critical path.

This article by Asana about the critical path method correctly explains it. It’s about duration. And the duration determines the path where the handoffs should be instant to finish the project the fastest.

3 Likes

Really excellent post and discussion, @Jan-Rienk! :clap:

I agree with you that Asana’s definition of critical path is not correct. But also I’m confused. If you take your very first example:

Why does Asana choose A-C-D as the critical path???

If their definition (quoting their documentation as well as your post) is
image

Clearly A-B-D has a longer total duration than A-C-D. So why do they choose A-C-D as the critical path?

2 Likes

Hi @Phil_Seeman ,

Thanks for the compliment, glad to hear. :slight_smile:

The article at the end is not the documentation of this feature. The documentation is linked in the beginning of my post.

When there are paths of equal length ( last_due_date - first_start_date ) Asana is said to pick randomly (if the amount of dependencies is the same)

It looks however that Asana prefers the path with a shorter duration, but I’m not sure if that is a coincidence or not.

1 Like

I wish that statement were a joke but I fear you’re serious.

Anyway, while I disagree with an implementation that selects a path randomly in that scenario, it’s really a moot point because, as you well illustrate above, the underlying logic is not correct to begin with.

To me, the key factor they are not taking into account is the concept of float. They even mention it in their blog article but oddly then don’t use it in their actual logic. You can’t calculate a critical path without taking it into account.

2 Likes

Funny to realise I kind of explained the concept of float before I knew what it was called. :laughing:

1 Like

Yeah @Jan-Rienk you pretty much nailed it.

1 Like

Regarding the critical path,
I tried it again in Gantt view.
I wonder why it’s displayed like this.
I strongly hope that it will be improved soon.

I’m having the same issues with how Asana is calculating the critical path in Gantt view. As others have pointed out, it is not highlighting the path with longest duration. When will this be fixed?

1 Like