ALICE Core allows for the import and export of Microsoft Project (MSP) Schedule files, enabling users to leverage the schedule assessment, recovery and optimization capabilities of ALICE. Read on to learn more about supported use cases, limitations, and technical details between ALICE and MSP. For a refresher on how to create new projects based on MSP or P6 files, click here.
Supported Use Cases in MS Project
There are fundamental differences in how MSP handles scheduling compared to traditional Critical Path Method (CPM) scheduling software like Primavera P6. ALICE Core utilizes the retained logic approach, which is one of the most used options in Primavera P6, to honor precedence relationships for in-progress activities. In our research, more than 90% of schedules use this approach when updating in-progress activities for projects in execution.
MSP’s approach has many intricacies that will not be detailed out here. We recommend the following one of the three approaches below when using MS Project with ALICE Core:
- Bid and preconstruction phases: no in-progress activities
- Execution phase: Focus exclusively on forward-looking activities. Manipulate the schedule to exclude in-progress activities.
- Re-baseline execution project in ALICE: Start from scratch by re-creating the project scope in ALICE.
Benefits of this approach: Sometimes, existing schedules are unreliable and poorly constructed. Re-building the schedule from scratch provides an opportunity to produce actionable and trustworthy results when running what-if scenarios.
Read more about how the retained logic approach is used in ALICE here.
Limitations between MSP and ALICE
Retained Logic
ALICE follows the Retained Logic approach when scheduling in-progress activities, which aligns with one of the three options in Primavera P6.
Conversely, MSP does not follow this approach and has its own unique handling of in-progress activities. We found this reference paper helpful for those who want to understand the nuances and details.
Resource vs Task Calendar conflicts
For resource loaded tasks:
- By default, MSP uses the intersection of the task calendar and corresponding resource calendar(s) to schedule each task.
- This is the opposite of P6’s behavior which treats activities as “task dependent”, ignoring resource calendar(s) by default
- ALICE Core was built using P6’s “task dependent” default behavior.
Calendars with Custom Workweeks
ALICE does not support custom MSP workweeks - i.e. all calendar working hours are based on “default” workweek and calendar exceptions (same as P6).
Export .XML File Type
Schedules can be exported out of ALICE into the MSP XML format via the Export button.
Due to the proprietary nature of the standard .mpp file type format used by MSP, ALICE cannot export to .mpp format.
Export MSP Schedules with In-Progress Activities
Due to the limitation associated with retained logic, when opening the file in MSP, it will revert to MSP’s scheduling method. This results in expected variances for in-progress activities, and subsequently, for downstream activities that have not yet started, between the schedule generated by ALICE and the MSP schedule.
Technical Details: Data Mapping between MSP and ALICE
Many scheduling fields are shared between MSP, P6, ALICE, and other scheduling tools. Below are a few data structures unique to MSP and how ALICE addresses them upon import.
Project Properties
MSP does not have a Project ID, ALICE uses MSP’s Project Name to populate this field.
Task ID
MSP has an ID and a Unique ID field for each task. ALICE uses MSP’s Unique ID field to populate its Task ID field.
Elapsed duration
If elapsed days are for task duration in MSP, a 24-hour calendar is applied to that task in ALICE. Lag can also be specified as elapsed duration. Add "eh", "ehour" or "ehours" as a suffix to any lag value to allow that specific lag to use calendar hours instead of the project's default lag calendar. For example, to specify a lag of 4 elapsed hours, you would type "4eh".
Manually scheduled tasks
- MSP users are able to hard code a start date for a given task within MSP. MSP will call this a “manually scheduled” task. ALICE will take those hard dates and add them as a must start on constraint in ALICE.
- In the event that the manually scheduled task has another constraint assigned to it, the “must start on” constraint would override it.
Split tasks
- MSP allows for tasks to be split an infinite number of times.
- ALICE only supports splitting tasks into 2 sections each.
- If the task is in progress, and has more than one split, ALICE will combine the sections after data date into 1 section, sections before the data date shall be another section.
- If the task is not in progress, ALICE will honor the first split.
Inactive Tasks
- MSP users can mark tasks as "inactive". This does not delete the tasks but ignores them in scheduling.
- ALICE does not import “inactive” tasks and will notify the user, if applicable, at import.
Milestones
- Milestones do not have start or finish distinction in MSP.
- ALICE uses the following conditions, in order, to determine the milestone type:
- If a milestone includes a start constraint, or ALAP constraint, set it as a start milestone.
- If a milestone includes a finish constraint, set it as a finish milestone.
- If the milestone doesn’t have a start or finish constraint, and does not have predecessors, set it as a start milestone.
- If none of the above applies and milestone does not have successors, set it as a finish milestone.
- If none of the above applies, set as a finish milestone.
- In MSP, users can select “Mark task as milestone”. This would be a task with all of the properties of a task (resources, durations, calendars, etc.) but it would be rendered as a milestone in the gantt chart.
- ALICE imports this type of task as a task plus a finish milestone. All of the task properties will remain with the task. The milestone is added as a successor to the task with a FS relationship. The milestone will have the same name as the task and will inherit the successors of the task.
Project WBS
- In MSP, users can create summary tasks instead of WBS levels. Unlike ALICE or P6, these summary tasks can include:
- A duration that is different from the sum of its subtasks
- Relationships
- Custom properties
- Resources
- Primary constraints
- ALICE will convert the summary tasks into WBS levels and subtasks as follows:
- ALICE uses the MSP Project Name or Title as the root WBS level
- ALICE propagates the following fields from the summary task to the subtasks
- Relationships
- Custom properties
- Resources
- Primary constraints
- ALICE uses MSP’s WBS ID field for ALICE WBS sorting
Resources
- Resource Types
- The MSP resource type work is imported into ALICE as labor.
- The MSP resource type cost is imported into ALICE as equipment.
- The MSP resource type material is imported into ALICE as material (no change).
- Resource Assignment
- MSP assigns resources in percentage terms.
- ALICE converts those percentages to decimals, where 100% of a resource in MSP is equal to 1 of that resource in ALICE.