Project scheduling – Using constraints


Tasks defined in a project schedule should have a start time determined by its predecessors, resource availability and task constraints. A project schedule should consider the correct use of constraints to maximise the capability of the software to track changes.

Levels of constraints

There are three levels of constraints, from less to more restrictive:

  1. directives
  2. relative constraints
  3. absolute constraints

Each level increases the limitations on the scheduling algorithm to automatically find the start and end dates of tasks, and have impact on levelling and re-scheduling.


There are two directives, and they are used to decide whether the task slack will be pushed towards the beginning or the end of the project. This constraint can be set globally by scheduling forward from a start date or scheduling backwards from an end date. In Project this is done from the Project menu.

  • As soon as possible
  • A late as possible

In OmniPlan the direction is selected in the project information tab.

  • Forward from Fixed Start
  • Backwards from Fixed End

Each task assumes the default which can be overridden for each task.

The real task dates will be determined by the software and are not restricted by external dates. By default a project is scheduled from the start date.

Relative constraints

in Project there are four relative constraints and are used to make sure that a task will not start or finish before or after a set date. The real task dates are determined by Project but are restricted by a given date in each case:

  • Start no Earlier Than
  • Start no Later Than
  • Finish no Earlier Than
  • Finish no Later Than

Tasks will be scheduled from the date onwards, or up to the date depending on the constraint and directives. Only a single constraint can be applied to each task.

OmniPlan uses a different strategy to define relative constraints. Each task can have a Start date constraint and an End date constraint. That allows the definition of ‘Start no Earlier Than’ and ‘Finish no Later Than’ constraints directly by selecting dates. For the other two relative constraints a milestone can be used to define the constraint date, and a link to the task.

  • Start no Later Than:  The task has a Start-to-Start link with a milestone with an End date constraint
  • Finish no Earlier Than: The task has a Finish-to-Finish link to a milestone with a Start date constraint


Absolute constraints

There are two absolute constraints in Project that lock the start or finish date of the task to a given date. The scheduling algorithm does not change the assigned dates of these tasks:

  • Must start on
  • Must finish on

In OmniPlan these hard constraints are implemented using milestones, constraints  and links:


  • Must start on: A milestone with a Start date constraint with a Finish-to-Finish link with a task with an End date constraint. Both dates are equal.
  • Must finish on: A task with a Start date constraint with a Start to Start link to a milestone with an End constraint. Both dates are equal.

When should constraints be used?

As a general rule constraints should be avoided because they restrict the free operation of the scheduling algorithm when calculating the ideal schedule for the project. Constraints are best used when there are external milestones that are fixed and must be met by the project. It is always better to use  task dependencies instead of constraints.


in Project deadlines act as an absolute constraint without limiting the ability of the software to freely schedule the tasks. If the deadline is overshot then a warning message is displayed for the project manager to make decisions and take action. They are represented in the Gantt chart by a green arrow pointing at the deadline date.


Hard constraints should be used with care because the price of overuse is a loss of flexibility to schedule the tasks in an ideal way. They are best used to model external dependencies to milestones.