
Critical Path Method (CPM) can be built without complex resource modelling: planners typically develop a logic-based schedule first and assign resources afterwards.
In practice, though, this sequence often breaks down because resources are not just inputs to activities – they frequently govern activity durations. Duration is shaped by crew size, productivity rates, learning curves, and calendars, so the relationship between resource quantity and duration is rarely linear. On top of that, resource supply can be constrained, shared across projects, and volatile over time.
As a result, a purely logic-driven CPM schedule may be mathematically “correct” yet operationally unrealistic. To produce a schedule that reflects feasible execution and can be calculated reliably, complex resource assignment modelling must be applied, not treated as a post-processing step.
Think of the next scenario:
Two resources are assigned to an activity, but only one is available. Should the scheduling system start the activity as soon as the first resource becomes available, or wait until the second one is available?
There is no single correct answer, as both scenarios are valid in real projects, depending on the nature of the work.
Consider two simple cases:
Moving chairs: the activity can start with one resource and finish without the second. It may take longer, but it is still feasible.
Moving desks: the activity cannot start unless both resources are available. One person alone cannot begin the work.
Other common examples include:
- An activity that requires an excavator, where more than one excavator can be used if available.
- System integration testing, where some test cases require two testers, while others can be executed by one.
For a project delivery model to be reliable, both scenarios must be explicitly supported. This means that planners (and the scheduling systems they use) must be able to define assignment logic, not rely on assumptions.
At a minimum, the model must allow definition of:
- Teams– activities that require all assigned resources to be available before starting.
- Multi-resource assignments– resources that operate together as a unit (e.g., a car and a driver).
- Minimum required quantity– the minimum number of resources needed to commence the activity.
- Maximum assignment quantity– the maximum number of resources that can be applied productively.
- Minimum workload threshold– to prevent inefficient switching of resources across multiple concurrent tasks.
An activity may have one or more assigned teams, and each team may include one or multiple resources. This structure enables the consistent modelling of complex yet realistic assignment scenarios.
Example
Scenario 1

Scenario 2

The following scenarios are identical except for one critical difference:
Tasks 2 and 4 can both be performed by two resources. Task 2 requires both resources to start. Task 4 can technologically start with one resource and continue with one or two.
Tasks 1 and 3 require Resource A, creating a temporary resource shortage for Tasks 2 and 4.
- In Scenario 1, Task 2 is delayed until Resource A becomes available.
- In Scenario 2, Task 4 starts immediately and Resource A joins the task when available.
This complexity can be modelled in delivery-oriented systems such as Spider Project, which support complex resource-driven data modelling.
Expectation vs reality
A LinkedIn survey shows that most practitioners (59%) expect scheduling tools to handle both scenarios correctly. In reality, popular systems such as Primavera P6, OPC, and MS Project do not support this capability.
More concerning is that many planners using these tools struggle to explain what actually happens when assigned resources are unavailable. This highlights the continued dominance of CPM thinking and a lack of experience in resource-driven delivery modelling.
Planners who understand and model assignment complexity produce project models that delivery teams trust and actually use.
Alex Lyaschenko
PMO | Portfolio Planning & Delivery | PMP | P3O Practitioner | AgilePM Practitioner | Six Sigma






