Constraints are the scheduling limitations that a project task must operate within.
The project task start or finish date defaults to the project start date (for forward-scheduled projects) or project end date setting (for backward-scheduled projects). Project tasks with predecessors are rescheduled as-soon-as-possible (ASAP) following its predecessors (for forward-scheduled projects) or as-late-as-possible (for backward-scheduled projects). When the project start/end date setting is adjusted, or when the predecessor task is rescheduled, the scheduling engine automatically adjusts the project task start/finish dates.
There may be instances wherein a project task needs to start or finish by a particular date. For example, imagine that you have a task scheduled for a technician to go onsite to do an installation on a specific date. However, for the installation to happen, you need to make sure that the predecessor task - let's say the predecessor task is for the hardware delivery - is completed by a specific date. In this instance, you might set a "Finish no later than" or "Must finish on" constraint for the predecessor task to ensure that it is completed before the installation. Adding a constraint to a task prevents it from being rescheduled when the project start/end date setting is adjusted, or when its predecessors are rescheduled.
By default, the Constraint and Constraint Date columns are hidden in the project schedule. To add them, simply right-click on any column heading, go to Columns and select both Constraint Type and Constraint Date.
There are six (6) constraint types available for you to choose from. They are as follows:
A hard constraint means that the task has to start or finish on a particular date (constraint date) and cannot be rescheduled.
A flexible constraint means that a task can be rescheduled as long as it does not violate the constraint date.
When you add a constraint to a task, it will not be automatically rescheduled if the project's start or end date changes, or if its predecessor tasks are rescheduled.
When you remove a constraint, the task is rescheduled as follows:
As previously mentioned, when you add a constraint to a task, it will not be automatically rescheduled if the project's start or end date changes, or if its predecessor tasks are rescheduled. Instead, if the project start or end date changes, or if its predecessors are rescheduled wherein it's causing the task with a constraint to violate its constraint, you are prompted with a constraint violation message.