Lesson 2: Constraints

​​​​​      HOME<< PREVIOUSNEXT >>

After you've defined the task list necessary for the completion of your project, you can add constraints associated with your tasks to better fit your scheduling needs.

Constraints can be used to create a link between a task and a particular date. A constraint is a feature that alters when your task will appear on the schedule. Constraints offer you more choice when it comes to automated scheduling as you can tweak your task dates based on additional information than you can provide to Project Plan 365.

By default all tasks are created with the constraint type "As Soon As Possible" set. This allows Project Plan 365 to schedule the task on the basis of its duration and dependencies, rather than against a particular date. When you set a start or finish date for a task in your project, this means that you do not want that task to start or finish any earlier than that date. Constraints are applied to your tasks to impose restrictions on the way that the task's start and finish dates are calculated.

Sometimes you need to prevent Project Plan 365 from rescheduling a task away from a key date. For example, imagine you are managing the delivery of a conference. The date of the conference is likely to have been booked for months and is probably immovable. In this instance you might set a "Must start on" project constraint for the date of the conference.

There are 3 main categories of constraints:

  • Flexible constraints: This is a default type of constraint in Project Plan 365. It means that a task can start As Soon As Possible.

  • Semi-flexible constraints: A task must begin or end no later than the defined date.

  • Inflexible constraint: A task must begin or end on a certain date..

There are supported 8 types of constraints that you can specify for a task:

  1. As Soon As Possible (flexible): Schedules the task to start as early as it can. Use no constraint date. This is the most common type of task constraint. It essentially means that the next task starts as early as possible, assuming that you have not introduced any lag which would delay the start. You will probably find that the vast majority of your tasks use the As Soon As Possible constraint type. It is the easiest to understand and 99% of the time we want our tasks to start as soon as they can.
  2. As Late As Possible (flexible): Schedules the task as late as it can without delaying subsequent tasks. Use no constraint date. Another common constraint type is As Late As Possible. You would use this when you don't want a task to start until the last possible moment. For example, lighting the candles on a birthday cake. Just because you can do that as soon as the guests arrive doesn't mean that you should.
  3. Finish No Earlier Than (semi-flexible): Schedules the task to finish on or after the constraint date. This is used for when you do not want a task to complete before a certain date. Typically this would be used for when you don't want your resources tied up waiting around for the next task. It can be used to link two tasks with similar resources together.
  4. Finish No Later Than (semi-flexible): Schedules the task to finish on or before the constraint date. This is useful for planning critical path activities and for making sure that your resources are available. Again, it won't stop earlier activity on your task, but it will ensure that the task definitely completes before your specified date.
  5. Must Start On (inflexible): Schedules the task to start on the constraint date. This is a very clear fixed date, and there aren't many project tasks where you'd need to use this. One example would be a workshop which has taken ages to arrange and involves lots of participants. Other examples are training courses where the tutor is already booked, work requiring machinery which is only available for a short time. If you use this type of constraint make sure that your predecessor activity finishes well ahead of this date so that you have some slack built into the schedule in case you need it.
  6. Must Finish On (inflexible): Schedules the task to finish on the constraint date. This is used for when a project activity must finish on a particular date. Again, the best examples of these are when other resources are involved. For example, if you lose a team member to another project on a certain date, or they are planning to leave the company.
  7. Start No Earlier Than (semi-flexible): Schedules the task to start on or after the constraint date. This type of constraint, fits well with resource issues. For example, maybe the contractor scheduled to complete this task does not start until a certain date so this task cannot begin until they arrive at the company. Or other resources are tied up on other projects. Or you are waiting for sign off at a particular meeting.
  8. Start No Later Than (semi-flexible): Schedules the task to start on or before the constraint date. If you know a task will take a certain length of time and it is essential to get it started by a particular date so that it will finish on time, you can use this constraint type. It won't stop the task from starting earlier, but it will automatically be scheduled to start by the date you set so that you don't run out of time to complete it.

To add a constraint to a task in your project, double-click on the task to open the Task Information dialog. Then go to the Advanced tab and from there specify the constraint type and constraint date (if necessary).

Another method of setting a constraint for a task is to enter the task finish or start date in the Gantt Chart view. This method will default to a constraint type of Start No Earlier Than or Finish No Earlier Than. To adjust the constraint type, open the Task Information dialog. You can easily check if a task has a constraint by using the Indicators column. If the constraint is anything other than As Soon As Possible or As Late As Possible, the constraint type will display its associated graphical indicator in the Indicators column in any sheet view, such as the Gantt Chart.  


  • Date constraints increase the complexity of your schedule and reduce the flexibility of scheduling options. Because of this, use a date constraint only if starting or finishing a task by a specific time is important to the completion of the task or the outcome of the project. Inflexible constraints usually override any task dependencies and restrict a task to a date you choose. For example, a task with a Must Start On constraint for September 30 and a finish-to-start dependency to another task will always be scheduled for September 30 no matter whether its predecessor finishes early or late.

  • Constraints can be useful and play an important role in project planning. However, they can also be created by mistake and can have a negative impact on your project plan. For instance, such 'accidental constraints' can be created when manually setting or changing start or finish dates, or when copying and pasting tasks, including their start and finish dates. Take into account the fact that setting a constraint impacts the critical path of your project and can create a scheduling conflict, so make sure you understand the consequences of creating constraints.

  • All the constraints except As Soon As Possible and As Late As Possible require a date, which you enter in the Constraint Date field when scheduling a task. If you enter a date in the Start field, Project Plan 365 assigns the Start No Earlier Than constraint, and enters your date in the Constraint Date field. If you enter a date in the Finish field, Project Plan 365 assigns the Finish No Later Than constraint, and enters your date in the Constraint Date field.

image003.gif  Practice

      1. Add a 'Must Finish On' constraint with date on 13 December 2016 for task with ID = 30 (Excavate foundations). This schedules the task to finish on the constraint date. Use the Advanced tab from the Task Information dialog to set this type of constraint for the task.


​    You will see that an icon appears for this task in the Indicators column to mark that it has associated a constraint. Notice the change in the start and end dates of this task to accommodate this constraint. Hover the mouse over the icon to get information about this constraint.

   2. Now let's add a semi-flexible constraint to a task by changing its start date. For the task with ID = 55 (Issue final completion documents including warranties), indicate 9 January 2017 as its start date. Use the date picker control to easily select this date.

      Once doing this, you will notice that a constraint of type Start No Earlier Than will be created for you, as displayed in the tooltip that appear if you hover over the icon in the Indicators column.
   3. Go to the recurring task from this project plan and notice the constraints that were added for its corresponding tasks. ​


image003.gif  Video

       If you prefer to see things in action, rather than reading text, watch out this video, which covers some of the topics from this section.