Introduction

Projects exist in various sectors (constructions, shipyards, manufacturing, healthcare, education, government, etc.) of the economy. The Project Management Institute defines a project as a “temporary endeavor designed to produce a unique product, service, or result” (PMI 2013). Typically, projects are divided into tasks and sub-tasks, which require renewable (machines, tools, work force, etc.) or non-renewable (raw material, fuel, energy, etc.) resources. The tasks and sub-tasks often compete for the same set of limited resources. In addition, tasks can have general temporal constraints resulting from technological or organizational restrictions (Rieck et al. 2012).

Project scheduling consists of determining start times for all tasks such that temporal and/or resource constraints are satisfied and some objective is optimized (Józefowska and Weglarz 2006). In practice, it is a complex activity, particularly when dealing with multiple projects, where tasks compete for limited resources over multiple projects. A given resource can perform multiple tasks, at different skill levels, that is, a human resource could be a certified electrician and a non-certified plumber. Changing customer requirements and priorities also add to the complexity of project management.

Significant amount of research on allocating limited resources to competing tasks has been reported (Vanhoucke 2013; Naber and Kolisch 2014; Xu and Feng 2014; Shahriari 2016; Hashemin and Fatemi Ghomi 2012; Garmsiri and Abassi 2012; Yaghoubi et al. 2013; Dao et al. 2017; Noori-Darvish and Tavakkoli-Moghaddam 2012; Shahriari et al. 2016; Ighravwe et al. 2016; Garmdare et al. 2017). Bulk of this research falls under the general area of Operations Research. The literature classifies various scheduling problems as Resource-Constrained Project Scheduling Problem (RCPSP), Multi-Mode Resource-Constrained Project Scheduling Problem (MRCPSP), Resource-Constrained Multi-Project Scheduling Problem (RCMPSP), Resource-Constrained Project Scheduling Problem with flexible resource profile (FRCPSP), and Multi-Mode Resource-Constrained Multi-Project Scheduling Problem (MRCMPSP). Despite considerable research activity, there exist significant gaps between theory and practice. It has been reported (AlSehaimi et al. 2013) that construction industry has lower productivity compared to other industries, primarily due to poor resource management. A study by the US National Research Council (NRC 2009) stated that in order to remain competitive, the construction industry needs to manage project schedules, labor, material, and energy costs more effectively. In practice, most projects result in cost overruns and schedule slippage due to poor resource management (Reichelt and Lyneis, 1999; PMI KPMG 2013). The department of Navy also indicated an urgent need to improve project planning in the ship repair industry (DoN 2013; NSRP 2013; Leadership 2013; MARAD 2013).

According to Araúzo et al. (2010), classical methods based on mathematical programming can handle project scheduling when the problem complexity is low and the system stays somewhat static. These characteristics are seldom true in real-world projects. The most commonly used project management tools are Microsoft EPM (MP 2015) and Primavera Project Planner (P3 and P6 versions, Primavera 2015). These tools do not support multiple task modes (i.e., only one way to carry out a task) and do not guarantee accuracy in calculating task duration, when multiple resources and multiple calendars are required. They use a fixed set of rules to level resources.

This paper is an attempt to reduce the gap between theory and practice, in the area of project management. It describes a software tool called “Short-Term Resource Allocation and Management” to address the aforementioned shortcomings. “Literature review” section provides a review of the relevant literature. “Short-term resource allocation and management” section provides an overview of the software tool. “Case study: construction of a single cell box culvert” section describes the capabilities of the software tool via a real-world case study. “Conclusions and contributions” section provides conclusions and contributions of this work.

Literature review

Pritsker et al. (1969) introduced the Resource-Constrained Project Scheduling Problem (RCPSP) for a single task–resource requirement pair. Several variations of the RCPSP method have been proposed. Brucker et al. (1999) introduced the notion of limited renewable and non-renewable resources and conflicts between multiple resources. Hartmann and Briskorn (2010) provided an extensive survey of variants and extensions of the RCPSP method and described solutions for regular and non-regular measures of performance. Bianco and Caramia (2013) developed an exact formulation of RCPSP. Vanhoucke (2013) formulated RCPSP mathematically to minimize the total duration of a project by minimizing the start time of the last task, subject to precedence relations among the activities and limited resources. Siu et al. (2015) utilized integer programming technique to plan an upgrade of an existing oil refinery facility, which included reactors, regenerators, and an overhead system. The authors reported major limitations to the mathematical formulation of the problem, particularly when the problem is large and highly complicated. Other authors such as Drexl et al. (2000), Fundeling and Trautmann (2010), and Bouleimen and Lecocq (2003) also proposed solutions for RCPSP.

Elmaghraby (1977) introduced the Multi-Mode Resource-Constrained Project Scheduling Problem (MRCPSP) as an extension of the RCPSP method. The difference between RCPSP and MRCPSP is that the former has only one pair of task duration–resource requirements, whereas in MRCPSP each task can be performed by selecting one out of many different combinations of task duration–resource requirements. The alternate ways to accomplish a given task are its modes. Naber and Kolisch (2014) described task modes as “a non-pre-emptive, constant resource usage of task over its entire predetermined fixed duration.” Other authors such as Alcaraz et al. (2003), Kolisch and Drexl (1997), Jozefowska et al. (2001), Sabzehparvar and Seyed-Hosseini (2008), and Peteghem and Vanhoucke (2010) proposed both heuristic and exact solution approaches for MRCPSP.

Another extension of RCPSP is the Resource-Constrained Multi-Project Scheduling Problem (RCMPSP). It supports problems where multiple projects compete for the same resource. In RCMPSP, there is only one possible task duration–resource requirement pair (one mode), as in RCPSP. However, RCMPSP works with several projects and project tasks simultaneously, under precedence and resource constraints. Browning and Yassine (2010) implemented RCMPSP by revising the priority rules. Xue et al. (2010) used the neural network approach to solve RCMPSP. Zhang and Sun (2011) utilized priority-rule-based heuristics. Laslo and Goldberg (2008) identified uncertainty in the multi-project environment. Chen and Shahandashti (2009) used simulated annealing, and Araúzo et al. (2010) applied Multi-Agent System (MAS) approach to solve the RCMPSP problem.

Naber and Kolisch (2014) presented Flexible Resource-Constrained Project Scheduling Problem (FRCPSP). They used Mixed Integer Programming (MIP) approach to solve the problem. They explained FRCPSP via an example; if a given task requires 10 person-days, it can be allocated using a constant profile of 2 persons for 5 days, or as flexible profile of 3 persons for 2 days and 2 persons for 2 days. Naber and Kolisch (2014) stated that both exact and heuristic methods need to be further developed in order to deal with real-life projects. Other studies on FRCPSP were conducted by Baumann and Trautmann (2013) and Ranjbar and Kianfar (2010).

The Multi-Mode Resource-Constrained Multi-Project Scheduling Problem (MRCMPSP) allows tasks of several projects to be considered simultaneously, under precedence, resources constraints, with each task having multiple modes. Some of the researchers working on this problem are Speranza and Vercellis (1993), Xu and Feng (2014), and Beşikci et al. (2015). Xu and Feng used the modified Particle Swarm Optimization (PSO) algorithm as the heuristic method to manage construction of a large-scale hydropower plant. They also concluded that exact methods are not capable to solve complex real-world project scheduling problems and highlighted the gulf between research and practice. Mourtzis (2005), Chryssolouris et al. (2004), and Chryssolouris (1999) utilized inputs from different stakeholders when scheduling ship repair tasks. Mourtzis (2005) described computer architecture, databases, and computer programming technology associated with a solution for project scheduling and resource allocation. They used event-driven simulation as proposed by Chryssolouris (1999). They also used heuristics for dispatching rules and multi-criteria decision-making for resource allocations. Pinha et al. (2011) used the supervisory control theory approach to schedule ship repair tasks. Cho and Steven (2005) proposed discrete event simulation to model project progress and heuristics for stochastic project scheduling. Wongwai and Malaikrisanachalee (2011) used heuristic approach to minimize project duration on the multi-skilled resource problem.

Some researchers utilized simulation to schedule tasks in the construction industry (Lu 2003; Lu et al. 2008; Liu et al. 2015; and Hu and Mohamed 2013). Khadem et al. (2017) utilized simulation to estimate delays and budget on a case study from an oil and gas industry. Mortaji et al. (2017) applied Monte Carlo simulation to come up with control limits of a new ex ante control chart to monitor project’s performance schedule. Lu et al. (2008) presented an approach called simplified Simulation-based Scheduling System (S3). Lau et al. (2014) presented an approach to discretize continuous resources. Liu et al. (2015) integrated model information with a simulation framework. They integrated model information within the simulation framework. Siu et al. (2014) proposed a bi-level project simulation methodology, first to determine optimal resource quantities and the shortest duration to accomplish each work package, and second to estimate total project duration and budget through Monte Carlo simulation. Dandage et al. (2017) presented different risk categories and barriers to risk management in projects in the context of scope, time, cost, and quality constraints. Arabzadeh et al. (2017) applied artificial neural network to estimate costs for construction projects in early stages. A case study of a construction project of a spherical storage tank is presented. Jain and Mittal (2016) proposed an algorithm to find the optimal resource allocation for an integrated wireless/cellular model.

Rehm and Thiede (2012) conducted a survey on project scheduling methods and showed that methods were limited to only 51 tasks and most methods lacked the capability to deal with multiple resource constraints and did not focus on the dynamic nature of the problem. Moreover, according to Araúzo et al. (2010), majority of methods based on mathematical models deal with low-complexity static systems. Abrantes and Figueiredo (2015) working with various industrial collaborators indicated that resource management is a major concern for many organizations. The real-world systems have to deal with multiple projects and changing project priorities. They also concluded that most methods described in the literature are not able to provide adequate support to industrial organizations.

The current literature has addressed various elements of the project scheduling problem, such as tasks precedence, resource constraints, multi-modes, multi-skilled resources, multiple projects, multiple resource calendars, resource usage cost, and priority rules. Currently, no approach addresses all of the above in a systematic and integrated manner. The most widely used tools in the industry are Microsoft Project and Primavera Project Planner (P3 and P6 versions). These tools do not support multiple task modes (i.e., only one set of resources for each task), and they use a fixed set of rules for resource allocation, i.e., lack the dynamic resource allocation. They also do not guarantee accuracy in results when tasks require multiple resources with different calendars, resulting in faulty interpretation of finish time of tasks. These shortcomings highlight the need for one approach that can properly assist project managers in dealing with resource allocation.

Short-term resource allocation and management

The paper presents a software tool named as short-term resource allocation and management. The authors use the term short-term resource management to highlight this tool’s ability to manage resources in near real time. It solves the Combinatorial Multi-Mode Resource-Constrained Project Scheduling Problem (CMRCMPSP) described in (Pinha 2015, Pinha et al. 2016) which is another extension of the RCPSP. This approach was a result of lessons learned while working at one of the largest ship repair facility in the world located in Rio de Janeiro, Brazil. This facility, like many others, was prone to cost overruns and schedule slippage, largely due to poor resource management. This paper does not present the shipyard case study due to confidentiality restrictions. However, the next section illustrates system’s capabilities using a case study by Lu et al. (2008). This software tool is capable of scheduling multi-mode tasks where limited resources are shared over multiple projects. The tool can also handle resources with multiple capabilities and skill levels, multiple priority rules, and multiple calendars. It supports renewable, non-renewable, and doubly constrained resources. The primary objective of this tool is to assess impact of short-term scheduling decisions on overall project cost and schedule. Short-term scheduling refers to day-to-day or weekly decision-making activities. Midterm scheduling has a time horizon of 1–3 months, and long-term scheduling deals with time horizon of more than 3 months. Short-term scheduling activities are significantly more complex than midterm or long-term scheduling. Mid- to long-term scheduling assumes a relatively stable system. In a day-to-day scheduling environment, decisions have to be based upon current resources, priorities, customer requirement. The software tool evaluates impact of alternate short-term decisions on overall cost and schedule by simulating the downstream activities. Modern computers can do the required computations in a matter of few seconds. Such an approach enables project managers to adapt to the changing environment in a rapid manner. A worker not showing up for work can cause changes in the resource profile for the task and will affect not only that task, but also other downstream activities. The simulation tool assesses the impact on downstream activities and can generate a series of feasible solutions. Alternate feasible solutions are provided to the project managers so that they can make their decisions under the current circumstances.

System architecture

The simulation tool does not attempt to find a single “optimal” solution; instead, it provides a series of feasible solutions and their impact on cost and schedule. Given various options, the project manager can conduct “what-if”-type analysis. He/she can also propose an alternate solution and have the tool to analyze its impact on overall cost and schedule. That is, impact of a short-term decision can be evaluated prior to it being carried out. Such an approach is well suited for systems operating in a dynamic environment. In practice, the project managers do not have the luxury of time to assess impact of daily decision on overall project cost and schedule. The proposed tool also generates other metrics such as resources utilization and task waiting time due to unavailability of resources in a timely manner. The overall system architecture is shown in Fig. 1.

Fig. 1
figure 1

System architecture

The outputs generated by the software tool are: (1) resources utilization, (2) schedule, (3) procurement issues, (4) tardiness analysis, (5) cost analysis, and (6) lead times. These outputs can be affected by the priorities, capacity levels (hiring temporary workers, authorizing overtimes, preventive/predictive maintenance), subcontracting of critical tasks, etc. They also provide insight to the project manager regarding: (a) workforce flexibility, (b) classification of resources by worker skill levels, (c) task precedence order, and (d) alternate approaches to perform a given task. Tables 1 and 2 describe the various inputs and outputs of the system, respectively.

Table 1 System inputs
Table 2 System outputs

Simulation method

The simulation method utilizes the general discrete event simulation approach which was tailored to address the CMRCMPSP. It can insert or delete an event during a particular simulation period. Events, such as start task, finish task, start resource maintenance, finish resource maintenance, can also be inserted or deleted. Simulation period is defined as the time between a starting date given by the manager and the date of last executed task. Pseudocode of the method is shown in Table 3. Simulation clock is a global variable, initialized in line 2 of the pseudocode. This variable controls how the time goes by during the simulated period. The project manager can provide its initial value. In line 3 of the pseudocode, the eligible task modes join the queue. The “Run Queue” procedure on line 4 is activated to create finish tasks based on eligible modes. The “Run Queue” procedure also triggers priority rules in order to identify the “winning” task mode for those tasks waiting in queue for resources. The simulation process keeps running until there are no more events (lines 5–25) to be executed. Line 6 selects the most imminent event. Line 7 verifies if the most imminent event is to finish a task, if so, the simulation clock is updated in line 8 and the finish time is registered in line 9. In line 10, the resources are released. The task’s successors could also be released if the number of their predecessors already finished by the simulation (the variable N. Pred. Done) is equal to the number of predecessors for a given task (lines 14–15). In order to release a successor task, all its predecessor tasks must be finished. Lines 16–18 register dates and modes are added to the queue. The executed event is then removed from the list of events (line 22). Line 23 calls the procedure “Run Queue,” and the simulation keeps running while exist events to be executed.

Table 3 Discrete event simulation algorithm

System capabilities

The multiple modes approach to scheduling provides greater flexibility since each task can be carried out in several different combinations of resource requirements. The software tool supports unlimited modes and provides an ability to the project manager to define new modes based on changing circumstance. The tool first attempts to assign the set of resources defined by the first mode. If the required resources are not available, it attempts to assign the required resources defined by the next mode. This procedure is carried out for all modes. If the required resources are not available for any mode of a given task, then the task has to wait until the resources are available. In the proposed method, one mode may represent the least resource requirements to start a task. The multiple mode flexibility covers the concept of resource-driven task duration defined in Wongwai and Malaikrisanachalee (2011), where tasks can start with partial resource requirements fulfillment. The tool allows the project manager to redefine the mode order or to change the rankings to different modes. The redefinition of mode order could be due to a variety of reasons, such as quality, speed, or cost. The simulation tool allows for both deterministic and probabilistic values for mode duration independent of resource requirements among the various modes. For instance, if mode 1 requires more resources in comparison with other modes, it does not imply that duration of mode 1 will be longer or shorter than other modes. Additional equipment or labor may not result in shorter task duration.

Typically, scheduling methods are limited to a single-skilled resource. This assumption does not reflect reality. A worker can have multiple skills, at varying skill levels, e.g., a worker could be a certified electrician and an uncertified plumber. The software tool addressed this problem by providing qualitative criteria, such as excellent, good, satisfactory, and not applicable, to each skilled resource. This approach is different from the one described in Wongwai and Malaikrisanachalee (2011). In addition, various time constraints, such as vacations and overtime restriction, can be assigned to each skilled resource. If a task requires a certain skill, e.g., welding, it checks available resources that have welding as their primary skill. If none is found, it checks for resources that have welding as a secondary skill. If found, it assigns that resource to the task. When a worker is assigned to perform a task using one of his many skills, then his/her other skills are not available for any other task. The assumption of single-skill resources result in schedule delay and higher cost.

The software tool uses Parallel Mode Schedule Generation Scheme (PMSGS) described in (Pinha et al. 2015). This scheme selects and ranks task modes instead of eligible tasks at each decision point during a simulation run. Eligible modes are those that are connected to eligible tasks. Different tasks can have modes that require same set of resources at the same time. Figure 2 shows a hypothetical PMSGS scenario with six tasks (11, 12, 13, 18, 19, and 20). Due to the precedence order, tasks 18 and 19 have to be executed before task 20, and task 11 must be executed before tasks 12 and 13. If tasks 11, 18, and 19 have been completed, then tasks 12, 13, and 20 may be eligible to start at the next simulation clock time. Their modes, therefore, are automatically eligible to stay in the queue, and priority rules are triggered if needed to solve resource conflicts. Once a mode is selected, other modes related to that task are dropped from the mode queue. This process is performed for all eligible modes, simultaneously, at a given decision point of the simulation clock.

Fig. 2
figure 2

Modes in queue extracted from Pinha et al. (2015)

Handling of multi-modes and multi-constrained resources for each task requires complex queue management techniques. The software tool handles queues by selecting modes, instead of selecting and ranking tasks. For example, if a task mode requires three types of resources, then it can be started only when all of the resources are available. The system checks multi-skilled workers’ availability and multi-modes simultaneously. Each resource or a set of resources have their own set of rules, which are applied according to a priority order. These rules may be task-based, network-based, critical path-based, or resource-based priority rules. For example, if the priority rules for a given resource are: (1) customer deadline, (2) shortest processing time, (3) immediate successor, and (4) earliest completion time and if two modes of different tasks are in the queue requiring this resource, then priority rule 1 is used to resolve the conflict. If the tasks have the same customer deadline, then the second rule is applied and so on.

Real-world projects also have several calendar constraints that can have significant impact on project duration. Most project management tools focus only on duration estimations for task. Non-productivity times, such as idle times, are extremely complicated and cumbersome to handle ahead of time. An exhaustive analysis of resource queues is required to estimate how long a task will wait for its resources, once it is eligible to start. For instance, if the duration of a given task requires 24 h using a set of resources, it does not mean that this task can be carried out in 3 days in 8-h shifts. The actual duration time depends upon several constraints, including resource calendar constraints. The software tool associates each resource with its daily calendar, and each working shift is decomposed into time intervals, such as regular, idle, or overtime. The calendar can be set up for unlimited time intervals. Since each resource has its own calendar, the slowest resource or the most constrained resource will have the most impact on the actual duration of the task.

System limitations

As discussed, each mode contains a set of resources that are required to execute a given task. When a given task is eligible to get started, the simulation method attempts to allocate the required set of resources among its modes. If subsets of the required resources are not available among modes, a task cannot be started until all the required resources are available for at least one mode. In some circumstances, for instance, the absence of skilled and limited workers does not prevent a task to get initiated. In some projects, even with partial number of required resources, tasks can be still started. As a limitation of this approach, the calculation of a task duration as a function of its partial resource requirements is not provided. Instead, the simulation method uses one mode out of the set of modes as being the least amount of resources which would allow the task to get started. If the least amount of resources requirements are not available for some tasks during the simulation period, as in real life may happen, the system reports those tasks which could not be executed due to the lack of their resources.

Case study: construction of a single cell box culvert

The software tool was applied to the construction of a single cell box culvert project. This case study was selected because Lu et al. (2008) published project data, along with the optimum schedule for the project. Lu et al. (2008) modeled it as an optimization problem with an objective to minimize total project duration. They considered resource limitations, but did not consider multi-modes, multi-skilled resources, and non-renewable resources. They reported 275 days as the minimum project duration.

The case study of the construction of a single cell box culvert involves eight different types of resources and 33 tasks. The resources are: (1) bar bender and fixer (BBF), (2) backhoe with excavator (BE), (3) crawler-mounted crane (CMC), (4) carpenter (CF), (5) concreting labor (CLB), (6) drain layer (DL), (7) skilled labor (LB), and (8) roller (RR). The project assumes work period to be 8 h/day. Table 4 shows the 33 tasks, organized in six groups (A, B1–B11, C1–C9, D1–D9, E1–E2, and F) along with durations, predecessors, and resource requirements of each task.

Table 4 Task description, duration, predecessors, and resource requirements for mode 1

The original case study assumed only one mode for each task and did not consider multi-skilled workers, non-renewable resources, and cost constraints. In order to fully demonstrate the capabilities of our tool, we added an additional mode (mode 2) to each task. For example, mode 1 for task A has duration of 16 days and requires four BEs and eight LBs as resources and mode 2 of task A has duration of 23 days and requires two BEs and five LBs as resources. We also added three skill levels for worker resources, e.g., resource CF has excellent skill for CF tasks, good skill for CLB tasks, and satisfactory skill for LB tasks. Similarly, other resources were assigned skill levels. Due dates for tasks were also added as they represent milestones, commonly found in real-world projects. To evaluate the financial impact of each scenario, we added fixed costs, variable costs, penalty costs, and bonus costs to the input data. Penalty and bonus costs were incorporated in terms of profit or loss per day. We considered seven different scenarios. Scenarios 1, 2, and 3 were the same as those considered by Lu et al. (2008), with scenario 1 being the base scenario. Scenarios 4, 5, 6, and 7 were for the case of multi-skills, multi-modes, multi-skills and modes, and non-renewable resources, respectively. Details of each scenario are described in Table 5.

Table 5 Seven Scenarios

Scenarios 1 and 2 obtained the same result as Lu et al. (2008), that is, the total project duration (TPD) was found to be 275 days. We estimated the cost of this scenario to be $14,347,972. Skilled labor (LB) had the highest utilization (93.35%), whereas the drain layers had the lowest utilization (0.14%). Such information provides important insight into the project. That is, LB could cause resource bottleneck, and increasing the number of LB’s could result in reduction in TPD. The resource utilization and resource requirement for each resource can be described as a resource pair (resource utilization, resource requirement), that is, resources can be reported as BBF (43.29%, 4), BE (19.68%, 4), CMC (34.53%, 3), CF (31.51%, 2), CLB (11.83%, 5), DL (0.14%, 1), LB (93.35%, 8), and RR (13.38%, 4). Figure 3 shows the resource utilization for the scenario 1 (base case) and scenario 2.

Fig. 3
figure 3

Resource utilization

In scenario 3, the objective was to find the optimal number of resource units for the aforementioned bottleneck resource LB. Starting from the base scenario of eight units of LB, one additional unit was considered at each simulation run. Table 6 shows ten simulation runs for scenario 3. Adding more than fifteen LB’s (run 8) does not affect total project duration, and it increases cost.

Table 6 Simulation runs for scenario 3

To evaluate the effects of increasing the number of LB units in terms of total project duration and total project cost, some simulation runs were realized. The results reveal that, when more than 15 skilled labors (LB) are used, there is a slight linear increase in project cost. Figures 4 and 5 show project duration and project cost, respectively. Figure 6 shows the project cost for skilled labor number between 15 and 39 in order to highlight there is a linear increase when skilled labor number is > 15.

Fig. 4
figure 4

Project duration (days)

Fig. 5
figure 5

Project cost (million USD)

Fig. 6
figure 6

Project cost (million USD) for skilled labor between 15 and 39

Scenario 4 deals with the case of multiple skills, under the same assumptions as the base scenario. Four different simulation runs were carried out for this scenario. In run 1, the LBs have CF and CLB skills, and all CFs and CLBs were removed. The number (limit) of LBs was kept at the same level as in Table 1. In run 2, the CLBs have CF skills, and all CFs were removed. The number of CLBs was kept the same as in Table 4. In run 3, LBs have additional CF skills and the two CFs were removed. The number of LBs was kept the same as in Table 4. In run 4, LBs, CFs, and CLBs have three skills each. The number of LBs, CFs, and CLBs was kept the same as in Table 4.

The total project duration and total project cost for the four simulation runs are compared with the baseline scenario of 275 days. Table 7 shows the output of four simulation runs for scenario 4. The negative value of duration days refers to additional days required as compared to the baseline value. Negative values on cost refer to increase in cost with respect to the baseline value. Simulation run number four of scenario 4 provides the “best” solution, where project duration is reduced from 275 to 224 days (51 fewer days), and total project cost is reduced from $14,347,972 to $7,923,455, a 44.78% cost reduction amounting to $6,424,5170. Figures 7 and 8 show project durations and project costs, respectively, for the 4 runs during scenario 4.

Table 7 Simulation runs for scenario 4
Fig. 7
figure 7

Project duration (days) for four simulation runs

Fig. 8
figure 8

Project cost (million USD) for four simulation runs

Scenario 5 deals with the case of multi-modes. The assumptions for this scenario are similar to scenario 4, except that laborers do not have multiple skills, but multi-modes exist. Under this scenario, project duration is reduced from 275 to 255 days (20 fewer days) and total project cost is reduced from $14,347,972 to $10,855,420, a 24.3% cost reduction amounting to $3,492,551.

Scenario 6 deals with the case of multi-skills and multi-modes. The assumptions for this scenario are the same as in scenario 4, but project tasks can also have multi-modes. Under this scenario, project duration is reduced from 275 to 218 days (57 fewer days) and total project cost is reduced from $14,347,972 to $6,460,206, a cost reduction of nearly 50%, amounting to $7,887,765.

Scenario 7 demonstrates how the tool can be used to warn project managers regarding non-renewable resource shortages, even when replenishment plan (doubly constrained resource) exists. The assumptions for this scenario are the same as in scenario 1, but a non-renewable resource is required for a given task. In this scenario, task C2, in addition to its original resource requirements shown in Table 4, also requires 100 kg of cement. This scenario assumes that 50 kg of cement is on hand, and 60 kg is on order, to be delivered on 07/15/2015. Table 8 presents results of one simulation run. It shows the tasks that are waiting for resources, their eligible dates (the earliest date that all task predecessors are finished), the start date (the date the task was actually started), waiting time (difference in days between start date and eligible date), the needed resource, and the quantity that is lacking. For instance, task C2 was eligible to start at 6/29/2015, but it could not be started due to lack of 50 kg of cement. The task had to wait till 7/15/2015 to start.

Table 8 Task waiting for resources in scenario 7

The software tool provides a warning if a task cannot start due to lack of renewable or non-renewable resources. Such warning is especially important for projects where several resources (renewable or non-renewable) are required by individual tasks. Timely availability of all required resources for a task is a critical element of scheduling activity. Table 8 shows waiting time, in days, of tasks under scenario 7. The project duration for this case was 307 days at a cost of $24,625,122. If the project manager could have 60 kg of cement delivered on 6/29/2015, it would result in project duration and cost to 275 days and $14,347,972, respectively.

Table 9 provides total project duration, start date, end date, and total project costs for each of the seven scenarios. It results demonstrating that simulation of different solutions can provide useful insight into the project. In practice, these solutions exist, but project managers do not have the luxury of time to explore the various alternatives on a daily basis. Figure 9 is graphical representation of the data displayed in Table 9.

Table 9 Total project duration and total cost for the seven scenarios
Fig. 9
figure 9

Project duration and cost for the seven scenarios

Conclusions and contributions

This paper presented a new approach to dynamic resource allocation and project management. Typically, resource allocation problems are formulated mathematically as an optimization problem, with an objective to minimize total project duration, subject to a set of resource constraints. Such methods assume objective function and resource constraints will remain constant during project duration. In addition, mathematical formulation often simplifies the problem significantly in order to keep it mathematically tractable.

This paper presented a software tool based upon flexible discrete event simulation to address the resource allocation problem. The objective of the software tool is to provide a series of feasible solutions to the project manager, and let him/her determine the “best” solution under the present circumstances.

The software tool was applied to a real-world case study described in the literature. Seven different scenarios of the case study were presented. Significant reduction in project duration and cost was achieved for scenarios with flexible resource allocation. The proposed approach run scenarios where human resources have multiple skills, where tasks have multiple modes, and where human resources have multiple skills and tasks have multiple modes. For all the different scenarios, the analysis of cost and project duration was provided. A comparison between the different scenarios was made with the baseline scenario. The project duration is reduced from 275 to 218 days (57 fewer days), and total project cost is reduced from $14,347,972 to $6,460,206, cost reduction of nearly 50%, amounting to $7,887,766.

The scheduling method incorporates inputs from the project manager. Project managers are highly knowledgeable professionals and should be involved in the decision-making process. Techniques that oversimplify the problem and neglect the importance of project managers often do not support the day-to-day realities of project management. This work allows the project manager to conduct “what-if?”-type analysis to evaluate decision’s impact on cost and schedule, prior to implementing the decision. In this context, managerial decisions refer to actions such as varying material availability (changing release dates and due dates), adjusting capacity levels (altering the maximum number of working hours for specific resources, maintenance of equipment), and authorizing overtime for specific workers. Typically, when making project scheduling and resource allocation decisions, such realistic options are not taken into account, mainly due to the lack of suitable tools for project planning.

This research contributes to state of the art in the area of project scheduling. A simulation tool was presented to solve a problem which belongs to the class of Combinatorial Multi-mode Resource-Constrained Multi-project Scheduling Problems. There are very limited tools that have successfully addressed the resource allocation problem in a dynamic environment, involving multiple projects with multiple task modes and multiple priorities. The resources can have multiple skill levels along with multiple calendars. The resources can be renewable or non-renewable. The software tool provides several useful metrics (resource utilization, waiting time, and resources responsible of causing delays and increasing project cost) that can be used by the project manager to control overall project cost and schedule.

Future research could include new methods into the simulation approach to estimate task duration based on historical data of tasks with similar work and resource requirements. The duration of a given task could be also calculated as a function of its partial resource requirements. Also as future work, researchers could attempt to linearize the nonlinear problem CMRCMPSP. Efficient algorithms such as branch and cut, branch and bound, column generation, or branch and price could be implemented to verify if optimal solutions can be found for large problems.