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:

The eight constraint types and whether each holds a task no earlier, flags it when later, both, or neither
ConstraintCodeHolds it no earlierFlags it when later
As Soon As PossibleASAP——
As Late As PossibleALAP——
Start No Earlier ThanSNETYes—
Start No Later ThanSNLT—Yes
Finish No Earlier ThanFNETYes—
Finish No Later ThanFNLT—Yes
Must Start OnMSOYesYes
Must Finish OnMFOYesYes

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.

Plan your next project in Waterfall PM

Free while it's in beta — no credit card, and team members are always free.