Management of Multiple Concurrent Projects with A Fixed Set of Resources
Many companies pursue a stream of small projects continuously over time and concurrently execute several projects at any given time using common resources across projects. We may find such companies in fabrication industries, engineer-to-order (ETO) manufacturing, custom manufacturing, architectural woodworking, software business, labs, prototype development, etc. Some service-oriented companies and maintenance departments also pursue the same. These companies usually have a fixed set of resources and face certain limits to increase or decrease the resource set. The limited, shared resources play a major role in multi-project management. Start time of any task is determined by not only the completion times of preceding tasks but also the availability of required resources. The waiting of tasks for resources is more common than the waiting for completion of preceding tasks when numerous concurrent projects are executed using many common resources of finite capacity. In such environment, project completion times depend not only on task durations and precedence relations among tasks but also on resource requirements of tasks and resource availability. In this environment, the resource requirements and resource availability have a major impact on the progress of projects and therefore, resource management plays a vital role in multi-project environment with limited resources.
When a company is interested or required to pursue a new project, given the current situation with planned and ongoing projects, the questions faced by the company include:
- What is the earliest possible completion time of the project without any adverse effect on the existing projects?
- What is the right time to start the project so that the project neither misses its target date nor has long duration due to tasks waiting for resources?
- What is the capacity enhancement plan if the project has a specific due date that is fixed by customer or top management?
When a project is falling behind and likely to miss its target completion date, the company also faces a difficult question, "How to minimize task waiting times (for resources) of the project to avoid further delay? Many similar questions can arise in multi-project environment with limited, shared resources.
CPM-Based Approach to Multi-Project Scheduling:
In spite of potentially strong influence of limited resources on the progress and completion times of projects in multi-project environment, some companies still seem to independently schedule multiple projects by using Critical Path Method (CPM) that ignores resource requirements of tasks.
When concurrent projects are to share some limited resources, CPM approach can result in unrealistic (overoptimistic) estimation of completion times of individual projects. This is because the assignment of resources to tasks in real time is going to invalidate CPM-based estimates of project completion times. Also, CPM approach does not provide a good guideline for optimally selecting project start times which usually impact project durations and completion times. Some people may use experience, intuition and thumb rules for determining project start times. A major drawback of CPM-based approach to multi-project scheduling is the possible frequent occurrence of conflicts among project managers for limited resources. Manager of every project tries to highlight how his project will get delayed if he does not get the required resources at right times. Therefore, CPM-based approach to multi-project scheduling ignoring the requirement of shared resources is ineffective in general. It seems that many concepts such as floats and critical path are not much effective for multi-project management.
Manual Resource Leveling in CPM-Based Multi-Project Schedule:
Some companies develop multi-project schedules using CPM-based project management software and manually resolve the resulting resource conflicts / overallocation by providing extra resource hours or by shifting some tasks over timeline when extra resource hours are not available as required. This is a laborious and time-consuming effort that is needed mainly because many project management tools are unable to automatically generate resource-leveled, multi-project schedules. A major problem with this approach is obviously the need for laborious effort whenever a multi-project schedule is to be updated based on the progress. Moreover, it is not easy to determine right project start times in multi-project environment (with shared resources) with the help of manual resource leveling methods, particularly when initial tasks of projects are not delayed by resource availability. This is more challenging in a system with multi-skilled workers and multi-functional machines. To simplify resource-constrained, multi-project management, some people dedicate resources to different projects. This may sometimes reduce overall resource utilization and project completion rate.
Capacity Planning:
Management often sees a need for capacity planning in multi-project management with shared resources. Capacity planning is a planning exercise for correctly determining in advance the extra resource hours required over time for dealing with project delays, project priority changes and acceptance of a new project with short lead time. Short-term capacity planning is done by providing overtime for resources or arranging extra shifts on some days. On the other hand, long-term capacity planning is done by acquiring more resources or training people for additional skills. Capacity planning may also involve outsourcing some tasks or sub projects. The objective of capacity planning is to have the capability for arranging extra resource hours at right times in order to prevent as much as possible further delays in projects that are falling behind. However, it may not always be possible to add new resources or increase available hours for any resource as much as needed and whenever needed.
The load on any resource (with a specific skill set or functionality) may keep changing as projects progress and project mix changes. Thus, some resources may become bottlenecks during certain periods and remain underutilized over some other periods. It is quite likely that some resources may even remain bottlenecks always. The bottleneck resources increase project durations by forcing tasks to wait for them. If we need to reduce project durations and increase project completion rate (the overall system throughput), then we must identify and mitigate bottlenecks as much as possible. This exercise can be viewed as capacity planning. It is an important part of resource management in multi-project management with shared resources. If a project falls behind its schedule significantly, then a rational approach to avoid further delay in the project is to keep resources available as and when needed by the project without affecting the progress of other projects. The advance identification of extra resources hours at right times for this purpose amounts to capacity planning.
Capacity planning usually involves capacity enhancement for some resources over some time intervals to deal with project delays and acceptance of new projects with high priority (in multi-project environment). Capacity planning is not easy in multi-project scenarios when capacity of some resources can be enhanced only to a limited extent and there is very little possibility for capacity enhancement for some other resources. Resource-leveled scheduling is essential for capacity planning in such scenarios which are not uncommon in project management world.
Finite Capacity Scheduling for Multi-Project Scheduling:
In multi-project environment with shared resources of limited capacity, CPM-based approach is not effective for resource-leveled scheduling and capacity planning. CPM implementation and subsequent resource leveling exercise are not the best approach for this environment either. Moreover, it is not easy to find CPM-based project management software which can generate a resource-leveled, multi-project schedule with optimal project durations automatically and satisfactorily. A viable approach here is finite capacity scheduling (FCS) methodology that can automatically generate a resource-leveled, multi-project schedule. FCS will not schedule any task without first ensuring that the required resources are available for the task. In this environment, FCS can be described as resource-constrained, multi-project scheduling. FCS will be very useful when a fixed set of resources are to be shared across numerous small projects.
There are a few powerful, FCS-based software tools for resource-leveled, multi-project scheduling and capacity planning in multi-project environment where concurrent projects share a fixed set of resources and it is not easy to buy or sell machines and hire or fire resources at will.
The author, Dr. Prasad Velaga has been implementing finite capacity scheduling methodology in resource-constrained, multi-project, manufacturing environment.
I am currently in this situation where I have two workstreams with a fixed small group of people who will need to work on both around the same time. Is there a tool I can populate to visually see where there are potential risks/overlap, etc.?
Capacity planning and finite capacity planning should be given concern to ensure earliest possible completion of new project without any adverse effect on the existing projects. Sometimes new projects are scheduled without considering its effect on other ongoing projects.