Task Constraints

Tasks in Project.net have constraints that require that the start and/or finish date of a task be no later than, no earlier than, or on a specific date.  Constraints are not enforced at all for manual tasks, and for automatic tasks, they are only enforced when the workplan is rescheduled.  This article talks about how constraints can be set, and how they can be visually identified in a workplan.

See the article on Automatic Tasks for more details about how automatic tasks are scheduled in general.

1. Setting Constraints

Task constraints can be set in the Constraints section of New and Edit Task.  Project.net supports separate start and finish constraints for a task, although not all combinations are supported.  See the article on Combined Constraint for more details.  Either or both of the start and finish dates can be constrained to be no later than, no earlier than, or on a specific date.

2. Explicitly Setting Scheduled Dates in Automatic Tasks

The scheduled start and finish dates of automatically scheduled tasks are meant to be set automatically by the scheduler.  However, as in Microsoft Project, explicitly setting a scheduled start or finish date acts as a shorthand for setting a corresponding constraint.  In project.net, we aim to set the constraint in a way that generally produces the result that is most natural to the user.

In particular, if the user explicitly sets a start (or finish) date, then in general

  • If the start (or finish) date is changed to be later, that is treated as indicating that the current date, presumably set by the scheduler, is too early, so a start (or finish) no earlier than <the new date> constraint is set for the task
     
  • If the start (or finish) date is changed to be earlier, that is treated as indicating that the current date (presumably set by the scheduler) is too late, so a start (or finish) no later than <the new date> constraint is set for the task
     
  • If there was no date originally, it's not clear what kind of constraint the user wants, but the most common constraint used is a start (or finish) no later than constraint, so that's the one we set.

    A simple way to set a simple milestone that must be completed by a certain date is to use an automatic task and just set its finish date, which will create the necessary constraint.

3. Changing Existing Constraint Dates

If an automatic task already has a start (or finish) constraint, then the effect of changing its start (or finish) date is a little more complicated.

Suppose a task already has a start (or finish) no later than constraint, then

  • Setting the start (or finish) date earlier indicates that the constraint wasn't strict enough, so the start (or finish) constraint date is changed to the new date
     
  • Setting the start (or finish) date later, when the scheduled date is
     
  • the same as the constraint date, means that the constraint was too strict, so we keep the start (or finish) no later than constraint, but just change the constraint to the new date
     
  • already earlier than the constraint date, means that the scheduled date is too early, and the user wants to force it later, so we change the constraint to a start (or finish) no earlier constraint for the new date.

Similarly, suppose a task already has a start (or finish) no earlier than constraint, then

  • Setting the start (or finish) date later indicates that the constraint wasn't strict enough, so the start (or finish) constraint date is changed to the new date
     
  • Setting the start (or finish) date earlier, when the scheduled date is|
     
  • the same as the constraint date, means that the constraint was too strict, so we keep the start (or finish) no earlier than constraint, but just change the constraint to the new date
     
  • already later than the constraint date, means that the scheduled date is too late, and the user wants to force it earlier, so we change the constraint to a start (or finish) no later constraint for the new date.

Finally, if a task already has a start (or finish) on constraint, then changing the start (or finish) date simply changes the start (or finish) constraint date to the new date.

4. Visual Identification of Constraints in the Workplan

It can be easy to forget that a task constraint was set.  We try to ameliorate this situation by providing a visual indication in the workplan that a scheduled start (or finish) date has a corresponding constraint.

  • If a task has a start (or finish) no earlier than constraint, then we show a black triangle in the lower left corner of its scheduled start (or finish) date
     
  • If a task has a start (or finish) no later than constraint, then we show a black triangle in the lower right corner of its scheduled start (or finish) date
     
  • If a task has a start (or finish) on constraint, then we show a thickened black line at the bottom of its scheduled start (or finish) date

A popup on the scheduled date indicates the details of the constraint.

These visual indications are especially useful for an automatic task, since

  • Setting its scheduled start and finish date automatically sets a corresponding constraint.
     
  • If the user is not aware, or forgets that a constraint is set, the scheduled dates that result from rescheduling can be surprising. 

Ellis S Cohen
Project.net
Nov 2014

 

Tags: 
task constraintsMicrosoft Project