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

Oracle released Version 20.12 of Primavera Professional Project Management in December 2020. If you have not upgraded P6 recently, here are some of the most salient improvements since 2018:

Dissolve Activities With Or Without Lag: You can choose whether or not to retain lag when dissolving activities using the Retain lag setting in the Calculations tab of the User Preferences Dialog. If you choose to retain lag, the lag from the dissolved activity's predecessor relationship will be added to that of its successor relationship and applied to the new relationship. (Version 19.5)

Improvements to Stored Images Functionality: Multiple images can be uploaded at the same time. (Version 19.7)

Project Code Maximum Length Changed: The maximum length for Project Codes in PPM databases is 60 characters. (Version 19.7)


Scheduling and Leveling Options Can Be Exported to and Imported From Primavera XML: When you export projects to Primavera XML format, scheduling and leveling options are included. When importing the Primavera XML file, you can choose whether to import with the Update Existing or Keep Existing import actions against the scheduling and leveling options. (Version 19.8)

Allow or Restrict Access to Resources From Multiple Parent Resources: You can select up to five resources when defining which resources a user can access. The user can access and use the selected resources and all child resources of the selected resources. (Version 19.9)

Choose to Export Primavera XML Files Into a Compressed File: When you export projects in Primavera XML format you can choose to have the files exported to a single compressed file in .zip format. (Version 19.10)

Add Comments About Relationships: Add the Comments column in the Relationships detail window to add extra information about the relationship, for example to explain the need for lag assigned to the relationship or the need for the relationship itself. Relationship comments are plain text and can be up to 250 characters long. This is my favorite new feature. (Version 20.4)

Categorize and Organize Activities and Assignments Using Role Codes: With potentially hundreds of roles being used across an enterprise of projects, role codes provide another method for filtering the roles you need to access quickly, or for grouping, sorting, and filtering roles and role assignments. (Version 20.6)

Improved Control of Options When Scheduling Multiple Projects: In the Scheduling Options dialog box, you can select which of the open projects options will be used when you schedule multiple projects. In the Level Resources dialog box, you can select which of the open projects leveling options will be used when you level multiple projects. You can generate scheduling and leveling log files as HTML files. (Version 20.6)

Fill Down and Fill Across Quickly in the Resource Assignment Spreadsheet: You can fill data on the Resource Assignment Spreadsheet window from shortcut (right click) menu. (Version 20.8)

Fill Down Multiple Cells in the Resource Usage Spreadsheet of the Activities View: You can fill data on the Resource Usage Spreadsheet pane from several cells simultaneously. Select multiple contiguous cells by holding down shift while clicking the first and last cells in the range, then select the rows to copy to using either shift and click (to select contiguous rows) or Ctrl and click (to select separate rows), then right click to select the Fill Down menu item. (Version 20.9)

Financial Period Calendars Allow You to Use Different Financial Periods for Different Projects: You can create multiple financial period calendars with different periods. The different financial period calendars can have different durations as well as different start and end dates to each period. You can create new financial period calendars from scratch or duplicate an existing calendar as the basis for a new financial period calendar. (Version 20.10)

Copy Dates to Other Assignments Using Fill Down in Resource Usage: You can use fill down to populate dates in the Resource Usage Spreadsheet of the Activities window of P6 Professional. Fill down options for start and finish dates are available both in the Activity Resource Assignments section and the spreadsheet columns. (Version 20.10)

Easily See Exact Values for Histogram Bars: You can select to view the values for bars on histograms and stacked histograms in the options for the Activity Usage Profile, Resource Usage Profile, and Tracking View. (Version 20.10)

Categorize and Organize Assignments Using Codes: With potentially many thousands of active resource and role assignments across hundreds of projects, assignment codes provide another method for grouping, sorting, and filtering the assignments you need to access quickly. (Version 20.11)


+ Add a Block or drag an element into the page

The Makings of a Complicated Schedule

Categories: Activity Types, P6 Calendars, P6 EPPM, P6 Professional
Comments Off on The Makings of a Complicated Schedule

Primavera SchedulingWhen does a Primavera P6 schedule become complicated? I realize that for new users it might seem like every schedule is hard; but their problem is a lack of training or experience, not the schedule itself. Schedules with thousands of activities take more time to assemble, but that alone does not make them more complicated. Besides, in nearly every schedule there is repetitive work, so we can often copy dozens (if not hundreds) of activities quickly and reuse them. If you do not already know how to do this, read Time-Saving Tricks in P6 You Must Use.

Having prepared hundreds of original plans and thousands of updates, I can say for certain that two characteristics in particular complicate a Primavera P6 schedule. There are other situations that make a scheduler’s life “interesting” but trust me, these two are the biggies:

  1. The schedule has more than one calendar
  2. The schedule is resource loaded

Having more than one calendar is, mind you, often a necessity. The project specifications may require that inclement weather days be added to the calendar. In other words, anticipated weather days must be blocked out similar to holidays and other non-work days. But not all activities will be affected by weather (shop drawings, permits, interior finishes, etc.) so we must also utilize a calendar that does not have weather days.

Another reason for more than one calendar would be that some activities can occur any day of the week without exception, such as concrete curing, or the project specifications identify certain tasks accordingly. So now we have a 7- day calendar in addition to a work calendar with weather, and a work calendar without weather. Just like that the schedule has three calendars!

Okay, but why is it such a big deal to have multiple calendars? To start with, strange things can happen as the schedule moves from one calendar to another. Here is one possible scenario:

The predecessor finishes on Saturday because it obeys the 7-day calendar. If the successor has a 5-day calendar, it cannot start until the following Monday. Even though both activities might be on the critical path, the predecessor will have one (1) day of Total Float while the successor has zero (0) Total Float. After all, the predecessor could have finished on Sunday and still not hold up the successor.

In Primavera P6, Total Float is relative to the activity calendar so two activities on the same path may not exhibit the same float value if they have different calendars. By the same token, activities with the same Total Float value may not be on the same path.

Here is another possible scenario: the predecessor has a calendar that is 7:00 am to 4:00 pm. The successor has an 8:00 am to 5:00 pm calendar. The relationship between them is Finish-to-Start. The successor will start the same day the predecessor finishes because there is still one hour left in the day (i.e. 4:00 to 5:00 pm). This can confuse a lot of people who never display the time of day on their schedules. They think the activities are overlapping somehow when in reality they are not.

Moving on the resources, there is a calendar issue here to consider as well. Resources cannot use project calendars. Only global and resource calendars can be assigned to resources. Our students know why we prefer to use project calendars on every project. But the moment resources are added we are stuck with global or resource calendars. There is some logic here on Oracle’s part. Resources are not project-specific and so only a shared type of calendar would be appropriate.

So think about it. We already had three calendars because of weather and the need for a 7-day calendar and now we have a fourth one! The schedule can get seriously weird at this point. What if the resource plays by different rules than any other calendar? Well, our strategy is to create a global calendar first, copy it as a project calendar, and also assign it to the resource. So the project calendar and the resource calendar are identical.

There are situations where the resource works different hours or different days and should take over in terms of calculating dates. Perhaps the resource is never available on Fridays. We have to consider whether the project or resource calendar is more important. This is why Primavera P6 offers Task Dependent and Resource Dependent activity types. There is no single right answer; it depends on the circumstances.

The question in my mind when it comes to resources is, “does the dog wag the tail or does the tail wag the dog?” If the dog is in charge then I want a Task Dependent activity. Then it won’t matter if the resource calendar does not align with the activity calendar.

Another consideration with resources is that we can allow Primavera P6 to change the activity duration – something that would never happen otherwise. Therefore, the Duration Type becomes a very big deal. Should we let this happen? It does introduce additional moving parts to a schedule that might be difficult to understand due to other reasons such as multiple calendars. Still, it does make sense that if I know the budgeted hours and the crew size, why not let Primvera P6 do the math?

And of course, if we resource-load a Primavera P6 schedule we can also resource level the schedule. I teach this in my intermediate and advanced classes, albeit with the caveat that it takes several iterations of resource leveling before we can be satisfied that the optimum answer has been found: finishing as quickly as possible using a reasonable number of resources. Not exactly something the Pharaohs worried about but for us mere mortals, time and resources are limited.

Sometimes, giving priority to the earliest activity that needs the resource yields the best result. Other times it is better to give priority to the activity with the least amount of float. If I want a very precise allocation of resources I will utilize the Activity Leveling Priority. Unless you know what all of this means then it would be unwise to resource level a schedule without guidance.

Owners may not like the idea of resource leveling because it reduces the Total Float that contractually is almost always shared between owners and contractors. But sequestering Total Float is not the idea. One of the best schedules I ever saw (that wasn’t mine) was a resource-leveled schedule on a project in Hong Kong. The owner thought it was madness but it definitely worked.

I have not touched upon everything to consider with multiple calendars and resources, but hopefully the point has been made. Complicated schedules are frequently unavoidable, often necessary, and must always be respected. Are you ready for the challenge?


Claim Digger Limitations

Categories: Claim Digger, P6 Calendars, P6 EPPM, P6 Professional, P6 Tricks
Comments Off on Claim Digger Limitations

Primavera SchedulingClaim Digger is a convenient tool inside Primavera P6 for comparing schedule files to determine what changes have been made. But there are limitations to what Claim Digger can tell us about a revised file. Experienced Primavera users will recall that Claim Digger used to be a third-party program used to analyze Primavera P3 files. When Claim Digger was incorporated into Primavera P6 several years ago the functionality changed in ways that were both good and bad. Being able to export to HTML format is nice, but having the durations (including float and lags) displayed in hours is inconvenient on schedules with durations that are shown in days.

There are third-party software programs that can do much more than Claim Digger. Still, if you think that Primavera P6 costs as much as having a baby then anything that is “free” will be the most desirable option. So most of us will have to get by with Claim Digger until money starts growing on trees.


Note: in Version 16.1 of Primavera P6 Claim Digger is now called Schedule Comparison and is accessed from the Visualizer program. You will find Scheduler Comparison in the same location (Tools) as Claim Digger but clicking on this button will launch the Visualizer program.


The biggest limitation in Claim Digger has to do with calendars. Here are two scenarios where Claim Diggers will let you down:

  1. Changes made to a calendar, such as revisions to the number of hours per day, days per week, holidays, etc. are not picked up by Claim Digger
  2. Changing the calendar on an activity from Global to Project (or vice versa) is not picked up if both calendars have the same exact name

Indeed, Claim Digger will tell us nothing about calendars other than whether the name of the calendar is different. To demonstrate this for myself I created a Project calendar called “Standard” that is a copy of a Global calendar with the same name. I assigned the Global calendar to all of the activities in a sample project. After creating a baseline (copy) of this project I switched the calendar on the activities in the current project to the Project calendar. Claim Digger did not report any changes to calendars.

I then changed the name of my Project calendar in the current project to “Standard Days” and re-ran Claim Digger. As I expected, Claim Digger reported that I had changed the calendar. Yet other than the name, it was still the same Project calendar. I hadn’t changed anything else. In other words, a false positive.

Owners often run Claim Digger (or ask for the results) so anything that suggests a change when in fact no change was made creates unnecessary confusion. Conversely, a sneaky scheduler could block out additional days in the calendar to coincide with an owner-caused delay in order to exaggerate the impact. An experienced scheduler should be able to figure out if there are any shenanigans going on, but the reality is that P6 is chock-full of hidden traps for the uninitiated.

While we are on the subject, I often refer to myself as a “Primavera P6 Scheduler” because there are in fact specific techniques to scheduling projects with Primavera P6. Case in point: Microsoft Project does not allow two relationships between the same two activities, while in Primavera P6 this is perfectly acceptable. A good scheduler with poor Primavera P6 skills can still make a lot of mistakes because of their unfamiliarity with the program. For the same reason, I tend to be very cautious in Microsoft Project because it is not my bread and butter.

I started using Primavera software in 1987 so in my mind the rules that I observe have almost always been specific to one particular program. Prior to 1987 the software I used was proprietary and followed basic Critical Path Method rules. But CPM does not teach you about Activity Codes, Resource Leveling, and so many other things that are now possible because of software any more than an accountant would automatically know how to create a macro in Microsoft Excel.

“Old-school” schedulers who refuse to stay current on scheduling software get no sympathy from me. I started with proprietary scheduling software, learned Primavera P3, followed by Primavera SureTrak, Primavera Primavera P6, Primavera Contractor, and Primavera P6 EPPM. Not to mention all of the other programs like Microsoft Office that I have had to learn over the years. I had to learn WordPress just to type this silly blog!

 


Party like it’s 2050

Categories: P6 Calendars, P6 Professional, P6 Tricks
Comments Off on Party like it’s 2050

Recently we noticed several people asking about the “2050 problem” with Primavera P6 on Linkedin. Here is the issue. When Primavera P6 users try to input dates starting in 2050 the calendar reverts to 1950. Holy Marty McFly! (As an aside, my brother Steve owned a DeLorean for more than 20 years and his mechanic did all of the work on the “Back to the Future” cars). For those of you with access to My Oracle Support, a solution was posted in Doc ID 905558.1 without much explanation as to the root cause. This problem does not occur in the P6 Web component of P6 EPPM.

While 2050 may seem like a rather esoteric concern the reality is that some of our clients are planning projects right now that are expected to last decades. For example, we trained project managers from the Southwest Research Institute Planetary Science Directorate. SwRI is an independent, nonprofit, applied engineering and physical science research and development organization with over 3000 employees. One of their projects is NASA’s New Horizons Mission to Pluto.

The New Horizons spacecraft left Earth on January 19, 2006 and did not reach Pluto until July 14, 2015. That’s nearly nine years just traveling in space. But before that there were the many years spent planning this mission. We have also trained several NASA contractors at Cape Kennedy and it really makes you appreciate what long-range planning is all about, in terms of both time and distance!

Personally, I expect to be either dead or cryogenically frozen by 2050, but for the younger Primavera P6 users out there who expect to be around then there is a solution right now. First, we need a DeLorean…

Just kidding. The solution is actually quite simple. The “2050 problem” only occurs in Primavera P6 when the date format is set to two digits for the year. Inputting 01/01/50 in a date field is interpreted as January 1, 1950. Who knows why this suddenly starts happening in 2050. Dates in 2049 are fine! But if the date format is set to four digits before the dates, P6 is ready to party on past 2049.

The date format is a user preference. Go to Edit > User Preferences > Dates to change the date format. Keep in mind that changing a user preference changes the appearance of all projects accessed by that user. Going back to two digits for the year later on could cause issues with the projects that extend past 2049. I am certain that Oracle will fix this issue eventually. And perhaps we will see a real hoverboard by then!


The Pitfalls of Using Multiple Calendars

Categories: P6 Calendars, P6 Optional Client, P6 Professional, P6 Web
Comments Off on The Pitfalls of Using Multiple Calendars

Projects often require more than one calendar. For example, the office personnel work 8 hours per day, but the field personnel work 10 hours per day (a good reason to be stuck indoors, I suppose). Another reason might be that some activities involve a process that continues around the clock – concrete curing or a test that has to be performed continuously for several days. One of my clients manufacturers most of its components overseas and uses a 7-day calendar for shipping the components to the United States but the fabrication activities are based on a 5-day work week with holidays. So multiple calendars is a sensible approach.

Nevertheless, using more than one calendar on a project is liable to create issues in Primavera P6. Activities will seemingly start or finish on the wrong day. In most situations we would expect that with a Finish to Start relationship the predecessor finishes the day before the successor starts. This is unlikely, however, if the number of hours being worked each day do not match for the predecessor and successor. In the following example I have a predecessor using an 8-hour calendar and a successor using a 10-hour calendar:

Multiple Calendars_Before

 

The 8-hour task has a start time of 8:00 am and a finish time of 5:00 pm with a 1-hour lunch break. The 10-hour calendar has the same start time but the workday does not end until 7:00 pm. Therefore, the successor can work for two hours on the same day that the predecessor finishes. Since most users do not show the time of day in the date columns it will appear that the relationship between these two activities is something other than Finish to Start.

This problem will reverberate throughout the schedule as one activity after another starts and finishes slightly off the usual time. In order to locate the source of the problem I will sort the activities by the Start date, display the time of day in the date columns and look for the first task that does not start at the usual time.

But how do we stop this from happening in the first place?

The solution is quite simple. Give the 8-hour calendar and the 10-hour calendar the same start and finish times.

I know what you are thinking. The math doesn’t work!

Well, it just takes a bit of fibbing. See, I create an 8-hour calendar with a 2-hour lunch break and a 10-hour calendar with no lunch break. Now both calendars have the same start and finish times. Problem solved. (Our company slogan is “Problems Solved” but I will settle for just one right now).

My solution is displayed below:

Multiple Calendars_After

 

The reality is that most users do not want to see the time of day in the date columns so the 2-hour lunch break has no effect whatsoever. I seriously doubt some worker will disappear for two hours because of the CPM schedule. If he or she does, I will buy them lunch!

Some of you might wonder why we should have two different calendars at all if the start and finish times are going to be exactly the same. Well, for resource-loaded schedules it is important to have the hours per day match expectations.

My oil & gas and nuclear clients who schedule by the hour would never submit to this ruse because the time of day will of course be displayed. It is not enough to say an activity starts on, say, Monday, because the activity durations are just a few hours typically. So the next task starts the same day. But for the rest of us this solution works quite well.

I employ a similar strategy for my 7-day calendars. I make sure that the start and finish times match my other calendars. Which means my concrete curing activities typically start at 8:00 am, take a lunch break, and stop at 5:00 pm if my other calendar is an 8-hour calendar. Using a 24-hour calendar would just make things too complicated.

Any questions? Fee free to contact me.


Another Reason for Not Using Global Calendars

Categories: P6 Calendars, P6 Professional, Uncategorized
Comments Off on Another Reason for Not Using Global Calendars

Students who attend our Primavera P6 training classes know that we prefer to use Project Calendars rather than Global Calendars. One reason is that other users may have the ability to change Global Calendars, which means their changes are applied to any project using that Global Calendar. Obviously there are many situations where that would be a bad thing. Another reason is that when exporting a project that uses Global Calendars, those Global Calendars then wind up in the Global Calendars list of the recipient who imports the project. Frankly, the only time I want to see a project’s calendars is when I have that project open.  And today’s blog deals with a very specific problem of exporting and importing schedules that use Global Calendars.

During one of our classes a student asked me to look at a schedule he had already started on a project his company was building. When I imported the schedule I ran the schedule calculation (F9) so that I could review the Schedule Log. During my review it became apparent that the project end date that I was seeing was different from what the student was seeing. My first thought was that he had forgotten to schedule the project prior to exporting the file, but even after hitting F9 the project end dates did not match. So what the heck was happening?

As it turned out, not only was my student using a Global Calendar, he was using a Global Calendar with the exact same name as a Global Calendar in my database. This rarely happens to me because even a basic 5-day calendar can be labeled so many different ways, such as:

  • 5×8
  • 5 x 8
  • 5-8s
  • Five day calendar
  • 5 day calendar

Anyway, I think you get the idea. My student had used one of the Global Calendars provided with the sample projects that are available when installing Primavera P6. I had the same Global Calendars in my database so, presto, it was easy for my student to pick a Global Calendar name that already existed in my database.

Primavera P6 will not overwrite Global Calendars when importing schedules. My version of the Global Calendar remained intact, which is probably a very good thing when you think about it. But as a result, my student and I had Global Calendars that were the same in name only. His actually had more holidays, so the project end date was later. That was the only reason we were getting different results.

Sharing schedules among databases always introduces concerns when global data is being used. Hopefully you will now understand why it is so important to use project-specific data as much as possible.

 


Calendar Issues in Primavera P6

Categories: P6 Calendars, Primavera P6
Comments Off on Calendar Issues in Primavera P6

Most Primavera P6 users are familiar with setting up and modifying calendars. There is a potential problem, however, when specifying more than 8 hours per day for activities. P6 defaults to 8-hour work days, as we will see in a moment, and interprets anything more than 8 hours as overtime. This results in activity dates not calculating as expected. In the following example, I created a 5-day calendar with 10 hours per work day, Monday through Friday. The work day starts at 7:00 am and ends at 5:00 pm (this allows for no lunch break but my theoretical crew is a bunch of really hard workers!). I assigned this calendar to an activity with a 5-day duration. Notice what happens:

Calendar Issues in P6_1

The 5-day task finishes in 4 days. Why? Because P6 assigned an imaginary budget of 40 hours to my task based on a normal 8-hour day. By working 10 hours per day, my crew worked 40 hours in 4 days. This can be confirmed by adding a labor resource and watching what happens to the budgeted hours. While this figure can be changed later on, the initial budget will be based on 8 hours per day regardless of the calendar settings.

Now, savvy P6 users know that the hours per day can also be modified somewhere other than in the calendars. Under Admin, Admin Preferences, Time Periods, the hours per day, week, month and year can be specified. This menu is shown below:

Calendar Issues in P6_Admin Preferences

We can change the time units under Admin Preferences to show 10 hours per day. This solves the problem of P6 thinking that anything in excess of 8 hours per day is overtime, but it also changes the settings of every schedule in the database. These are Admin Preferences, and not User Preferences. Admin Preferences affect all projects.

Nevertheless, we are real close to a solution. Note that right under the time periods in the Admin Preferences there is a box with the following phrase:

“Use assigned calendar to specify the number of work hours for each time period.”

Checking this box is real important because it allows us to use the hours per day in our calendars rather than the global hours per day under Admin Preferences. But we need to make one last adjustment.

Under Enterprise, Calendars, there is an option to specify time periods. These time periods are calendar-specific. In the screenshot below we can see the time period settings for just one calendar:

Calendar Issues in P6_Time Period

 

 

 

 

 

 

 

 

By making the hours per day in the time periods for this calendar match the hours per day in the calendar itself then P6 will properly understand what is considered to be a normal work day.

Your thoughts? Please email me with any comments or questions.