The Problem with "Just Scheduling"
Most project managers start the same way: open a spreadsheet, list tasks, assign dates, and hope for the best. It works until it doesn't.
The moment a task slips by three days, everything downstream shifts. But which tasks? By how much? And which delays actually matter versus the ones you can absorb?
Without a structured scheduling method, you're guessing. CPM scheduling exists to eliminate that guesswork.
What Is the Critical Path Method?
The Critical Path Method (CPM) is a scheduling algorithm that calculates the longest sequence of dependent tasks in your project. That sequence, the critical path, determines your minimum project duration.
Every task on the critical path has zero float. If any of them slips by a single day, the entire project end date moves.
Tasks not on the critical path have float (also called slack). Float is the amount of time a task can slip without affecting the project finish date.
Here's the key insight: not all delays are equal. A 5-day delay on a task with 20 days of float is irrelevant. A 1-day delay on a critical task pushes your deadline.
How CPM Actually Works
CPM uses two passes through your task network:
Forward Pass starts from the project start date and calculates the earliest each task can start and finish, based on its predecessors.
Backward Pass starts from the project end date and works backward to calculate the latest each task can start and finish without delaying the project.
The difference between earliest and latest dates gives you the total float for each task. Tasks where early and late dates are identical sit on the critical path.
What You Need for CPM
- A complete task list with estimated durations
- Dependencies between tasks, specifically which tasks must finish before others can start (finish-to-start is the most common relationship)
- A scheduling engine that can run the forward and backward passes automatically
That third point is where most teams struggle. Running CPM by hand is tedious for anything beyond 20 tasks. Doing it in a spreadsheet is error-prone and breaks every time you add or remove a dependency.
Why CPM Matters in Practice
You know where to focus
When your project has 200 tasks, you can't watch all of them equally. CPM tells you which 30-40 tasks are critical. Those are the ones that need daily attention.
You can absorb delays without panic
When a non-critical task slips, CPM tells you exactly how much float you have left. No emergency meetings. No weekend work. Just data.
Date changes cascade automatically
Change a task duration or add a dependency, and CPM recalculates every downstream date. No manual date-shifting across 50 rows of a spreadsheet.
You can answer "what if" questions
What if we add a week to the foundation work? What if we start electrical before plumbing finishes? CPM gives you the math to evaluate trade-offs before committing.
Common CPM Mistakes
Forgetting dependencies. If task B actually depends on task A but you didn't model the link, CPM can't protect you. Incomplete dependency networks produce misleading critical paths.
Using only finish-to-start links. CPM supports start-to-start, finish-to-finish, and start-to-finish relationships. Using only FS links often over-constrains your schedule.
Ignoring resource conflicts. CPM assumes unlimited resources. Two tasks can be scheduled in parallel even if they need the same crew. Resource leveling is a separate step.
Never updating the schedule. CPM is only as good as its inputs. If you don't update actual start dates, actual durations, and remaining work, the critical path drifts from reality.
How Milesto Handles CPM
In Milesto, CPM scheduling runs automatically at the database level. When you add a task, set a dependency, or update a duration, the forward and backward passes execute as database triggers, not client-side JavaScript that might not run.
Dependencies cascade across milestones. Change a predecessor's duration and every downstream task in every milestone recalculates. The critical path updates in real time, and tasks with zero float are flagged automatically in the workflow diagram and insights panel.
You don't need to "run the scheduler." It runs itself, every time the data changes.
Key Takeaways
- CPM identifies which tasks control your project end date, so focus your attention there
- Float tells you which delays you can absorb, so stop panicking over non-critical slips
- Dependencies are the foundation because incomplete dependency networks produce wrong answers
- Automate the math because manual CPM in spreadsheets breaks at scale
- Update regularly because a schedule that doesn't reflect reality is worse than no schedule at all
Ready to try CPM scheduling that runs itself? Start free on Milesto.io, no credit card required.