Task constraints [in-depth guide]
Guide contents: Clarification of date fields | Baseline Date | Definition of constraint types | Detailed definitions | Additional considerations | Resources
From the Project > Schedule > Edit task details, you are able to set a scheduling constraint on the task. Each constraint will have a different effect based on other project settings, such as predecessor & scheduling direction.
The Workamajig way recommends that you use as soon as possible for the system to automatically adjust all plan start & plan complete dates on tasks that have not yet started, each night. This will be based on entries made via the My task widget by the individual staff members assigned to the tasks. If changes are made via the project schedule screen, the system will recalculate these dates immediately upon saving.
The benefit to setting a constraint to something other than as soon as possible is if you want to lock down the start or end date of a specific task within the schedule, yet leave the rest of the schedule to auto-adjust. For example, you might want to lock down a task where you have a pre-scheduled meeting with the client and you want the project schedule to reflect this as well.
Clarification of date fields
To understand how and why constraints are used, we should first gain an understanding of the date files associated with each project and task, and what they mean.
Project start & project complete
- These project-level dates can dictate when the first or last task should be planned to start or complete. Any task that has a date outside of this range (no matter the constraint), will turn red.
- In the Active project widget, the status there is dependent on all tasks in the schedule; if just one incomplete task is red, then the project status is red. If all incomplete tasks are green, then the project status is green.
Campaign start & campaign complete
- These dates are mainly for reporting and informational purposes only. They do not have any effect on the project or task dates that are associated with the campaign.
Plan start & plan complete
- These are the dates you start with, but as time goes on, the plan changes. How it changes is based on several factors, including but not limited to, task constraints, project direction, system setup, and actual dates.
Actual start & actual complete
- These are populated by the users assigned to each task. The actual start date is populated by the first person to enter time on the task via the My task widget. The actual complete date is populated by the last person to mark the task as 100% done via their My task widget.
Baseline Date
These dates are used to track the original dates of the tasks before the plan dates start to slip or creep.
This can be automated using the Update Blank Baseline Dates feature in Project Status Codes.
- These dates are populated from the schedule when you click ...More > Set Baseline.
- From here you get two options.
- > Set All Task: typically used prior to release of the project to production. This will set the baseline dates to your original plan
- > Set Only Tasks with No Baseline: typically used when you have added new tasks to the schedule. This selection will not affect the baseline date of "original" tasks in the schedule.
- The baseline dates do not change automatically and act as a record of where the schedule started originally as your plan and actual dates are updated. The will be used in your Project Recap Analysis report to analyze the timing and duration of your tasks
Constraint date
- This date field appears when you use constraints, such as must start on or start no earlier than.
- You can only establish a constraint date for either the start or completion date of the task, not both.
- This date does not move, while the plan and actual dates may vary.
Definition of constraint types
As soon as possible
- This is the default constraint for new tasks and is the designed way of letting the system assist with updating your schedules for you.
- The plan start dates & plan complete dates of your tasks will shift as tasks either get completed early or late, hence, keeping the assigned user(s) working as soon as the task is ready to start.
- For example, once a task has been started and the assigned user(s) on the task enters time through the My task widget, this will populate the actual start date for the task. To complete a task, the assigned user(s) check they are done with the assignment/task, which then locks in the actual completion date. After this, the following task (predecessor) is ready to begin.
As late as possible
- With this defined constraint, Workamajig schedules the latest possible start and finish dates for the task, given other scheduling parameters. This means the tasks will not push beyond the latest date set in the plan complete date of the task. The task can still be started early, however, there isn't much indication of this as the dates you pass along are always going to be pushed to the latest dates possible. Also, if a task takes longer to complete than what was defined, your next task will be overdue by that same amount of days as well.
- This is the default constraint when a project is set with the scheduling direction of from project completion, which requires a project due date.
Must finish on
- This inflexible constraint indicates the exact date on which a task must finish. The system does not prevent you from marking the task complete before or after that date, however, the task will permanently turn red if you mark it done on a date other than the constraint date.
- Regardless if the task is red, when it's marked 100% done, it will not affect the current status of the project (Active projects widget). For example, if a task is red, yet 100% done, and then the remaining open tasks are green, then the project status is green.
- The tasks plan due date is used initially for the constraint date.
Must start on
- This inflexible constraint indicates the exact date on which a task must begin. The system does not prevent you from beginning the task early or late, however, the task will permanently turn red if you start it on a date other than the constraint date.
- To start a task, an assigned user on the task will need to update the task in some way via the My task widget. This is most commonly done by simply entering the time on that day via the widget.
- The task's plan start date is used initially for the constraint date.
Finish no earlier than
- This moderate constraint indicates the earliest possible date that this task can be completed. It cannot finish any time before the specified date or else the task will permanently turn yellow.
Finish no later than
- This moderate constraint indicates the latest possible date that this task can be completed. It can be finished on, or before the specified date without effect to the status. However, if it's marked done after this date, then the task permanently turns red.
- For projects scheduled from the finish date, this constraint is applied when you type a finish date for a task.
Start no earlier than
- This moderate constraint indicates the earliest possible date that this task can begin. It cannot start any time before the specified date or else it will permanently turn red.
- For projects scheduled from the start date, this constraint is applied when you type a start date for a task.
Start no later than
- This moderate constraint indicates the latest possible date that this task can begin. It can start on or before the specified date, yet if it started after the constraint date, then it will permanently turn yellow.
Duration of project
- This constraint is typically used for administrative tasks that will span the duration of the project. You can then enter a bulk amount of hours for "account management" or similar services. These hours will then be spread out on the staff schedule screen based on the allocated hours to the person/service.
-
The plan duration is based on one of two factors:
- If this is the only task (or all tasks are set to duration of project), then this task's plan start & plan due date are controlled by the project's start & due dates.
- If there are other tasks in the schedule with constraints other than duration of project, then these tasks' plan start & plan due date are controlled by the task with the earliest plan start date & the latest task's plan due date.
- Tasks that are set to this constraint MUST be top-level tasks, nested tasks will not see this as a constraint choice.
- Predecessors do not work with project duration tasks.
Detailed definitions
As soon as possible / as late as possible
If there is no actual start date:
- If the plan start date is before today then:
Task status = YELLOW
Schedule note = "The task should have been started by today, but there is no actual start date."
- If the plan complete date is before today then:
Task status = RED
Schedule note = "the task should have been completed before today, but there is no actual completion date."
Else there is an actual start date:
- If the actual start date is later than the plan start date then:
Task status = YELLOW
Schedule note = "The task should have been started earlier."
- If there is no actual complete date then:
If the plan's completion date is before today then:
Task status = RED
Schedule note = "The task should have been completed before today, but there is no actual completion date."
- Else there is an actual complete date then:
If the actual completion date is later than the plan completion date then:
Task status = RED
Schedule note = "The task should have been finished earlier."
Must start on
If there is no actual start date:
- If the constraint date is earlier than today then:
Task status = YELLOW
Schedule note = "the task should have been started by today, but there is no actual start date."
- Else the constraint date is not earlier than today then:
If there are preds then:
For each pred
If the pred’s plan complete date is later than the constraint date then:
Task status = YELLOW
Schedule note = "One or more predecessors of this task will not be complete before the constraint date."
Else there is an actual start date:
- If the constraint date is different than the actual start date then:
Task status = YELLOW
Schedule note = "The task start date has not been met."
Start no earlier than
If there is an actual start date:
- If the actual start date is earlier than the constraint date then:
Task status = YELLOW
Schedule note = "The task was started too early."
Start no later than
If there is no actual start date:
- If the constraint date is earlier than today then
Task status = YELLOW
Schedule note = "The task should have been started by today, but there is no actual start date."
Else there is an actual start date:
- If the constraint date is earlier than the actual start date then:
Task status = YELLOW
Schedule note = "The task start date has not been met."
Must finish on
If there is no actual complete date:
- If the constraint date is earlier than today then
Task status = RED
Schedule note = "The task should have been completed by today, but there is no actual complete date."
- Else the constraint date is not earlier than today then
If there are preds then:
For each pred:
If the pred's plan complete date is later than the task's plan start date then
Task status = YELLOW
Schedule note = "One or more predecessors of this task will not be complete before this task must start in order for this task to be complete by the constraint date."
Else there is an actual complete date:
- If the constraint date is different than the actual complete date then:
Task status = RED
Schedule note = "The task completion date has not been met."
Finish no earlier than
If there is an actual complete date:
- If the actual complete date is earlier than the constraint date then:
Task status = RED
Schedule note = "The task was completed too early."
Finish no later than
If there is no actual complete date:
- If the constraint date is earlier than today then:
Task status = RED
Schedule note = "The task should have been completed by today, but there is no actual completion date."
Else there is an actual complete date:
- If the constraint date is earlier than the actual complete date then:
Task status = RED
Schedule note = "The task completion date has not been met."
Additional considerations
Auto-scheduling
By default, the system is designed to adjust the start and end dates of tasks for you each night. There are three global options that control how the constraint of as soon as possible works.
These options are located in Menu > Admin > System setup > Account information > Transaction preferences > Project.
- Push schedule dates on tasks: This option pushes out the start date of tasks that have no actual start date to the next day. This effectively pushes out the end date of those tasks, based on the days in duration of those tasks. Once the time or a percent has been entered on the task, the plan start date no longer gets pushed.
- Push schedule end dates on started tasks: This option allows tasks with an actual start date, to push the end date and the days in duration to the next day with each night's recalculation. This way, tasks remain on the Staff schedule screen as a "task still assigned to the user" for the current day. Once the task is marked 100% complete, then the plan due date no longer pushes.
- Actual dates change the plan dates: This option allows a task with an actual start and/or complete date to update the plan dates to align with the actuals. This allows the remaining tasks to be auto-scheduled. If you want to keep a record of the project schedule's original dates, then use the Finalize option the first time you make your project active.
For more on this, refer to the Auto-schedule [in-depth guide].
Set baseline/original schedule
This feature allows you to capture the project's original task plan start/complete dates as part of your project debriefing analysis.
After the schedule has been finalized and prior to "activation", click ...More> Set baseline.
This will copy the current plan start/plan complete dates into baseline start/baseline complete fields.
While the project is in progress, you may edit the schedule by adding/removing tasks or changing the current workflow. At this time, instead of resetting the baseline dates of all tasks, you can set/reset selected tasks on the schedule
check the box on the far left side of the task line>click Set baseline
This will update/add the Baseline date for the selected tasks.
Planning from the start date
When using the default constraint of as soon as possible, you do not need to make sure the plan dates of the task meet up with the project due date. Instead, plan for how long the tasks take to actually complete. Then if the schedule goes longer and pushes the due date of the last task past the project due date, then the project status turns red to alert you the schedule is taking longer than the due date of the project.
Project templates with constraint dates
In your project templates, if you set a constraint date, this does not translate into a new project since all dates are unique to when that project starts. So all constraint dates are set to the start date of the project. The idea here is that you need to choose what these will be.
Another alternative to using constraints is to adjust how your predecessors are linked and possibly the use of Lag.
Holidays
If you have a company holiday in the calendar (public company meeting, blocked out, all day), then you cannot have a task plan to start or complete on that day. The schedule will automatically take these company holidays into account. This also applies to weekends.