A schedule constraint is a rule applied directly to a task's date — restricting when it can start or finish, independent of its dependency links. Common constraint types include Start No Earlier Than, Must Start On, and As Soon As Possible. Constraints give a scheduler fine control over a specific date, but they can also override the natural logic of the dependency network if used carelessly — a hard constraint can hold a task's date fixed even when its predecessor's finish date changes.

Constraint Types, from Flexible to Fixed

Constraint TypeEffectFlexibility
As Soon As Possible (ASAP)Starts as early as dependencies allowFully flexible
As Late As Possible (ALAP)Starts as late as possible without delaying the projectFully flexible
Start No Earlier Than (SNET)Cannot start before a fixed dateSemi-flexible
Must Start On (MSO)Locked to one exact start dateInflexible
Must Finish On (MFO)Locked to one exact finish dateInflexible

Constraints vs. Dependencies

Dependencies model logical relationships — this task happens after that one. Constraints pin a task to a real-world date regardless of that logic. Overusing hard constraints undermines the cascading recalculation that makes a dependency-driven schedule useful in the first place: if every task carries a Must Start On constraint, the "schedule" is really just a list of fixed dates, and a delay on one task no longer visibly cascades to warn you about the rest. A schedule built mostly on dependencies, with constraints reserved for genuine external fixed points, keeps that early-warning behavior intact.

When a Constraint Is Necessary

Legitimate cases for a hard constraint include a contractually fixed delivery date, a permit or inspection date set by a third party, or a piece of equipment that is only available on specific dates regardless of what the internal schedule logic would otherwise compute. In these cases the date is genuinely external to the project's own logic, and the constraint is documenting reality rather than working around a scheduling shortcut.

Constraints in Maverick

Maverick's scheduling engine is dependency-driven rather than constraint-driven: instead of exposing manual constraint types like Must Start On, it computes every date from task dependencies, durations, and each resource's availability schedule. To pin a task to a fixed real-world date — a permit approval, a contractual deadline — the practical approach in Maverick is a milestone with no predecessor, or a dependency to an external event task, so the fixed date still participates in the critical path calculation rather than silently overriding it. This keeps the schedule's cascading logic intact instead of allowing a hidden hard date to stop it.

Related Terms

Task Dependency  ·  Predecessor  ·  Critical Path  ·  Milestone  ·  Project Calendar

Model Fixed Dates Without Breaking Your Schedule Logic

Start a free cloud trial and see how a milestone with no predecessor keeps a fixed external date visible on the critical path — instead of a hidden constraint silently overriding your dependencies.

Start the Free Trial