Introduction – Sequencing of Parallel Tasks
LYNX has multiple scheduling engines that calculate and assign a Task Scheduling Priority to each task within a project:
- The LYNX Critical Chain Scheduling Engine (see also CCPM Workflow Rules)
- The LYNX Load Factor Scheduling Engine
These task scheduling priorities are always automatically calculated through one of the engines.
As a user, it is also possible to set a Task Priority. Which provides the user the opportunity to control a sequence of “parallel” tasks within project. The Task Priority has a default value of “500”:
The article will cover how and when to use the “Task Priority” as a user.
Example with Parallel Tasks
In this article we are using the “Priority 500” project:
Within this project the following two tasks are defined:
- Software Development Module A, with a duration of 15 days
- Software Development Module B, with a duration of 10 days
Both of these tasks need a Software Engineer and in this case only Mike Dempsey is available as a Software Engineer for 100 % of his time. Therefore, these tasks can’t be performed in parallel, due to so-called “Resource Contention”. The LYNX Scheduling Engines will do the following in these situations:
- Identify resource contention or invisible (resource) dependencies between parallel tasks, positioning the tasks sequential;
- Extend the length of the “longest chain” of a project including these resource dependencies;
- Determine the order of the tasks based on the duration of the tasks, with as rule that taks with a shorter duration are scheduled first and before tasks with a longer duration (see explanation in paragraph Job Sequencing)
In this example the Task “Software Development Module B” is scheduled first as it has a shorter duration than the task “Software Development Module A”.
Using the “Manual Task Priority”
It may be preferred or required that the Task “Software Development Module A” should be scheduled first and before the task “Module B”.
This can be achieved by increasing the task prioritiy of the task Module A or by decreasing the priority of Module B. In our example, the priority of task “Module A” has been increased to 600.
As a result, the task Module A has been rescheduled before task Module B, as shown in the picture below:
Job Sequencing: Shortest Processing Time First
LYNX uses the Shortest Processing Time First (SPTF) or the Shortest Job First (SJF) as its scheduling principle. When all tasks have the same delay cost, the preferred scheduling strategy is to do the shortest task first. The objective is to minimize the flowtime. Minimizing the average flowtime is an interesting way to optimize resource consumption.