Lesson 2: Constraints

​​​​​      HOME<< PREVIOUSNEXT >>

Now that 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.  


  • 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.

  • 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.gifPractice ​
1. Add a 'Must Finish On' constraint with date on 22 January 2016 for task with ID = 37 (Excavate foundations). Use the Advanced tab from the Task Information dialog to set this type of constraint for the task.
​ Notice the corresponding icon that appears for this task in the Indicators column. Hover the mouse over the icon to get information about this constraint.

  2. Go to the recurring task that it was previously added to the project plan and notice the constraints that were added for its corresponding tasks. ​