Our previous article on Project Management Framework had set the background for how a ‘Schedule’ forms the foundation for all calculations in Project Management. One of the huge highlights in our Project Management templates (Example: Project Manager Excel Template) is the ‘Automatic Scheduling Engine’ which, as the name suggests, automates the schedule creation step and saves enormous amount of time for the Project Manager. In this article, we will understand what ‘Automatic Scheduling’ is and why we need it.
WHAT IS A SCHEDULE?
A schedule lays out how we will complete the work needed for the project using the resources available. It should clearly state who will be working on what task for how long on a given day. Let’s take this example 7-day schedule.
In the example above, we can see that RES 1 assigned to TASK 1, will work for 9 hours on that task on Mar 1st and 1 hour on Mar 3rd. RES 2 assigned to TASK 2, will work on that task for 5 hours on Mar 7th. No work will be done on TASK 3 in the entire week.
So, how do we build such a schedule? Let’s start with what we have as Inputs.
INPUTS
On one side, you know the work (also referred to as Tasks) that needs to be done. On the other side, you have the resources that are capable of performing that work. The Project Manager assigns each task to one of the resources available based on skill. That’s it from a high level. It sounds easy but it can get complicated very quickly when we get into the finer details.
To illustrate this, let’s take this simple example where we have 3 tasks and 2 resources for our Project that begins on Mar 1st.
In the above image, we have the three tasks and their information.
1. HOURS OF WORK Hours of work required for each task is specified. They can vary by task. TASK 1 takes only 10 hours of work while TASK 2 takes 25 hours.
2. START DATE CONSTRAINT A task can have an external start date constraint. TASK 3 cannot start until Mar 15th. To perform the task, we need an equipment that will not arrive until Mar 15th.
3. PREDECESSORS Tasks can have dependencies between them. TASK 2 cannot begin until TASK 1 is complete. TASK 1’s output could be the input to start TASK 2.
4. RESOURCE ASSIGNMENT Each task is assigned to a resource. Our templates support only one resource assignment to a task. More than one resource cannot be assigned to a task.
There are two more slightly advanced factors. These are handled in our templates, but since this is a simplified example, we will demo these two in separate articles. For the sake of completeness, we will just review the concepts in brief here.
5. ALLOCATION % On occasions, we would like a resource to work in parallel on multiple tasks. We would like to set max % of time that a resource should allocate to one task. For example, resource is assigned to 2 tasks and both can be done at the same time. Then, we can set 60% of time to spend on first task and remaining 40% to second task.
6. PRIORITIZATION In a more realistic project scenario where we will have numerous tasks, a resource can be assigned to several tasks. We may need to control the order in which the resource handles those tasks. For example, work on TASK 25, then work on TASK 38 and then work on TASK 34. The template allows us to prioritize tasks. By default, the order in which the tasks are entered is assumed to be the priority order.
Now, let’s look at the Resource side.
1. STANDARD WORK HOURS Each resource may have different work hours. In this case, RES 1 works for 8 hours Mon-Fri, while RES 2 works for 5 hours Mon-Fri.
2. VACATION/OVERTIME RES 1 is available to do Overtime on March 1st for an hour, while RES 2 is going to take vacation of 5 hours on Mar 4th
3. COMPANY HOLIDAYS March 2nd is a company holiday and no work will be performed on that day.
Now, we have to build a schedule for all the three tasks, given all the above inputs and constraints.
Even for such a small project, it doesn’t sound so simple anymore, does it?
Not to worry. This is why we have our Automatic Scheduling Engine.
AUTOMATIC SCHEDULING ENGINE
An Automatic Scheduling Engine is embedded in our Project Manager and Project Planner templates. The name may sound cool, but here is the secret: it’s nothing more than a set of interconnected complex formulas. This engine takes into account all the inputs we saw above, and prepares the schedule for us, saving tons of time and ensures the rules are followed correctly.
To illustrate it, let’s look at the 7-day schedule again.
TASK 1 which needs 10 hours of work starts on Mar 1st. 9 hours of work were performed. This is taking into account the Standard Work Hours of 8 hours by RES 1 and 1 hour of Overtime. No work is scheduled for Mar 2nd, as that’s our Company Holiday (highlighted in Purple). Then, the work continues on March 3rd for 1 hour and that completes the 10 hours (Hours Required) .
TASK 2 can start only after TASK 1 is complete (Predecessors). So technically it could have started on Mar 4th (as TASK 1 completed on Mar 3rd), but RES 2 is taking that day off (Vacation). RES 2 also does not work on Saturday and Sunday according to the Standard Work Hours. So, the work only begins on Mar 7th with 5 hours.
TASKS 3 doesn’t start until Mar 15th, as we had a Start Date Constraint.
As you can see from the above tasks, the schedule is taking into account all the inputs and constraints. You can also see an overview of the schedule in the Gantt Chart below.
It may take a few iterations to land on a schedule/plan that is acceptable. As a Project Manager, one can play with the following levers.
- List of Resources who will work for the project
- Availability of those resources (standard hours, overtime, vacation)
- Assignment of resource to task
- Scope of Task(s)
When we make changes to one or more of the above inputs, our Automatic Scheduling Engine will then update the Schedule and the Plan summary. If we are happy with the result, we can then finalize the plan and lock it. Without an automated method of scheduling, the process can take a really long time and can be filled with errors.
SUMMARY
In this article, we covered what a Schedule is, what the inputs to a schedule are, why automatic scheduling is needed and what levers we have to tweak the schedule.