Task Constraints – Who, What, When, Why?

You may find yourself with a large constraint…
And you may say to yourself… well, how did that get here?

Constraints – what are they, how do they work, and where do they come from?

If you have a habit of clicking on the Start or Finish date and using the calendar date picker to select a date on a task – STOP IT
If you like to click right on the Start or Finish date field and manually key in the date on a task- STOP IT
If you tend to manually contour resource hours and don’t pay attention to whether you place work before the start date of a task – KNOCK THAT OFF!

These behaviors don’t just create constraints, they create LAME constraints that you’re probably not really thinking through and may cause pain and suffering down the road.

Constraints are always 1 of two things: A deliberate anchor point which indicates a start or finish date that is controlled from outside forces not in your project schedule


A bad thing that you shouldn’t have put there and maybe probably you put there by accident

How do I wrangle these suckers once they exist?

Step 1: find all the “useless” constraints (items which are not currently affecting the schedule) and ditch them
Create a view with these columns next to each other:
Constraint Type
Constraint Date
% Complete

Filter the view by:
% Complete <>100%
Predecessor <>(blank)

1.a Filter by constraint type = Start No Earlier than
Scan through tasks. On any Task where the Constraint Date <Start, remove the constraint date. (this will set it back to ASAP)

1.b Filter by constraint type = Finish No Earlier than
Scan through tasks. On any task where Constraint Date <finish , remove the constraint date. (this will set it back to ASAP)

Step 2: Correct dates for tasks with Constraints that are actually impacting the schedule:
Keep same view as before

Filter the view by:
% Complete <>100%
Predecessor = (blank)

2.a For truly constrained tasks
Scan through tasks. Determine how the date can be correctly set:
If there is a true, HARD constraint, set Constraint Type to “Must Start/Finish On”

2.b Filter by Constraint Type = Start No Earlier Than
Find the correct predecessor for this task. Use multiple predecessors, predecessor types (SF,FS, SS, FF) and lag as needed.

2.c Filter by Constraint type = Finish No Earlier Than
These will have a default start date based either on the start of the project, the date created (depending on your project settings) or based on duration counting backwards from the finish constraint. Use duration to set the finish date to match the constraint date.

And then… Don’t do those things anymore!!!!

NOTE: Some of you may argue, and it’s true that there is more than one school of thought on this. But if you are managing real projects, with large amounts of tasks, real resource actual reporting and real inter-dependencies between tasks, this is the way you want to go, trust me!


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s