Expert, flexible training in the use of the most powerful scheduling software program in the world: Primavera P6 by Oracle. Call today! (916) 779-4145
Primavera Scheduling

All posts in logic

My wife and I recently participated in a group hike to see the new land acquisition by our homeowners association. We own property in a 7,000 acre resort in the Sierras and the new parcel adds several hundred more acres of wilderness that will prevent development near our resort. The problem was, our group leader had told us in no uncertain terms that the last bus back to the resort would be leaving at 5:15 pm. Yet here we were at 4:00 pm still hiking in the wrong direction and realizing we had at least an hour of strenuous hiking uphill to the staging area. So we turned around and headed back. Our group leader was clearly cutting it a little too close.

I feel the same way about scheduling. Yes, there will always be critical activities, but they are of course only critical because other activities are, well, less critical. But if the longest path of activities are themselves quite aggressive then we are only setting ourselves up for failure. So my preference is to have a schedule that can be beat.

I am not talking about sequestering float. You may have heard about strategies to hide float in a schedule. This all started several years ago because nearly all construction contracts in the U.S. state that float belongs to the project and is therefore not for the beneficial use of just one party. The contractor or the owner can use the float, with dibs belonging to whoever grabs it first.

Contractors who felt more entitled to the float began devising ways to hide some of the float by tying activities to unrelated work that starts sooner than the more obvious successors. This removes float from the schedule and makes it more likely that an owner delay to a task will also delay the project. A non-critical activity can quickly become critical because it has very little float. For this reason, the sequestering of float is often prohibited in construction contracts.

In my case, however, I am only trying to avoid being too aggressive with activities that are on the critical path and for this reason I choose the least ambitious type of relationship for the majority of my activities: Finish to Start. My goal is to make roughly 80% of the relationships in my schedule Finish to Start. This percentage can be checked using the DCMA checklist available in P6 Web. DCMA stands for the Defense Contract Management Agency. This checklist – called Check Schedule in P6 Web – can be seen below:

Primavera Scheduling

 

 

 

 

 

 

 

 

 

You set up the parameters of the schedule in this menu. Once Check Schedule is run, the results appear in a separate window, seen below:

 

Primavera Scheduling

 

 

 

 

 

 

At a glance I know whether I achieved my goal of making 80% of the activity relationships Finish to Start. Other goals include managing durations and relationship lags. Anything in green is in compliance while red indicates not in compliance with the specified parameters.

My strategy of primarily using Finish-to-Start relationships is a direct result of the early years of CPM scheduling, when Activity-on-Arrow (AOA) was the dominant scheduling technique. In those days, the arrows represented tasks, whereas the nodes (circles in most cases) were the activity identifiers. Because of this technique, each task had two nodes referred to in this order: the I-Node and the J-Node. So you would see something like Activity ID 1000-1005. This technique was also referred to as the Arrow Diagramming Method (ADM).

The Activity-on-Node (AON) method became very popular in the early 1990s and was certainly spurred along by Primavera Systems’ decision to drop Activity-on-Arrow altogether when the first Windows-based version of Primavera Project Planner (P3) was released in 1994. Ignoring this brief history of scheduling software for a moment, consider that if the arrow represented the activity, then all relationships were Finish-to-Start. The J-Node of the predecessor was also the I-Node of the successor. Leads and lags were non-existent. The predecessor(s) always had to be complete before the successor could start. This can be seen in the following Activity-on-Arrow diagram:

Activity-on-Arrow

 

 

 

 

We used to split activities into percentages so that, say, the first 25% of drywall hanging could start as soon as 25% of the walls had been framed. This effectively became the lag that we use today with Start-to-Start and Finish-to-Finish relationships. Otherwise, it was fully expected that some work would start out-of-sequence, meaning the successor starts before the predecessor is finished.

By the same token, Finish-to-Start relationships are far more likely to generate out-of-sequence progress in today’s precedence schedules. And my response is “great!” You are beating my schedule! I have set you up for success, not failure. Now, I realize some people are bothered by out-of-sequence progress, but unless there is truly a “bust” in the logic or the result of unexpected delays I see this as a positive sign.

There is another benefit to the Finish-to-Start relationship. It is more likely our resources will not become over-allocated. Older schedulers like myself used logic to limit the number of resources required because the scheduling software was too primitive to do this. We called this type of logic “crew restraints” and I still use this technique today. The resource leveling feature in Primavera P6 is not always the best option for controlling the allocation of resources. And besides, if the schedule is not resource loaded then leveling is not an option.

My attitude often comes down to this: prove to me you can get ahead of my schedule and I will modify the logic accordingly. Until then, my logic assumes a more linear progression of the work and is therefore more forgiving. And everyone will feel better because the project end date does not keep slipping. What could be better than that?


Using a Filter to Find Missing Logic

Categories: logic, Primavera P6
Comments Off on Using a Filter to Find Missing Logic

One of our training clients recently asked us to create a rather unusual filter showing “open ends”, or activities that are missing predecessors and/or successors. While this information can be gleamed from the Schedule Log (Tools > Schedule > View Log) this report does not graphically represent these activities. A filter will of course allow us to show these activities on the Gantt Chart, so that we know when and where these activities occur in the schedule.

In the screen capture below I have created a simple filter to display activities with open ends. Notice that I have two lines in my filter and that I have selected “(Any of the following)” when combing the two specified parameters. The first row asks P6 to list activities where the predecessor value is blank. You might know that we can display predecessors as a column in the Activity Table, and if there are no predecessors for an activity then this cell would be empty.

In the second row I have added the same statement for the successor value. The only thing left to do is make sure P6 understands that I want activities that are missing predecessors or successors. In other words, if the first row or the second row statement is true, give me those results. To do this, I selected “(Any of the following)” filter parameters:

 

Filter for Open Ends

www.primaverascheduling.com

 

 

 

 

 

 

As you can see, setting up the filter is pretty simple. Leaving the value blank does not work in many situations, but for predecessors and successors this approach is fine.