Project Plan 365 Scheduling Engine
What method does Project Plan 365 use for scheduling projects?
Project Plan 365 uses an enhanced scheduling engine starting from Precedence Diagram Method. Precedence Diagram Method (PDM) is a method for scheduling projects based on project start date and tasks duration and predecessors. The PDM algorithm allows only auto-scheduled tasks and all tasks need to be on the same indent level. Summary tasks, manual tasks, or other constraints like calendars and tasks constraints are not allowed. This algorithm is used to calculate early start date, early finish date, late start date, late finish date, and slack.
We enhanced this method in order to be used on general projects, where we can have any type of tasks (auto tasks, manual tasks, placeholder tasks, split tasks, null tasks and summary tasks). Also, this new method allows having constraints and considers calendars and resources. Also, all the constraints for a task and all types of predecessors are taken into consideration. For this, we create multiple graphs of tasks which allow us to find the optimal way to schedule a project.
How does the Project Plan 365 Scheduling Engine work?
The Project Plan 365 Scheduling engine works as described below:
First Step: Create a graph where nodes are tasks and edges are precedence relations between tasks and do a topological sort to get the order in which we should process the tasks so we calculate early start and early finish dates.
Second Step: Create another graph for successors of tasks and calculate the late start and the late finish dates so we can calculate the real start and finish date of tasks and slack and we can obtain the project duration, finish date and critical path with better accuracy.
Third Step: Compute other task fields like cost, work and make sure that resource assignments are calculated correctly.
Step by step on how Project Plan 365 Scheduling Engine works:
Example: The diagram below is an example of a project starting on January 1st 2018 having five tasks, together with the precedence graph:
- The first step of the algorithm is to create a directed acyclic graph where nodes are tasks and edges are precedence relations between tasks. Because this digraph is acyclic, we can do a topological sort and get the order in which we should process the tasks. Based on this order, and on other fields like constraint date, constraint type, calendar, predecessors, we calculate early start dates and early finish dates.
- The next step is to create another graph for successors of tasks and calculate the late start dates and the late finish dates. Based on these dates, we can calculate the real start and finish date of tasks and slack. If a task has zero slack (early start date is equal to late start date) it is critical. Using this approach, we managed to obtain project duration, project finish date and critical path with better accuracy.
- The last step is to compute other task fields like cost, work and make sure that resource assignments are calculated correctly.
Note: Workflow below describes the main steps in our schedule engine.
Using this method, Project Plan 365 has obtained a scheduling engine which can be used on any type of project, starting from small projects up to very big projects which can have many different tasks, resources, resource assignments, calendars and other constraints. This new scheduling engine was tested on multiple real projects and had obtained very good results.