Understanding a project's critical path gives the project manager visibility into which tasks may affect the project finish date. Tasks that cannot be delayed without affecting the project finish date are critical path tasks.
Critical tasks are active, incomplete tasks with zero or less slack. Slack is determined by the earliest date the task could finish and the latest date the task could finish. The difference between the early finish and late finish dates determine the amount of slack. Any task that is predecessor to a critical task is also critical.
Tasks that are on the "critical path" are tasks that will affect the project target date if their own target dates slips. The latest task in a project is always critical, because it determines the project's target date. If the last task in a project is a successor task, then both the last task and the task it succeeds are critical. Likewise, if a child task is critical, then higher level parent and summary tasks will also become critical due to the impact of the child task's date rollup.
The "All Tasks" row reflects the project start/target dates. The All Tasks Target Date will always match the latest target date in the task list.
The screenshot below shows a set of tasks, some of which are critical. The Gantt chart shows the critical tasks in red.
Constraints and Critical Path
Using constraints may result in tasks becoming critical even though they may not impact the project's target date. As you can see in the example below, only Task 1 is critical because if its target date slips, the project target date slips (Task 1 has the latest ending target date).
When Task 3 is changed to have a Finish No Later Than constraint, Task 3 also becomes a critical task because its slack becomes 0 or less. Though "critical," Task 3 will not impact the project target date; Task 1 is the only task on the critical path.
How to Shorten the Critical Path
To shorten the critical path, take one or more of the following actions:
Revise task dependencies
Change or remove constraints
Shorten the task duration
Set lead time between tasks with dependencies
Remove critical tasks