
Manually planning and scheduling sub-sets of repetable activities, that could be done in parallel or in series, depending on the availability of resources, can lead to the paradox where optimal individual decisions on each activity lead to a suboptimal overall project plan.
The cause of this is threefold: manual planning (which requires the user to input all information), pre-defining resource availability, and CPM scheduling. Again, neither of these elements are negative or non-ideal, but combining them can lead to suboptimal results as we will see in this article.
Typical project plan
To illustrate the point we will look into the details of a road construction project. Within this fairly big project schedule, we will focus on a subset of activities: illumination & electrical works.
Like all roads, this one goes from point A to B, and the schedule breaks down illumination & electrical works into 9 road sections based on distance. The scope within sections varies: from a few activities in some to more complex scopes involving not only illumination & electrical cabling work but housing, buildings, etc.
The common ground between all these activities is that the work is carried out by the same resource. In this example let's assume there is a specific subcontractor doing all electrical & illumination work. If we had infinite resources we could work on all 9 sections in parallel. If the contractor only had 1 crew, then there is really only 1 option. In between both extremes, there are millions of combinations. The next question is how do we plan this?
Traditional approach
To solve this puzzle using commonly used scheduling software we would need to take a series of steps:
First, we would need to make a practical decision. Whether to extract this sub-set of illumination & electrical work activities into another file to play around with potentially facing some integration issues once we try to merge back these activities or do it directly on the master file with the potential to screw up something else without notice.
Let's assume we extract the subset, the next thing would be to load resources to each of the activities. Adding 1 unit of resource for the duration of each activity shouldn't take too long, a couple of minutes doing copy & paste or using Excel import.
Next, we look into the most extreme case: assuming we can work on all 9 sections at the same time. What is the resourcing required to execute this? In our example, simply checking the resource histogram on our scheduling software, the peak demand is 11 crews:
Bringing in 11 crews for the first week of December, then reducing these gradually until mid-month where work stabilizes at ~2/3 crews per day is far from optimal from a resource standpoint. The sub-contractor would only be happy about this if we are willing to pay top dollar for it. This is where the "fun" starts.
From here onwards we would only have one option and an almost guaranteed outcome:
Consider a max resource value i.e. "5 crews"
Click on the resource leveling option
Identify the days where the constraint isn't met (limited by CPM logic)
Manually adjust tens or hundreds of tasks to comply with the constraint & modify the Finish-Start logic
Find a viable option
Note down the project duration, start and end dates of this option
Repeat with a different constraint value...
Each of these iterations would take in the order of hours thus sooner than later we would settle for a "satisfactory" option. This is what we meant by optimal individual decisions leading to a suboptimal overall plan:
Manual planning + pre-defining resource availability + CPM scheduling
The example has been simplified by making a set of assumptions:
Resource allocation to activities is equal in all activities
Resource quantity allocated to each activity can't be changed, thus there is no change to individual activity durations
One can appreciate the complexity of the challenge as well as the potential amount of money that is being left on the table by making suboptimal resourcing decisions based on optimal sub-decisions!
A complex multi-variable optimization problem that can be solved
The advances in Artificial Intelligence and Cloud Computing have made it possible to solve this problem within seconds and in an easy way for any planner who faces such a problem.
Using Frontline, the process would be simplified to this:
Upload the schedule to Frontline
Select the options "Assign default resources for all tasks" & "Adjust task-task lag". The first option will assign 1 unit of resource to each activity eliminating the need to do this manually on the scheduling software. The second option will ensure that the constraints are met by modifying the start & end dates of activities based on resource availability, but not the duration of each individual activity.
Click run... Frontline will generate in seconds the best options considering multivariable optimization criteria: reduce duration, minimize resource, minimize cost, level resources, etc.

Each dot is an alternative the user can select, but still, how to make an informed decision? By identifying Illumination & Electrical crews as a constraint, Frontline will study the best options within the range of the constraint, in this case 1 to 11 crews:
Within each of the options, we can look into the details of the schedule & resource histogram. Looking at the details for the best option with 7 crews, we can see that reducing from 11 to 7 doesn't affect the completion date and that the resource distribution is significantly improved vs the initial plan.
Great but what about cost? Cost always plays into any decision
It's true, we still don't have the complete picture to make a decision. Costs play a significant role in determining resources for a project. Both from the GC perspective as well as for the subcontractor. Let's look at some of the doors that AI-powered optimization can open to planners trying to integrate (or hammer?) cost into their schedule.
With Frontline the user can easily input a unit cost per resource and define the period of measurement: daily, weekly, or monthly. This way not only can the schedule be optimized for duration and resources but also cost.
In our example, we considered the weekly and monthly periods to evaluate the cost implications of resourcing. Ideally, a project manager would be able to bring the exact number of resources required each day regardless of the fluctuations; Monday 5 plumbers, Tuesday 1, Wednesday 3 plumbers, etc. The reality of a project is more challenging as there are logistics involved thus weekly or monthly periods seem more reasonable.
Frontline takes the crews required each week or month to evaluate the cost of each decision. In this example we have considered a daily cost of $100, a weekly cost of $500 and a monthly cost of $2000 per crew.
The graph above aids in making a decision. The optimal trajectory for duration, resources & cost finds a minimum between 6 and 7 crews. Considering the weekly cost, the decision is reduced to:
Option A: 32 days, 6 crews & $17408
Option B: 30 days, 7 crews & $17408
B is the clear winner in our example! 🎉
Now what?
Really nothing more... just kidding. The last step is downloading this optimized project schedule back to the scheduling software that is being used:
The exported file will contain the sequence modification introduced by Frontline. In this exercise activity duration & resource allocation remain unchanged, only start and end dates are modified. To comply with CPM scheduling Frontline adds lags to those activities which had their start date changed due to resource availability.
Within 10 minutes, aided by Artificial Intelligence and construction simulation and optimization software, we have an optimal solution to the challenge.
The next step is to change 1 key assumption we have made to simplify this exercise. That is: resource allocation to each activity can't change. However, in a construction project environment, there are numerous activities that can be done faster or slower depending on resource productivity or the quantity of resources allocated to such activity.
We leave this for the next post...stay tuned! 📻
If you want a free demo and care to see our AI-based technology working for your project, contact us:
Comments