Blog

,

Introduction to Constraints in Microsoft Project

Microsoft Project 2016 provides tools you can use to influence when project tasks occur. These tools provide the flexibility to adjust the project schedule more efficiently, which is required to support often-changing business requirements.

Applying Constraints to Tasks in a Project Scheduled from the Project Start Date

Task constraints are used when you want to make sure that a task starts or finishes on, by, or no earlier than a particular date. By default, Microsoft Project 2016 schedules all tasks to start as soon as possible (when scheduling from a project start date). You can select specific limits on any task you feel needs a different schedule constraint.

For example, if the delivery of a product from an outside company occurs on a specific date, any work using that equipment must consider the delivery date.  Similarly, a new employee can’t begin work on project tasks until they actually join the company.  You can indicate these schedule-related situations by applying a constraint to the task.

In general, schedule flexibility is the project manager’s friend because external events will impact the schedule once a project starts.  Task constraints are defined as flexible (soft constraints) or inflexible (hard constraints). Microsoft Project is designed to use a flexible constraint when it has a choice. The flexibility of the constraint varies depending on whether you are scheduling your project from a start date or from a finish date.

An example of a flexible constraint when you are scheduling from a start date is the Start No Earlier Than (SNET) constraint. The task cannot start earlier than the constraint date but, based on the scheduling of the predecessor tasks, it could start later.

While constraints are required for some tasks, it is common for new Microsoft Project users to inadvertently set constraints when they don’t mean to. For example, if you set a start date for a task, you are applying a SNET constraint.

Microsoft Project 2016 will not automatically apply an inflexible constraint to a task. The practical result of an inflexible constraint is to override the logical relationships you established between tasks. If the Planning Wizard message options are left turned on, Microsoft Project will warn you that applying an inflexible constraint could cause a scheduling conflict. In some situations this is helpful because Microsoft Project will alert you before a constrained task is automatically re-scheduled.

The following table displays the behavior of a constraint when you are scheduling from a start date.

Constraint Type Constraint behavior when you are scheduling from a project start date
As Soon As Possible (ASAP) Flexible Default constraint for a new task if no dates are entered;  starts on day one of the project if there are no predecessors;  if a task does have predecessors, the dependency will drive when the task can start
As Late As Possible (ALAP) Flexible Always finishes the task on the project finish date; rarely used
Finish No Earlier Than (FNET) Flexible Finishes the task on or after the date that you entered; if the task has no predecessor, the task will finish on the date you selected.  The finish date can be driven to a later date based on the predecessor(s).

FNET is the default constraint type assigned by Microsoft Project when you select a finish date for a task.  Microsoft Project applies this flexible constraint so that it preserves the ability of the scheduling engine to automatically schedule the task finish to a later date.

Start No Earlier Than (SNET) Flexible Starts the task on or after the date that you entered; if the task has no predecessor, the task will start on the date you selected.  The start date can be driven to a later date based on the predecessor(s).

SNET is the default constraint type assigned by Microsoft Project when you select a start date for a task.  Microsoft Project applies this flexible constraint so that it preserves the ability of the scheduling engine to automatically schedule the task start to a later date.

Finish No Later Than (FNLT) Inflexible Finishes the task on or before the date that you entered; if a task does have predecessors, the dependency will drive when the task can start unless the predecessor attempts to move the task beyond the planning constraint date.  In this situation, you will be alerted to a scheduling conflict if the Planning Wizard is activated.
Start No Later Than (SNLT) Inflexible Starts on day one of the project if there are no predecessors; if a task does have predecessors, the dependency will drive when the task can start unless the predecessor attempts to move the task beyond the planning constraint date.  In this situation, you will be alerted to a scheduling conflict if the Planning Wizard is activated.
Must Finish On (MFO) Inflexible Task cannot finish any earlier or later than the indicated date; if the task has a predecessor, the predecessor cannot indicate the finish date of the task.  Instead, the Planning Wizard will alert you of a scheduling conflict.
Must Start On (MSO) Inflexible Task cannot start any earlier or later than the indicated date; if the task has a predecessor, the predecessor cannot indicate the start date of the task.  Instead, the Planning Wizard will alert you of a scheduling conflict.

Our next posts will cover how to use constraints in Microsoft Project.