Hunting for the Critical Path in an IMSFinding the critical path in your integrated master schedule is much more difficult than in a single project. First of all, a subproject schedule is different than a single-project schedule. A single-project schedule has one ending point, whereas a subproject schedule typically has multiple ending points, which are deliverables that need to be handed off to other subprojects in the program. Technically, this is known as a cross-project dependency. At SanDisk, the scheduling software had to be able to handle hundreds of cross-project dependencies. Another difference between an IMS and a single project is that the manager of a single project is interested in one critical path, whereas the program manager is interested in multiple critical paths, the paths into each major milestone. The critical path in an IMS often consists of activities from multiple subproject schedules, but not necessarily all subproject schedules. As a result, an activity that may be on the critical path in the subproject schedule (when analyzed by itself), may not be on the critical path of the program. The scheduling software needs to be able to find the program critical path across all subproject schedules through cross-project dependencies. The software also needs to be able to mark those critical activities in the subproject schedules in such a way that each subproject manager can see which activities in their schedule are critical from a program point of view. This is where current project scheduling applications often disappoint program managers. SanDisk is a firm that produces high-tech products such as SSDs, Embedded Storage, Memory Cards, and USB Flash Drives. Like all high-tech companies, SanDisk's goal is to be the first-to-market with new products, which requires them to be very schedule sensitive. Optimizing the usage of all scarce resources is crucial. The program managers at SanDisk are sharing scarce resources across their programs, and that creates resource dependencies on top of logical dependencies.[1] There are few scheduling applications capable of handling resource dependencies on the critical path. For your convenience, we have summarized the differences between scheduling a single project and scheduling the Integrated Master Schedule, see Figure 3.
Differences | Single Project | Integrated Master Schedule (IMS) |
Network logic | Project schedule has one ending point in its network logic. | Subproject schedule has multiple ending points in its network logic. |
Cross-project dependencies | None. | Many. |
Critical Paths of interest | One. | Multiple, often ten or more |
Critical activities | Each schedule has critical activities. | Some subproject schedules have program critical activities, other ones have none. |
Resource dependencies | &Few. | Many (at least for first-to-market, product development programs at SanDisk). |
Figure 3: Differences between a Single Project and an Integrated Master Schedule (IMS)[2]
At SanDisk, we needed to find software capable of meeting all these requirements; we used the PathsPro add‑in for Microsoft Project (from ProjectPro). This add-in allows you to select a major milestone and it produces the critical path that drives this milestone even when cross-project dependencies and resource dependencies are involved. It also displays the near-critical paths, so we always knew how much we could easily gain without being surprised by other paths that suddenly became critical. Validating the Critical PathFigure 4: Extraction of the multi-project critical path [click to enlarge]As a scheduler, when you see the critical path in a program for the first time, you will immediately notice errors on it that need to be cleaned up. For example, you will see:
- Dependencies that do not reflect a practical necessity (like building walls before you start roofing). At SanDisk, we found ourselves cleaning up the logic with the help of the subproject managers.
- Tasks that are valid, but should not be on the critical path. Adding resources or changing the priority of the tasks minimizes the duration of the critical path.
- Tasks that you do not want to see on your critical path: summary tasks, level-of-effort tasks, overhead tasks, secondary tasks (e.g., write test plan) etc.
- Tasks with part-time assignments: These need to be changed into full-time assignments that will shorten the duration of these tasks; you want people to work full-time on critical activities. This may lead to new critical paths.
As a result, it took several iterations before we found the critical path leading into the first major milestone. Then we had to optimize the critical path. For this we used the table with 15 methods from the book Forecast Scheduling with Microsoft Project 2010/2013/2018 that deals with optimizing resource-constrained critical paths, which is exactly what we needed.
1. (For a full explanation of what resource dependencies are, please refer to "Forecast Scheduling with Microsoft Project 2010/2013/2018")
2. © 2021, Eric Uyttewaal. PMP, MVP Project.
|