A project scheduling tool can be very useful for managing projects, but if not used properly it can be confusing. This is not because the tool is poorly designed but because there are many interactions between multiple features. This is the first article in a series designed to explain how the main features of scheduling tools work and interact with each other. The discussion is based on Microsoft Project for Windows and OmniPlan for OS X, but also applies to other tools. One important criteria when selecting scheduling software is the ability to perform all the functions discussed in these articles. For instance many products lack the ability to level resources, making them a poor choice for managing a project.
What is a project schedule and what is it used for?
A project schedule is a model of the work to be done. It is used to design the best way to do the work and to track progress against the plan. Its greatest value is the ability to automatically update the entire plan to reflect changing circumstances. Changes are inevitable in a project and without being able to control its impact the work is performed randomly causing problems and rework, or perhaps following a flawed plan that leads to failure.
There are five stages to create a good project schedule, they are:
- task identification
- duration estimation
- resource allocation
- resource levelling
Each step should be done in the correct sequence and no step should be omitted.
1- Task identification
A work breakdown structure (WBS) is essential for identifying the tasks. Ideally the WBS should have 3 levels, with the bottom level corresponding to the tasks. The WBS can follow the project phases
- Initiation, Execution, Closure
- Deliverables within each stage
- Tasks to create the deliverables
This creates a schedule based on project deliverables. Additional levels can be used for documentation and structure, but the essence of a good plan is in the 3 levels discussed above.
2- Duration and effort estimation
There are two main types of tasks: constant duration and constant work (Project) or constant effort (OmniPlan). The type must be defined for each task in the schedule.
Constant duration tasks have inelastic time, which means that the duration is independent of the effort; for instance delivering a training session requires an elapsed time to complete which cannot be accelerated by the addition of more instructors.
On a constant work/effort tasks the effort to complete the task is independent of the number of people working on it; for instance building an item requires a fixed amount of work performed by a skilled resource, and the allocation of multiple resources does not reduce the amount of work required, although it may reduce the duration.
There are three task parameters to consider, the first 2 are estimated and the last one is arbitrarily assigned:
- Task duration
- Task work or effort
- Allocated effort
These three parameters are related by the fundamental scheduling relationship:
If one of the factors is kept constant then any change must affect the two other remaining factors to keep the relationship balanced. For instance if the duration is constant then increasing the allocated effort results in more work. If the work is constant then increasing the allocated effort reduces the duration.
There are many estimating techniques for task duration and task work that can be used depending on the type of project and technologies employed. Some common techniques are using past experience, functional decomposition of the task, using industry metrics, etc.
Tasks need to be performed in a certain sequence defined by pre-requisites and other requirements. Sequencing is the process of identifying and modelling the task dependencies using the correct type of link. It is best to define dependencies at the lowest level of the WBS (the task level) to have full control, and because some types of dependency only work at the task level.
Task constraints (as soon as possible, as late as possible, etc.) should also be defined at this stage. Setting actual dates limits the ability of the scheduling tool to automatically adjust the plan when a task changes, so this should be used with great care and only when there is an external constraint on the task date.
4- Resource allocation
The first step is to define all the resources that will work on the project so you can allocate them to tasks. There are two kinds of resources, time based and per-use. Time based resources such as people are applied according to the allocated effort. Fixed use resources are applied in full, such as travel. For time based resources the available time must be defined, such as part time or full time, holidays and other unavailable time.
Other parameters that need to be defined are time cost (normal and overtime), and cost per use.
The best strategy is to identify each individual project team member, either by name or title. It is also possible to use generic groups of resources such as ‘designers’ and define multiple interchangeable units, but this limits the visibility and management of their function.
The second step is to allocate the appropriate resources to tasks depending on skills. This may affect the duration of the task or the allocated effort of the resource depending on the task type.
The final stage is to ensure that the schedule is workable and that it meets the project constraints of time, cost and scope. At this point the project schedule will have a defined sequence of tasks and a critical path. Levelling is used to ensure that each resource is utilised to their capacity and that there is no over-allocation of work, so that the plan is feasible.
As the total amount of work is now fixed, and the tasks dependencies and other constraints define the sequence of tasks (known as the project network), the two variables that can be used to optimise the project outcome are duration and allocated effort.
There are many scheduling tools available, but only a few have resource levelling capabilities. This is a fundamental feature of scheduling, so any tool that lacks the ability to do automatic levelling is not worth considering.
The project schedule should be an easy thing to create and use. If done correctly it is an invaluable aid for the project manager, otherwise it is either the source of many headaches or not much use at all. Recycling or using a template can save time but it is always a good practice to follow the five stages and gain a deep understanding of each element of the schedule. Time spent at this point will be time saved later when progress is being tracked and the inevitable changes need to be made.