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 Primavera P6

My wife and I have a vacation home in Truckee, California. Whenever we are up there we get together with a couple who have a second home just two doors down from ours. During our last visit we met the wife's charming mother for the first time. After several hours of pleasantries she asked me a slightly odd question:

Primavera Scheduling

"Are you a professor?"

"No", I replied. "But I do teach scheduling and software classes."

She went on to explain that she thought I spoke very clearly and explained my thoughts in a logical, concise manner. So her comment about my being a professor was certainly meant as a compliment. She was not a native English speaker, and she complained that her son-in-law speaks much too quickly. On the other hand, I had no trouble understanding her at all. 

And it occurred to me that learning a language is a lot like learning how to schedule projects or to use scheduling software. 

Most of us who have tried to learn another language have been exposed to those classes where you put on a pair of headsets and repeat various phrases in the new language like, "that is a very big fish!"

Which is only helpful if you happen to encounter someone holding a large fish. 

Okay, so these classes do teach more useful phrases and even I have managed to order hot chocolate in Rome without feeling like a complete dolt. Tourist, yes. Idiot? As they say in Italian, "no".

Still, there is nothing that quite prepares you for going to another country and trying to strike up a conversation with a local. You have no control over what they are going to say. The answer is not in your handy phrase book. They may also speak with a dialect that is unfamiliar. What you learn has to have a practical application to your situation.

One of the criticisms of many engineering programs at universities is that students spend their first three years learning theory without any explanation as to why and how they will be applying this knowledge in the real world. I switched majors from Civil Engineering to Construction Science because of my own doubt about how I would use my degree. Differential equations seemed irrelevant to someone planning to take over the family construction company.

The dilemma for a university professor, however, is that students are incapable of providing much feedback other than demonstrating their retention of knowledge. It is not like one of the students is going to say, "I am planning to build clean water facilities in remote locations with no power grid, so what are the best practices?" The professor teaches a standard curriculum which should cover "all the bases", so to speak, and the students do not know enough to ask questions.

When I teach scheduling and Primavera P6 classes, however, nearly all of my "students" are professionals who have several years of experience and who also have particular expectations. They are all about "what can Primavera P6 do for me?" This is why Oracle refers to its partners like ours as "solution providers". Anyone who has used Primavera P6 knows that it is very powerful. But different companies and different industries have their own unique demands.

Case in point. During a recent private training session for a major company we discussed several issues. There are short, turnaround, projects that are over very quickly and for this reason the duration format is hours, meaning the activity durations are expressed in hours. But the construction projects take much longer, so the preferred duration format is days. So within the same company not all schedules are built the same way.

Pro Tip: it matters to the instructor whether the student will be sharing a database with other users. The Administrator of the program has control over certain parameters such as Earned Value, which means that all users are subject to the same conditions.

We also discussed how the turnaround projects use "pull-planning" to establish the optimal dates for each activity, the construction projects follow a more traditional Critical Path Method schedule whereby some activities have float. With pull-planning you are essentially looking at only the "late" dates in a CPM schedule; finishing early is not a goal or even desirable.

What about resources? In this case, the company does track labor and equipment (what P6 labels as "nonlabor") but does not cost-load its schedules. I often warn my clients that when discussing resources, output determines input. What type of reports and charts do you expect P6 to produce? Do you track individuals or crews? Will actual hours or costs be inputted? This particular company also plans to integrate P6 with another planning program, which affects how the schedule should be built inside P6.

The fact is, none of my private group training classes are "typical". My clients are sophisticated companies that have been planning and scheduling for years. But they might be switching over to P6 or looking for "best practices" when using P6. It is pretty common for someone with P6 experience to say to me, "P6 can also do that?" Well, when you use P6 nearly every day of the year you do tend to learn a few tricks. It also helps to be an Oracle partner with unlimited access to Oracle engineers.

While I do occasionally have people in my classes who are quite new to scheduling, I am otherwise not some university professor pouring knowledge into somewhat empty vessels. And in private group classes we have the opportunity to discuss corporate preferences as well as my own. This is where videos alone are not the best form of training. Besides not being able to ask questions, there is no collaboration between instructor and pupil. 

Ultimately, just learning how to use a software program is not enough. Anyone with P6 experience can tell you what a button does when you push it. Whether you should be pushing the button at all is harder to learn without the guidance of someone who has practical experience with the program. Any amateur can create some videos and proclaim themselves an "expert" on P6, but those of us who do this full-time are not fooled.

Our firm does offer On Demand (i.e. video) training, but we back this up with live online and in-person training sessions. In addition, we also offer private (custom) training to anyone who wants to take their knowledge of scheduling and P6 to the next level. Why sit through a regular training session when you can focus on your needs with one of the most experienced schedulers in the United States?

I have great respect for universities, having a Masters degree myself, and I studied the Critical Path Method of scheduling during my undergraduate days at Kansas State University. I learned the practical side of CPM scheduling, however, working alongside experienced schedulers. It occurred to me, for example, that no one explained how to properly update a schedule at university. Other schedulers showed me what to do.

And now I would like to pass along that knowledge to you!



P6 Version 17 Bug and Easy Fix

Categories: Claim Digger, Primavera P6, SQLIte
Comments Off on P6 Version 17 Bug and Easy Fix

Primavera SchedulingOracle recently released Version 18 of its venerable scheduling program, Primavera P6 Professional Project Management. The latest release is only a mild upgrade from Version 17 but it does fix a problem that has bedeviled many Version 17 users: the inability to copy and paste a project that is not currently open. This error only occurs when using the standalone SQLite database. Specifically a popup message reads “Item Not Found”. If the user clicks “OK” to continue the project is copied but contains no activities.


Oracle acknowledged this bug in Document ID 2338899.1


P6 Professional Patch Set 17.12.1.0 fixes the problem. But users who are not familiar with how to apply a patch can apply a very easy fix. Simply open the project before trying to copy the project. Indeed, both the patch and Version 18 address this bug by opening the project automatically during the copy and paste operation. In effect, users can only copy and paste open projects when using the SQLite database.

Personally, I like to use the SQLite database because it requires no maintenance and can easily be moved to another computer. Moving programs from one computer to another is normally a joyless exercise but not with SQLite. And yes, the database is a program, just like Primavera P6.

I initially resisted using the SQLite database because Oracle had disabled Schedule Comparison (i.e. Claim Digger) when using this standalone database. But eventually Oracle figured out a way to make Schedule Comparison work with SQLite. For anyone who does not need to share a database with other users I highly recommend SQLite.

 


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?


Software Glitch In P6 V15.2

Categories: P6 Professional, Primavera P6, Primavera P6 Client
Comments Off on Software Glitch In P6 V15.2

toolsIf you are thinking of buying Primavera P6 Professional then please be aware of a software glitch in Version 15.2 that is causing a few headaches. Thankfully, you can still download two older versions of Primavera P6 Professional from the Oracle Software Delivery Cloud: Versions 8.4 and 15.1 are currently still available. We recommend downloading one of these versions until we are able to confirm whether the next release of Primavera P6 (Version 16.1) fixes this problem. Version 16.1 is scheduled to be released by the end of March 2016. Regular readers of our blog are no doubt aware that Oracle now releases new versions of Primavera P6 twice a year, in the Spring and Fall. This new procedure started in 2015.

Version 15.2 was the first 64-bit release of Primavera P6. Now, when downloading Primavera P6 from the Oracle Software Delivery Cloud, you can be forgiven for wondering why Oracle always asks if you want to download the 32-bit or the 64-bit version of the program. Prior to Version 15.2 it did not matter which version you chose because they were the same program. Keep in mind, however, that Oracle has hundreds of programs available for downloading so the 32-bit vs. 64-bit question is not confined to Primavera software.

According to Oracle, there are certain advantages to the new 64-bit version of Primavera P6:

  • Build larger and more complex projects, with faster response times
  • Work with multiple languages at the same time
  • Higher memory limits supported for faster performance
  • Fewer crashes due to memory issues

Sounds great! Unfortunately, the new 64-bit coding in V15.2 is making it impossible to add or modify variables in the header or footer of a layout. A variable is a data field that is filled out by Primavera P6. For example, the project name or the data date. So rather than typing the project name or data date in the header or footer we simply add a variable to do this instead. This way, if we open a different project the current data will be displayed without any manual revisions.

Anyone who has inserted a page number into a Microsoft Word document or Excel spreadsheet has been using what Primavera P6 calls a variable. An example of a Primavera P6 variable appears below. The variable “Layout Name” appears in brackets:

Primavera Scheduling

 

 

 

 

 

 

This is a confirmed defect. You can find a few additional details in Doc ID 2096207.1 if you have access to My Oracle Support. Oracle has confirmed that the defect will be addressed in a future release.

I like to display certain information in my page headers and footers so that people understand some of the basic parameters of the schedule. This data includes:

  • Layout Name
  • Filter List
  • Print Date and Time
  • Page Number and Total Pages
  • Project Name
  • Data Date

But since these are variables I have a problem. To be sure, I have some layouts created in older versions of Primavera P6 that already have these variables, so I am not completely out of luck. When upgrading Primavera P6 most of us keep our existing databases so anything stored there is still available. But for new Primavera P6 users who started with Version 15.2 they have not had a chance to create any layouts yet. Therefore, the only options are to use the variables already present in the standard layouts, or manually type this information. (If someone sends you a layout they created you can of course import this into Primavera P6).

So, fingers crossed! Let us hope that P6 Version 16.1 fixes this problem.

 


3 Strategies for Weather in a Schedule

Categories: P6 EPPM, P6 Professional, P6 Tricks, P6 Web, Primavera P6
Comments Off on 3 Strategies for Weather in a Schedule

protectionUnless you are working indoors, weather is always a consideration when building a CPM schedule. Somehow, normal weather must be addressed for any work that can be impacted by inclement weather. Our only concern should be normal weather; unusual weather is an excusable delay. This of course raises the issue of how do we determine what exactly is normal weather? Contracts often mention that time extensions will only be granted for abnormal weather without defining normal weather. It is easy to find weather data: in the United States the best source of historical weather conditions would be the National Oceanic and Atmospheric Administration. The NOAA has records for thousands of weather stations around the country that in some cases go back a hundred years or more.

Even so, there is not a single standard for applying NOAA data. Should we take the average for the past four years to determine what is normal? Five years? Six? Federal contracts generally rely upon an average of the last ten years to determine normal weather conditions. (As a personal aside, I have lived in California for 11 years and the weather during the past four years has been radically different than what I first encountered in 2004). Most private construction contracts are unfortunately silent as to what sort of average might be considered reasonable.

The U.S. Army Corps of Engineers is probably the best example of how to specify normal weather. The USACE typically tells contractors how many days of inclement weather to include in the CPM schedule each month. NOAA data would only tell us the average temperature and precipitation, which leaves open to interpretation how a day with, say, 0.1″ of precipitation should be treated. For good or bad, the USACE specifications leave no doubt how many days should be blocked out for weather – not including weekends and holidays. Contractors can not claim they thought it would only rain or snow on weekends!

Some State agencies use a methodology similar to the USACE. Last year I was teaching a highway contractor in Minnesota how to schedule projects using Primavera P6. Someone pulled out the specifications for an upcoming project. Glancing down to the weather provisions, I was not surprised to see that the Minnesota Department of Transportation expected contractors to block out 20 days for inclement weather in January beyond weekends and holidays. In case you are wondering, that wipes out the entire month! I was there in March and it was still below zero degrees in the morning. Winter work is nearly impossible outside unless you are ice fishing.

Sometimes, the contractor does not have to address inclement weather at all. The California Department of Transportation (CalTRANS) specifies contract durations in working days. As the project moves along CalTRANS tallies only the days the contractor is able to works. Bad weather days are not counted. As you might have guessed, this means the project end date shown in the baseline schedule assumes perfect weather and therefore is unlikely to be maintained.

Once we have established some sort of standard for normal weather, we can then move on to a strategy for incorporating this weather into the CPM schedule. Below are the three basic strategies that I use, in my order of preference:

I. Add Normal Weather to the Work Calendar

If the owner has already told me how many days of normal inclement weather to anticipate, it is logical to block out this number of days as if they were holidays. While it is not possible to distinguish a weather day from a holiday in Primavera P6, I try to put my weather days on any Tuesdays, Wednesdays and Thursdays to avoid Monday holidays like Labor Day, Memorial Day and Presidents Day. Obviously Thanksgiving is always on a Thursday but otherwise this works pretty well. NOAA data can even tell us which days of the month typically have the most precipitation if we want to find the best candidates for weather days. I also have a Project Notebook Topic I created in Primavera P6 called “Weather” that I use to list the weather days included in the schedule. This removes any doubt as to why these days were blocked out.

This approach does require two work calendars, however. One work calendar will be for the weather-sensitive work while the other will not include any weather days. After all, shop drawings are not affected by weather and there are usually some field activities that take place indoors. Otherwise the two calendars will probably share the same holidays.

At the end of the month, many schedulers like to replace the planned weather days with the actual weather days. This creates a historical record of when the inclement weather occurred. But actual weather days are presumably being tracked elsewhere so I consider this step to be optional.

II. Create a Contingency Activity for Normal Weather

I started using this strategy in the 1980s as a way to show early completion. The contractor would plan to finish the project early so we needed an activity to bridge the gap between the early completion milestone and the contractual completion milestone. Not all owners would accept the contractor’s right to finish early. In some cases the owner would issue a no-cost change order to modify the contract completion date. Basically, the owner was calling the contractor’s bluff. If the contractor figured he could finish early then why not make that the new contract completion date? Otherwise, the contractor might submit a delay claim based on not being able to finish the project early even though the owner never requested the earlier completion date.

On some projects the bid documents are held in escrow; if a delay claim is submitted the bid documents can be reviewed to see if the contractor based his overhead costs on the shorter project duration. A CPM schedule that shows early completion is often viewed with suspicion unless there is further proof. But in some cases the contract documents specify that early completion is not allowed. The contract effectively becomes a professional services agreement with a fixed time frame.

Normal inclement weather can also be treated as a contingency. The number of expected weather days are added up and inserted into an activity between early completion and contract completion. In this case, however, we are not really expecting to finish early; the contingency will disappear if the total amount of normal inclement weather is realized. During each update we reduce the remaining duration of the contingency activity by the number of actual weather days incurred. In theory, there will be no more weather days once the remaining duration reaches zero days. Otherwise, the contractor is entitled to a time extension.

Both the first and second strategies require an analysis to determine how many weather days are to be expected over the life of the project. Unless the number of weather days are specified in the contract there could be disagreements as to how many days should be included. A smaller number helps the contractor with delay claims while a bigger number protects the owner against the very same claims. Activity durations should be based on perfect weather, as normal weather is accounted for by either the calendar or the contingency.

III. Add Normal Weather to the Activity Durations

This is the oldest strategy and does not require as much effort as the other strategies. The contractor simply adds additional time to the activity durations based on the expected weather. I list this strategy last because it is nearly impossible to verify how much time was added for weather unless the contractor keeps detailed notes (such as using an Activity Notebook Topic in Primavera P6 to explain where the days were added). Moreover, the contractor needs to know what time of year each activity will take place before he can add the right amount of time. For this reason schedule logic is needed first so that the start and finish dates are reasonably accurate. But the reason I list this strategy last is that if an activity is delayed the added time for weather may now be too much or too little. Constant monitoring is required to ensure that activities have not moved into a time frame with different weather conditions.

Update: a member of the Association for the Advancement of Cost Engineering took exception to this third method after my original post was published. He felt this method should never be used and referred to the AACE’s Recommended Practice for addressing weather in a schedule. But he was missing the point. I have used this third method for years without any issues. Keep in mind that if the weather days are shown on the calendar or as a contingency activity the contractor has boxed himself into a corner. He cannot later claim he expected fewer normal weather days.

The contractor may very well want to give himself some “wiggle room” to clarify his understanding of normal weather once a dispute arises. And who can blame him if the owner does not specify the number of weather days either? The owner is legally responsible for any ambiguities in the contract documents. Conversely, if the contractor feels he has been treated fairly by the owner on all other matters, he may be willing to concede a few weather days that he otherwise felt entitled to claim.

Let’s use liquidated damages as an analogy. Liquidated damages clauses have been around for decades. A contractor is put on notice that a specific amount of money will be withheld by the owner for each day he is late. Liquidated damages are an approximation of the financial impact caused by the project being delivered late. As such, liquidated damages cannot (and are not required to) be proven. The contractor may think the liquidated damages are outrageous, but this is not a matter for negotiation.

Yet the same owner has no clue how many days should be included in the schedule for normal inclement weather? There are multiple sources of historical data to help him make this decision. So perhaps the owner wants a little “wiggle room” as well. He has the information necessary to make a decision; he just decided to leave the contract ambiguous. Shame on him.

The bottom line is that most construction contracts do not adequately address the definition of normal weather. AACE’s Recommended Practice is not the solution either since it still leaves this matter open to interpretation.

What is your favorite method of addressing inclement weather? I can be reached here.


Weird Negative Float

Categories: Level of Effort, Primavera P6, Total Float
Comments Off on Weird Negative Float

There are several settings in Primavera P6 that can have unintended consequences, but perhaps none is worse than what I am about to describe. Primavera P6 users know that negative float can be induced by putting a constraint into a schedule. A Finish On or Before constraint, for example, will generate negative float if the activity is now scheduled to finish beyond the chosen constraint date.

But can a schedule with no constraints generate negative float? A reasonable person would say “no”. After all, if there are no constraints in the schedule the project can extend to any date. So negative float is simply not possible. Who could possibly argue otherwise?

Well, I can! Because I have seen it in action. Let me set the scene. I was at the Kennedy Space Center teaching a Primavera P6 class to a NASA contractor last year when one of the class participants presented an unusual problem. His schedule had negative float but no constraints.

I was quite sure he had forgotten about the Must Finish By constraint. It does not show up in the Schedule Log and no asterisk will appear in the date columns. Nope. My client truly had no constraints in his schedule. Yet some activities had negative Total Float.

The contractor commented that all of the negative Total Float seemed to be on Level of Effort activities and nowhere else. Yet the predecessors and successors to the Level of Efforts had positive float. Huh?

This is one of those situations when I wish I still had some hair to pull. I use Level of Efforts in pretty much every schedule and have never had any problems – regardless of whether any constraints were being used. Some setting or calculation in Primavera P6 was clearly off. After some research in the Oracle Knowledge Base (Document ID 988077.1) the culprit was located.

In Primavera P6, Total Float can be calculated by one of three methods:

  • Start Float = Late Start – Early Start
  • Finish Float = Late Finish – Early Finish
  • Smallest of Start Float and Finish Float

These options are found under the Schedule Options, as seen below:

Settings for Compute Total Float

 

 

 

 

 

 

 

 

 

Right out of the box, Primavera P6 always calculates float using the middle option, Finish Float = Late Finish – Early Finish. And most users would probably not consider changing the calculation method if for no other reason than not understanding why it would make a difference. The NASA contractor had likewise always used this method of calculating float until someone decided to play with the settings. By shear luck, this happened between our training sessions at Cape Kennedy.

There are of course a lot of settings in Primavera P6 that could change the way a schedule behaves. In this situation, no one remembered changing the Schedule Options. The schedule had just been updated, but not for the first time and previously there was never a problem with the float. Seemingly overnight, the float had just gotten weird.

The NASA contractor had switched the calculation to float = Late Start – Early Start. Primavera P6 calculates float values for both the beginning and end of each activity because the values can be different whenever the relationship type is not Finish-to-Start. You probably did not know this (or even care!) but it can make a difference. But any float calculation method other than the one using late dates results in erroneous float being displayed on Level of Efforts.

In the next screenshot I am displaying a Level of Effort activity with negative float.

Level of Effort with Negative TF

 

 

 

 

 

As you can see in the Activity Details, the predecessor and successor tasks do not have negative float. But why negative float? I have an answer but not an explanation. The negative float is being calculated as the difference between the actual start date of the Level of Effort and the Data Date.

Think about it. Primavera P6 considers the Level of Effort as being behind schedule because it has an actual start date that is before the Data Date. Where else should the actual start be?

In the schedule above the Level of Effort started the day before the Data Date so it is theoretically a day behind schedule. Ridiculous, but that is how Primavera P6 is calculating the float for Level of Effort activities.

Choosing the third method of calculation, Smallest of Start Float and Finish Float is still a bad idea because a negative number would still appear on the Level of Effort. According to Oracle, Start Float and Finish Float is usually the same, but can be different on both Level of Effort and WBS Summary activities.

Why? Who knows, but it keeps me on my toes!

 

 

 


Put Your Primavera XER File on a Diet

Categories: Oracle XE Database, P6 Professional, POBS Table, Primavera P6, Primavera XER
Comments Off on Put Your Primavera XER File on a Diet
Primavera Scheduling

You have probably noticed that after using Primavera P6 for a while your XER files seem to be getting bigger. Actually, a lot bigger. Files that used to be under 1 MB are now more than 10 MB. This slows down the importing of XER files considerably and makes it harder to email files without using a large-file service  like Hightail or Dropbox.


According to Oracle, this problem affects Versions 7.0 and later.


The XER file format is the most popular way to exchange project data between databases. As a consultant, I always have to send my files to the client. There is another Primavera format – XML – but these files tend to be rather large compared to Primavera XER. The beauty of the XER format is that it is text-based, which normally results in a very small file.

Nevertheless, XER files have a bad habit of getting rather chubby, if not downright HUGE. This would be understandable if it served some purpose. Unfortunately, the increased size is a complete waste of space. And in some cases it takes so long to import the XER file that P6 effectively locks up. Not good.

Specifically, the problem is the POBS Table. Join the club if you have never heard of this data field. Here is the official explanation from Oracle as to the purpose:

Functions related to table POBS have not been implemented yet so the table has not been put to use. The table may be removed in a future release.

You do have to wonder, if Oracle has not found a purpose for the POBS Table yet, why has its use persisted for so long? This is not the first time a feature showed up without a purpose. For several years Primavera P6 displayed a colored bar next to the Activity Code Values. The default color was blue. Regardless, changing the color did nothing because the feature was intended for Visualizer, which had not been incorporated yet:

Activity Codes Menu

Since the POBS Table is not used at all, we might as well delete it. Granted, if your XER files are rather small it is not a necessary step. Until recently all of my XER files were reasonably sized considering the size of the projects. But starting several months ago my XER files started gorging themselves. A POBS Table with a few dozen lines suddenly had thousands of lines. Deleting the POBS Table became a necessity for me.

Assuming you are using an Oracle database it is rather easy to delete the POBS Table in the database so that export files do not include this table by running the following statement inside the database after backing it up:

  • delete from pobs;
  • commit;

**UPDATE** Please see my post regarding how to Delete POBS Data in an Oracle XE Database for more detailed instructions on how to execute the above commands.


Files being imported into the database, however, most likely will have the POBS Table. So it may become necessary to modify the XER files prior to importing them. Here are the steps:

  1. Make a copy of the XER file (just in case!)
  2. Open the XER file in a text editor like Notepad
  3. Find (Ctrl+F) the line that starts with %T POBS
  4. Select the following lines that start with:
    1. %T POBS
    2. %F (including all line content)
    3. %R (including all line content)
  5. Stop at the next %T
  6. Delete the above lines
  7. Save the XER file
  8. Import the XER file

Below is a screenshot showing each type of line that must be deleted:

POBS Table

Note that lines that start with %R may number in the hundreds or even thousands. The above image does not reflect the thousands of %R lines that existed in this particular XER file.

The next %T will be very close to the end of the file. The rest of the lines pertain to project data that should not be deleted, which is why we stop at the next %T. The biggest headache is getting all of the %R lines highlighted.

Still, deleting the POBS Table can yield startling results. Starting with a XER file that was 14.4 MB (14,377 KB) in size, I employed the technique described above to delete the POBS Table. The new XER file was just 105 KB (!)

It is always a good idea to make a backup copy of the XER file just in case you delete the wrong lines. But otherwise this is a quick and easy way to drastically reduce the size of XER files.

Update: starting in 2016, Oracle introduced SQLite as the default database for standalone users. This new database does not use the POBS table and therefore the problem I am describing no longer occurs.

Any comments or questions? Please email me.


Time-saving Tricks in P6 You Must Use

Categories: P6 Professional, P6 Tricks, Primavera P6
Comments Off on Time-saving Tricks in P6 You Must Use

Primavera P6 will save you a boat-load of time while building a schedule if you know where to look. And since one of my most recent training clients actually builds commercial fishing boats I suppose the analogy is even more appropriate for them! While there are also several time-saving tricks for updating a schedule, today I am going to focus on the building of a brand new schedule. Here are my top five favorite P6 tricks based on 30 years of experience using Primavera software:

1. Fragnets

If we think of the entire schedule as being a network diagram then a fragnet is a sub-network. A fragnet may be just a few activities, or dozens. Traditionally we develop fragnets for two reasons: (1) to represent additional work that is not part of the original scope, or (2) to represent repetitive work in the original scope. In the baseline schedule the latter example is how we save time.

I have not truly built a baseline schedule from scratch for quite a few years because I am always copying part of the logic. The first floor logic is copied and used as the basis for the second floor. The northbound lanes are copied and used as the basis for the southbound lanes. Besides just copying a bunch of activities, however, we also need to consider how the Activity IDs can save us time.

P6 really wants us to use prefixes in our Activity IDs. In the Project Default settings we cannot leave the prefix for new activities blank, and why would we? Copying activities without the ability to assign new prefixes would frankly not be much fun. Let’s say that Activity ID FLR1_1000 is layout on the first floor of the building. When this activity is copied for the second floor the new prefix (FLR2) tells us the location while the original suffix  (1000) indicates the type of work.

Nearly always my prefixes are based on locations. I want the submittals to have the same prefix, the Stage 1 activities to have the same prefix, and so forth. Some schedulers use the prefix to indicate the type of work, but when I am adding relationships I want the activities in the same location to have the same prefix. Most of my activity relationships will be defined by proximity, not the type of work.

As an alternative, we can copy an entire section of the Work Breakdown System and paste it elsewhere. This has the added benefit of creating a new section in the WBS for the new activities while they are being pasted.

Before copying the activities it would behoove us to make sure the durations and logic are complete so that we can also copy this information as well. In most situations I do want to replicate the durations and logic. Any changes will likely be fairly minor.

The first step is to highlight the activities that are being copied and then paste them. I don’t worry too much about where they should be pasted right away. I may need to create a new WBS or Activity Code for the copied activities so that they stay grouped together.

In the screen shots below you can see what activity information I have chosen to copy and the new prefix I have selected for the Activity IDs:

Copy Activity Options

Renumber Activity IDs

 

2. Fill Down

There is no way I could live without Fill Down. It is so awesome! When we try to copy a value in P6 (such as a duration or a calendar) the entire row is copied – that is to say, the activity is duplicated. Which is what I just discussed previously. Fill Down, on the other hand, allows us to copy a single value from one activity to another (or several). Here are just a few of the data fields that Fill Down can copy:

  • Activity Code
  • Activity Name
  • Activity Type
  • Budgeted Units
  • Budgeted Cost
  • Calendar
  • Duration
  • Percent Complete Type
  • Primary Resource
  • WBS Code

The first step is to highlight the data field that should be copied and highlight the cells below using the Shift key on the keyboard. Then right-click and select Fill Down from the menu. (There is also a keyboard shortcut: Ctrl + E).

But what if we are trying to copy a data field to an activity that is above the current one. Guess what? Fill Down can fill up! All we have to do is use the Ctrl key on the keyboard rather than the Shift key. The Ctrl key also allows us to select non-adjacent cells – something that is not possible when using the Shift key.

In the screen shot below I am replacing the 5-Day calendar with the 5 Day with Holidays calendar:

Fill Down

 

3. Link Activities

Probably 80% or more of my activity relationships will be Finish to Start in a typical baseline schedule. Because of this, it is faster to make everything Finish to Start and then go back and change the ones that should be something else. This is called managing by exception and it is a huge time-saver. The alternative is to work on one relationship at a time and I have better things to do, such as drink wine and eat chocolate.

Like Fill Down, if we highlight the activities with the Shift key, Finish to Start relationships are added starting from the top row and working down. But if we use the Ctrl key to highlight the activities, the order in which we select the activities becomes the sequence. Regardless, the relationships being added are Finish to Start.

A lot of schedulers seem reluctant to use Finish to Start relationships but it is the most conservative way to schedule work. The more we overlap activities the more resources that are required. In theory, we can “beat” a schedule that primarily uses Finish to Start relationships. An overly aggressive baseline schedule built mostly on overlapping relationships has no fat to trim should we find ourselves behind schedule and not have anyone else to blame.

Grouping is very important when linking activities. It is much easier to select multiple activities when they are somewhat close together. This can be accomplished by giving them the same Activity Code, WBS Code or even the same Activity ID prefix. There are many times when I have not yet “coded” my activities but by sorting on the Activity ID column, the related activities align themselves perfectly.

In the screenshot below I have selected a group of activities to be linked. Since I used the Shift key it does not matter if I highlight them from the top-down or the bottom-up. The result is the same – P6 adds Finish to Start relationships starting at the top.

Link Activities

 

4. Assign the Same Predecessor or Successor to Multiple Activities

There are times when we want to assign the same predecessor or successor to several activities. For example, all submittals can typically start right after the Notice to Proceed so they share the same predecessor. In my larger schedules I often have a hundred or more submittals that need a predecessor. All I have to do is highlight the submittals in the Activity Table and then click on the Assign Predecessor button on the right-side menu (as seen below) and select my Notice to Proceed activity. This predecessor will then be assigned to all of the highlighted activities. Sure, I could link Notice to Proceed to one submittal at a time, but remember what I said about wine and chocolate?

Assign Predecessor to Multiple Activities

 

5. Schedule Automatically When A Change Affects Dates

When linking activities it only makes sense to let P6 calculate the activity dates each time we add or modify logic. Even changing the duration of a single activity with no predecessors or successors will trigger the calculation since the Finish date of the modified activity is obviously a different than before. There is no excuse for submitting a schedule that has not been calculated, yet many users forget to do this one last time after making a few last-minute tweaks.

In case you do not know where to find this setting, I have included a screenshot below. Note that the fourth box from the top is now checked:

Schedule Automatically When a Change Affects Dates

 

 

 

 

 

 

 

 

 

When updating a schedule, however, I turn off this feature. It gets a little technical as to why I do this, but the simple answer is that P6 may reject actual dates I am trying to input if the program is constantly recalculating dates on the remaining work. So this trick is only appropriate when building the initial schedule.

What are your favorite Primavera P6 tricks? Please email me.


One of the advantages of Primavera P6 and its use of a database structure is the ability for multiple users to share files. This can also be a disadvantage, however. P6 administrators can restrict users in many ways, but once a user to given permission to do something, well, the hope is that he or she does not make a total mess of things. As a professional Primavera P6 trainer it always baffles me that someone might expect to master the art of scheduling without any formal instruction. There are not too many self-taught painters to my knowledge. Carpenters, bricklayers, mechanics, etc. all go through a training or apprenticeship program to learn their skills.

When Malcolm Gladwell described “The 10,000 Hour Rule” in his best-selling novel, Outliers, he could have very well been talking about scheduling. After I had been scheduling projects full-time for about five years – or roughly 10,000 hours – I felt like I had finally mastered the art of scheduling. And keep in mind, I was working on schedules every single working day. Many Primavera users only touch their schedules once a month during the update process. As a consultant, I was working on several projects simultaneously. In a typical month I would create two baseline schedules and update ten or more schedules.

But I digress. Today I want to talk about “Carl” and his dilemma. Carl attended one of my Primavera P6 classes in Oklahoma after pulling a 12-hour shift at a refinery. So you can imagine that by the end of an 8-hour class he was pretty beat. But he stuck around after class to talk about a specific problem he was having. You see, Carl was one of about a dozen schedulers working on the same project. Refinery shutdowns are very difficult to schedule. Durations are measured in minutes, not days. A six-month shutdown might require 25,000 activities to schedule. No single person could possibly handle this workload.

One particular problem that Carl was having is that he would calculate the schedule (i.e. F9) and there would be loops in the logic. And then everyone would yell at him for fouling up the schedule. Except that Carl was pretty sure he was not the culprit. He was simply the person running the schedule at the end of the day after everyone else had been inputting changes. This was your basic “shoot the messenger” situation. Carl was taking all the blame because he did not know how to figure out who was causing the problem.

While there is no perfect solution to Carl’s dilemma I was able to show him the audit columns in Primavera P6. These columns, available in the Activities Window, provide the following information regarding an activity:

  1. Who added the activity (“Added By”)
  2. When the activity was added (“Added Date”)
  3. The last person to make a change (“Last Modified By”)
  4. The date the most recent change was made (“Last Modified Date”)

These columns can be seen in the screenshot below:

Audit Trail Columns

 

Activity ID E2045 was originally added on February 27, 2015 by user “admin” and then modified about a month later, on March 25, 2015. Obviously we do not know the exact nature of the modification, but we now know where to start looking.

Unfortunately, there are some limitations. Changing the relationships between activities is not considered a modification. So Carl would not be able to identify who made the logic changes that resulted in loops. Still, adding new activities is often the source of a loop in a schedule because of the corresponding new relationships.

Changing an activity duration, on the other hand, is considered to be a modification. Other examples of recognized modifications are:

  • Assigning a new resource
  • Deleting an existing resource
  • Changing a resource’s budget
  • Changing the Activity Name
  • Assigning a new calendar

Note that if you are displaying time in the date columns (Edit > User Preferences > Dates) then it is possible to track who made the last changes on a given day.

Claim Digger can of course identify changes to relationships, but can not tell you who made the changes. The audit columns are still the best alternative within P6 for identifying the source of changes.

Keep in mind that only the most recent modification date and time is stored in the audit column so there is no way to see whether more than one user has been making changes to the same activity.

Copying a schedule results in the Added Date and Last Modified Date resetting to the day the schedule was copied, so the audit columns are only useful in the original version of the schedule.


2014 was the best year ever for Primavera Scheduling and our parent company, Construction Science. But while higher revenues are always welcome it was really the range of clients and training experiences that made 2014 very special. Here are just a few of the highlights:

  • We provided Primavera P6 training to a NASA contractor working on the Orion space program. Orion is the first deep-space program initiated by NASA since Apollo. As someone who well remembers landing on the moon – I was 11 years old when it happened – the idea of going back to deep space is very exciting. No decision has been made by NASA on a destination, but Mars or an asteroid seem like distinct possibilities.
  • We provided Primavera P6 training to Disney’s Creative Costuming at Disneyland. Yes, Disney uses Primavera P6 to schedule the making of costumes for all of their major theme-park characters. We spent one day at Disney University (!) teaching class and another day teaching at the actual location where the costumes are made. The effort that goes into making these costumes is quite extraordinary.
  • We provided Primavera P6 training to the U.S. Navy’s Space and Naval Warfare Systems Command (SPAWAR) in San Diego. One of the interesting tidbits that came out of this training is that the Admiral of the Navy does not like red bars on the Gantt charts. He apparently believes that “red” means the project is behind schedule. And you definitely do not want to make the guy in charge of the Navy’s weaponry mad. So we showed the SPAWAR team how to make the critical path bars another color.
  • We provided Primavera P6 training to a general contractor in Chicago who is renovating Wrigley Field. This $575M project represents the most extensive renovations ever made to Wrigley Field, one of America’s oldest ballparks.  This will be an incredibly difficult project due to the historic status of Wrigley Field – even the ivy that covers the outfield walls is a protected landmark. ESPN has posted some great high-resolution photos of what the renovated ballpark will look like.
  • I was selected by Lorman Seminars to be a presenter and moderator of its “Tricks, Traps and Ploys Used in Construction Scheduling” seminar in Sacramento, CA. After 31 years as a professional scheduler it was fun to talk about all the sneaky stuff that is sometimes part of CPM scheduling. An audio recording of the seminar and the training manual can be obtained at a 50% discount by using this link.
  • Our Primavera software sales nearly doubled compared to 2013. We have always offered very competitive pricing but we firmly believe that our personal attention to clients is really the deciding factor. With the various versions of Primavera software that are available (Contractor, P6 Professional and P6 EPPM) we try very hard to steer our clients to the right product for their needs.

On a more personal note, the partners in our firm attended Game 4 of the 2014 World Series in San Francisco. What an amazing experience! Attending a World Series game is, in my opinion, a “bucket-list” item. Winning the World Series? Priceless! Actually, this was a very special World Series for me as my first baseball love was the Kansas City Royals and now I root for the San Francisco Giants. Given how I feel about both teams maybe this should count as two bucket-list items!

To all of our clients we send our heartfelt thanks and gratitude. And we wish all of you a great 2015.