This article provides insights into Task Constraints and Task Dependencies in advance scheduling.
Skip Ahead to: Steps to Change the Constraint Type Conflict between Constraint and Dependencies Steps to Add a Constraint for a Task |
Overview
You can control the Start and Finish date of an automatically scheduled task using the task constraints. Constraints are of three types –
- Flexible constraints – These constraints are not assigned to a specific date. With these constraints, tasks end much before the project’s end date. You can start a task as early as possible or as late as possible. These constraints do not impose any fixed start date or fixed end date.
- Semi-flexible constraints – These constraints are associated with a date. They control only the earliest and the latest start and finish date of a task. Tasks with these constraints can finish at any time provided they are meeting the start and end deadlines.
- Inflexible – These constraints are associated with a date that controls the finish and start date of a task. These constraints are useful when you want to take external factors into account like start and finish dates, contract milestones, deadlines, availability of resources, etc.
Important: We suggest you use the ASAP constraint as with the ASAP constraint, the scheduling engine gets the flexibility to find the most ideal finish date for your project.
Note: The Task Constraints option is only available in Advanced Scheduling.
Steps to View or Change the Constraint Type
To view the constraint type on your task,
- Open the task in the listing view and scroll right to see the assigned constraint type under the Constraint Type column.
- If you have applied a constraint other than ASAP on a task, then a small icon is shown in the Indicator column on the left-most of the listing view showing the availability of the constraints on a particular task.
- If you have applied a constraint with scheduling flexibility on a task, then the constraint restricts the task from starting/finishing before/after the constraint date.
This might be useful when you have availability of resources/infrastructure for specific dates and thus have to perform the task in that period only. In that case, SNET and FNLT constraints can be useful.
As the default constraint type is ASAP and the default dependency is finish-to-start, the successor (second) task gets scheduled to start as soon as the predecessor (first) task is scheduled to end.
- If you have applied the SNET constraint, then the successor task cannot start before the constraint date even if the predecessor task ends before the constraint date.
The below table shows the different constraint types available for a project-
Constraint Name |
Constraint Description |
|
Flexible | As Soon As Possible (ASAP) | This constraint schedules the task to start as early as it can. If this constraint is applied and the task has no predecessor task, then the task starts on the Project start date. You do need to enter a constraint date with this constraint. It is the default constraint for all the tasks. |
Semi flexible | Finish No Earlier Than (FNET) | This constraint schedules the task to finish on or after the constraint date. If a task has no predecessor, the task will finish on the date you have set. You can use this task to make sure the task doesn’t start before a specific date. |
Semi flexible | Finish No Later Than (FNLT) | This constraint schedules the task to finish on or before the constraint date. You can use this task to make sure the task doesn’t finish after a specific date. |
Semi flexible | Start No Later Than (SNLT) | This constraint schedules the task to start on or before the constraint date. If a task has no predecessor, then it starts on day one of the project. You can use this task to make sure the task doesn’t start after a specific date. |
Semi flexible | Start No Earlier Than (SNET) | This constraint schedules the task to start on or after the constraint date. If the task has no predecessor, the task will start on the constraint date. You can use this task to make sure the task doesn’t start before a specific date. |
Inflexible | Must Finish On (MFO) | This constraint schedules the task to finish on the constraint date. Tasks with this constraint cannot finish earlier or later than the constraint date. Also, once selected the task will not be moveable on the timescale. It sets the early, scheduled and late finish date to the constraint date or the planned finish date. |
Inflexible
|
Must Start On (MSO) | This constraint schedules the task to start on the constraint date. Tasks with this constraint cannot start earlier or later than the constraint date. Also, once selected the task will not be movable on the timescale. It sets the early, scheduled and late start date to the constraint date or the planned start date. |
Important Points:
- When you create a new task and the default task type is set as Fixed Dates, then the task doesn’t have a default constraint type and the value in the Constraint Type column is shown as NA.
- When you create a new task and the default task type is set other than the Fixed Dates task, then the default constraint type for the task is “As Soon As Possible”.
How project resolves the conflict between Constraint and Dependencies?
Inflexible constraints (like MFO and MSO) override the task dependencies restricting a task to the constraint date. For example, a task with constraint type MSO (Must Start On) for 10 October and with finish-to-start dependency will start on 10 October only, no matter when its predecessor task is finished.
If you have selected the Constraints to be honored over dependencies preference to ‘Yes’ at the project level then the task constraint will override the task dependencies. For example, if a task has FNLT (Finish No Later Than) constraint applied to it for 15 June with the “start-to-finish” task dependency. If the predecessor task is scheduled to start on 20 June, then the task will be scheduled to finish on or before 15 June only ignoring the start date (20 June) of its predecessor task.
If you have selected the Constraints to be honored over dependencies preference to ‘No’ at the project level then the constraint won’t override the dependencies and in that case, dependencies will be honored over constraints. For example, in the above scenario, the task will be scheduled to finish after 20 June ignoring the constraint date of the task – 15 June.
Steps to Add a Constraint for a Task
To add a constraint for a task, perform the following steps –
- Select the task from the task listing view and scroll right to the Constraint Type column.
- Double-click the constraint cell under the Constraint Type column and select the constraint from the drop-down list.
- Enter the date for your constraint in the cell under the Constraint Date column. You can also double-click the cell to select a date from the calendar.
Note: You don’t have to add the constraint date if you select the “As Soon As Possible” constraint type. With the ASAP constraint, the task is scheduled to start as per the Planned start date which is by default the project start date.
How to Remove a Constraint from a Task
Once you apply a constraint to a task, you can’t remove it. However, you can change the constraint type.
- To change the constraint type to your task:
- Open the task in the listing view and scroll right to find the Constraint Type column.
- Under the Constraint Type column, form the drop-down list, and select the constraint type that you want to assign to your task.
Note: You can change the Planned Start and Planned Finish date for a task in their respective columns. When you change the Planned Start and Planned Finish dates of a task, then the project applies a constraint to the task, forcing the task to start or finish on the specified date. Not only this, the rest of the schedule of the task gets changed.
Task Constraints Vs Task Dependencies
Task constraints might be confused with task dependencies. However, there is a lot of difference between them. Task constraints help you restrict the start and finish date of a task to a particular date which you define as a constraint date. Task dependencies show the relationship between tasks and show how the start and finish of one task impact the start or finish of the linked tasks.
For example, if a task has SNET (Start No Earlier Than) constraint applied to it with the constraint date as March 5, then the constraint will force the task to start on or after 5 March. Similarly, if a task has the finish-to-start dependency on another task and if the predecessor task finishes on March 15 then this task can start on March 16.