GuidesSchedule constraints
Schedule constraints: ASAP, ALAP, SNET, SNLT, FNET, FNLT, MSO and MFO
Updated
Dependencies say how tasks relate to each other. A constraint ties a single task to the calendar: it can't start before the site is handed over, it must finish before the inspection. Microsoft Project defined eight of them, and most scheduling tools that support constraints use the same set.
The eight types
Apart from the two without a date, every constraint either holds a task no earlier than a date (a floor), flags it when it falls later than a date (a ceiling), or both:
| Constraint | Code | Holds it no earlier | Flags it when later |
|---|---|---|---|
| As Soon As Possible | ASAP | — | — |
| As Late As Possible | ALAP | — | — |
| Start No Earlier Than | SNET | Yes | — |
| Start No Later Than | SNLT | — | Yes |
| Finish No Earlier Than | FNET | Yes | — |
| Finish No Later Than | FNLT | — | Yes |
| Must Start On | MSO | Yes | Yes |
| Must Finish On | MFO | Yes | Yes |
As Soon As Possible is the default: no date, just the dependencies. As Late As Possible also has no date — it pushes the task as late as it can go without delaying anything after it, which suits work you want to leave until the last moment, such as ordering perishable materials.
Floors: “no earlier than”
Start No Earlier Than and Finish No Earlier Than hold a task back until a date — because a site isn't available, a supplier can't deliver sooner, or a person is away. A floor is not a lock: if the work in front of the task runs late, the task still moves later. That is what you want. A floor that pretended a task could start while its predecessor was still running would just be a wrong date.
Ceilings: “no later than”
Start No Later Than and Finish No Later Than state a promise: this must start or finish by a date. The honest thing for a scheduler to do when the plan can't keep that promise is to say so — flag the task, and show which work feeds the miss — rather than drag the task earlier than its own predecessors allow, which produces a schedule nobody can execute.
Must Start On and Must Finish On
The two inflexible constraints are a floor and a ceiling on the same date. They hold the task no earlier than the date and flag it if it can't make it. Use them sparingly — for a fixed event such as a regulator's inspection or a launch day — because every one takes flexibility out of the plan.
Constraints are a last resort
Most dates in a plan should come from dependencies, not constraints. A task constrained to start on 12 March will stay there even after the work it really depends on has moved, and nobody will remember why. Reach for a constraint when the date genuinely comes from outside the project — a delivery, a permit, a contract — and write the reason in the task's description.
A deadline is gentler still. It never moves a task; it only warns you when the plan will miss it, and — like a “no later than” constraint — shows every task that has to move to meet it.
How Waterfall PM applies them
Waterfall PM has all eight constraint types and a deadline on any task, set from the task card. Dragging a bar sideways on the Gantt chart sets Start No Earlier Than; holding Shift sets Must Start On instead. Ceilings flag and never move a task — an unmeetable one is marked on its row, and every task feeding it turns critical. Work that is already under way or done keeps its real dates: a constraint can no longer move it, though a missed “no later than” date or deadline is still flagged.