Using constraints

Constraints are only relevant for automatically scheduled tasks. For information about manual task scheduling, see "Using scheduling task modes".

Constraints define the degree of flexibility available to MindView when scheduling or rescheduling a task by imposing restrictions on its start or end date.

MindView supports 8 types of task constraints, offering different degrees of flexibility.

Constraint types

Two "constraints" are actually so flexible that they are not generally regarded as constraints at all:

As Soon As Possible (ASAP): This is the default constraint when you schedule your project from its start date, as is normally the case (see "Defining the global project settings"). You should try to keep this default whenever possible as it gives MindView the most scheduling flexibility. If you apply this constraint to an unlinked task, the task will be scheduled to start at the project start date. If you apply it to a linked task, it will start as soon as the dependencies with its predecessor tasks will allow.

As Late As Possible (ALAP): This is the default constraint when you schedule your project from its end date. If you apply this constraint to an unlinked task, the task will be scheduled so that its end date coincides with the end date of the overall project. If you apply it to a task linked to a successor task, the task will be scheduled to end when the successor needs to start. On the whole, you should avoid this constraint as it does not leave any slack time to deal with possible problems. Any delay on the task is likely to impact the overall end date.

 

The following constraints all restrict MindView's flexibility when scheduling tasks. Although you might be tempted to use them if you are new to project management, you need to make sure you understand the implications. Keeping their use to a minimum (especially the last two) will allow you to take full advantage of MindView's automatic scheduling possibilities.

Start No Earlier Than (SNET) SNET_icon.gif : This means that the task, whether linked or not, may not start before the given date. However, MindView still has the flexibility to start the task later than the given date.

warning_color.gif If you change a task's start date, for instance by typing a new date in the Gantt Outline or by moving its task bar on the Gantt chart, this constraint is automatically applied.

warning_color.gif If you drag a linked task backwards, a SNET constraint is set for the start date corresponding to the new position of the task bar, but the bar immediately moves back to its original position. This is because the start date determined by the link comes later than the SNET date. The SNET date is therefore applied, but does not change the original scheduling of the task.

Start No Later Than (SNLT) SNLT_icon.gif : This means that the task, whether linked or not, may not start later than the given date. However, MindView still has the flexibility to start the task earlier than the given date.

warning_color.gif When you are scheduling your project from its end date, changing a task's start date automatically applies this constraint.

Finish No Earlier Than (FNET) SNET_icon.gif : This means that the task, whether linked or not, may not end before the given date. However, MindView still has the flexibility to end the task later than the given date.

warning_color.gif If you change a task's end date, this constraint is automatically applied.

Finish No Later Than (FNLT) SNLT_icon.gif : This means that the task, whether linked or not, may not end later than the given date. However, MindView still has the flexibility to end the task earlier than the given date.

warning_color.gif When you are scheduling your project from its end date, changing a task's end date or moving its task bar on the Gantt chart automatically applies this constraint.

Must Start On (MSO) SNLT_icon.gif : This rigid constraint means that the task, whether linked or not, must start on the given date. Even if the preceding task is completed earlier, MindView cannot pull in the constrained task to take advantage of the time gained.

Must Finish On (MFO) SNLT_icon.gif : This rigid constraint means that the task, whether linked or not, must end on the given date. As above, even if the preceding task is completed earlier, MindView cannot pull in the constrained task to take advantage of the time gained.

 

When you apply one of these constraints to a task, a constraint icon appears next to its name in the Gantt Outline. Hovering this icon with the mouse displays a tooltip with details about the constraint.

Constraint_tooltip.gif

tip_color.gif If you decide to apply one of these constraints to a task, it is good practice to attach a note or a comment to the task to explain why you did so. If the constraint causes scheduling conflicts later on as your project evolves, you will be able to refer to the note to decide whether to keep the constraint, change it or remove it altogether. Such notes also allow you to distinguish easily between the tasks you have constrained yourself deliberately and the tasks you may have constrained inadvertently by moving their task bar or editing their start or end date manually.

You can sometimes avoid using constraints by setting deadlines instead (see "Setting deadlines" in the topic "Enhancing a project plan"). If you have an important date to meet, it is usually better to set a deadline on the task rather than a constraint such as 'Must Finish On'. Not only this type of constraint restricts MindView's scheduling flexibility, but it may in fact increase the likelihood of missing the deadline, as the example below shows.

warning_color.gif The effect of a constraint is not always obvious when you schedule your project plan from its end date, so take care to check that it does give the result you want.

Example

The following example shows some tasks in the preparation of a brochure for a mail shot. The mail shot is scheduled for September 14th. The tasks are linked, but we have set a 'Must Finish On' constraint on the printing task for September 11th, the latest date that will allow the mailing to go ahead on the following Monday, September 14th. The constraint, as usual, overrides the link. By setting a 'Must Finish On' constraint for September 11th, we have effectively moved the task out so that it ends exactly on September 11th, regardless of whether it could have been completed earlier or not.

Constraint_example1.gif

The problem with this is that if the printing task takes longer than expected, the mailing date will be missed. It would be much better to take advantage of the unused time after the end of the corrections task to get started with printing. However, we still need to keep an eye on the September 11th deadline. To do this, we remove the constraint from the printing task, so that the link will determine its start date, and add a deadline marker instead.

Constraint_example2.gif

Now there is a useful gap between the end of printing and the deadline, and the deadline is clearly indicated. The printing task is now much less likely to appear on the critical path, and the deadline indicator will warn us if the task moves past its deadline.

Interaction between task dependency links and constraints

Constraints combine with task dependency links to affect the timing of tasks. In some cases, applying a constraint to a task in addition to a task relationship may create a scheduling conflict. When such a conflict arises, the constraint always takes precedence over the task dependency.

Let us consider the example below. Here the "Print" task is linked to the "Final changes" task with the default 'Finish to Start' relationship. The "Final changes" task ends on Oct 1st. In normal circumstances, this would mean that the "Print" task cannot start before Oct 2nd. However, because you imperatively need the printed materials on Sept 28th for a training session, you have set a 'Must Finish On' constraint on the "Print" task for Sept 28th, as evidenced by the constraint indicator. Since the constraint set on a task always overrides any relationship it may have with other tasks, the start date of the "Print" task has been rescheduled automatically to end on Sept 28th.

Constraint_wins_over_link1.gif

In this case the constraint has led to an illogical relationship with the predecessor task: printing is now scheduled to start before final changes are complete. Note that MindView conveniently flags this as a possible problem using the Link_bypassed_icon.gif icon, which shows that a link has been overridden by a constraint.

If you later decide to remove the constraint, for instance because the training session has been postponed, the task dependency link is enforced again, as shown here:

Constraint_wins_over_link2.gif

For more information about how to detect and solve potential scheduling conflicts, see "Reviewing a project plan".

Setting a constraint

You can apply a constraint to a task as follows:

Select the task and choose Task Information Task_Information_icon_small.gif to open its Task Information dialog.

Select the constraint type. For constraints other than 'As Soon as Possible' or 'As Late As Possible', you also need to set the constraint date required.

Setting_a_constraint_type.gif

As mentioned above, changing a task's start date by editing it in the Gantt Outline or moving its task bar on the Gantt chart applies a 'Start No Earlier Than' constraint automatically (assuming you are scheduling from the project start date). Changing a task's end date applies a 'Finish No Earlier Than' constraint.

When scheduling from the end, changing a task's start date applies a 'Start No Later Than' constraint. Changing a task's end date applies a 'Finish No Later Than' constraint.

To remove a rigid constraint, select 'As Soon as Possible' in the Task Information dialog (or 'As Late As Possible' if you are scheduling from the end).