Posts Tagged “Primavera P6”

Primavera P6 R8.4 Database Options

Coal miner at work with pick axIn a recent blog for Construction Science I discussed some of the new features of Release 8.4 for Primavera P6 Professional and EPPM. Today I would like to discuss the database options for a standalone installation of P6 Professional. Oracle 10g Express (Oracle XE) has been included with P6 for several years. Users could also choose from one of several versions of Microsoft’s SQL Server, but most opted for SQL Server 2005 Express Edition because it is a free program. Both of these options are still available. But Release 8.4 introduces another option, SQLite. The advantage of SQLite is that it does not have the size limitation of Oracle XE (4 GB) and is easier to manage than Oracle XE or Microsoft SQL. Backing up a database is now as easy as copying a file folder because SQLite is a serverless database engine. For users who have struggled with Oracle XE or Microsoft SQL Server, SQLite seems like a great option.

Ah, but there is a trade-off for simplicity! Oracle’s Application Programming Interfaces (APIs) are not compatible with SQLite. This is something Oracle intends to fix in a future P6 release or patch. APIs are the building blocks of many software programs, and while it is not something most of us would ever realize, Oracle’s Claim Digger is an API. So Claim Digger is not accessible when using SQLite. For me, that is a deal-breaker. I use Claim Digger nearly every day to analyze files. In some situations my clients have more than one version of a baseline schedule or update on their server and they no longer remember why. If some of these files are in fact identical we can delete them without any concern. At the very least, Claim Digger will tell us what the differences are. Most owners also expect contractors to explain what changes were made during the update process, and the Claim Digger report usually suffices.

Claim Digger does have some limitations, which I will discuss in a future blog, and there are third-party programs that are more powerful. However, Claim Digger is included with P6 so it is a tool that all users have access to without spending more money. I will accept free help anytime!

Also, because SQLite is truly a single-user environment, there are several other restrictions:

  • There are no User or Security Profiles, as there can only be one user
  • All projects are opened in Shared mode; Read Only and Exclusive modes are disabled
  • Sending e-mail notifications of Project Issues is not supported
  • Advanced import options are disabled for projects in XML format
  • Check In and Check Out of projects are disabled
  • There are no options to save data for All Users or Another User (layouts, etc.)
  • Job Services is not supported; Jobs cannot be scheduled
  • Update Baseline and Risk Analysis are not supported

The Case Against “Must Finish By”

When setting up a new project, the user will be faced with the “Must Finish By” option. Our advice is to leave it blank. Yes, every project has a finish date. Otherwise, it does not meet the definition of a project. That is to say, a project must be: (1) unique, (2) have a specified time frame, and (3) a defined scope of work. Unfortunately, projects often end up with a longer time frame and increased scope, but that is a subject for another day.

To review, the “Must Finish By” constraint is presented while setting up a new project or by selecting the Dates tab in the Project Details Window after the project has been added to the EPS. The former situation is presented below:

Must Finish By_1

 

 

 

 

 

 

 

Which begs the question, what is “Must Finish By”. Well, it is basically a project-level constraint that affects all activities. When this constraint is used, no activity can finish after the date selected. In theory, a date prior to project completion could be selected in order to determine how many activities have slipped past a particular date.

Without further ado, here is why we don’t use the “Must Finish By” option:

  • If the user selects a date beyond the latest calculated date, the critical path will have positive Total Float. Showing positive Total Float is a little like putting candy  in the reception area – it tends to disappear. The owner and subcontractors are now aware that activities on the critical path are not so critical any longer. And because Total Float typically belongs to the project, any party is entitled to use the Total Float at their discretion. Without this constraint, the critical path has zero (0) Total Float, even if the project is ahead of schedule.
  • The Schedule Log does not show the “Must Finish By” constraint. Only activity constraints are listed in the Schedule Log, so it is easy for a user to forget (or not realize) that a project constraint has been applied. This can create confusion, especially when the “Must Finish By” constraint is generating negative Total Float. The Schedule Log will not indicate that any constraints are “unsatisfied” because, again, only activity constraints are considered.
  • Activity constraints are revealed in the Start or Finish column (depending on the type of constraint) with an asterisk (*). This feature dates all the way back to P3. There is one exception to this rule – the “As Late as Possible” constraint – but otherwise this is a rather obvious hint that a constraint is being used. Note that in P3, the asterisk appeared in the Early Start or Early Finish column, which is a good reason not to use those columns any longer.
  • The “Must Finish By” constraint does not have a calendar to calculate from so it defaults to midnight of the day before. So a “Must Finish By” date of January 12, 2016 will generate one (1) day of negative Total Float – even when the project is actually finishing on that date. Why? Because the project must finish by midnight the day before to avoid being considered behind schedule. The user must either select the day after the scheduled project finish date as the “Must Finish By” (which makes it seem like the user is unaware of the real contract end date) or choose to show activity durations in hours so that the time of day can be changed. This is illustrated in the next two screenshots.

Must Finish By_2

 

 

 

 

 

 

 

 

 

 

Must Finish By_3

 

 

 

 

 

 

 

 

 

 

This is a lot of extra effort just to adjust the date, and many contractors have no desire to show the time of day in their schedules. In a closed network, placing an activity constraint on the last activity is simply a better solution. An activity constraint is also easier for everyone to see and therefore monitor. Any questions or comments? Please feel free to contact me.

 

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.

 

Export Resources without Cost Data

The purpose of exporting Primavera P6 files in “XER” format is to transmit all of the project data to another database. In many cases we are not looking to exclude any data. So how do we avoid sharing sensitive cost data with other parties? Contractors may not want owners, subcontractors and other parties to have access to this proprietary information.

There are two options for not sharing cost data. One option is to delete resource assignments altogether. We do this by copying the schedule inside Primavera P6 and un-checking the “Resource & Role Assignments box, as seen below:

Export Project without Resource Costs_1

 

 

 

 

 

 

While this option works perfectly well, the recipient will see no resources or roles in the schedule. What if we want the recipient of this file to be able to see the resource units but not the unit prices? This requires a different approach. Option 2 involves creating a new user and associated user profile who is not allowed to view cost data. When this user exports the file the resource rates will disappear but the resource assignments and units will remain intact.

First, we create a new user and label that person in such a way that we remember why this user was created in the first place. Go to Admin → Users. Below, I have added a new user with the name “Export User”:

Export Project without Resource Costs_2

 

 

 

 

 

 

 

Note that I have given this new user access to every project in my database by assigning this user to the highest level in the Organization Breakdown Structure (OBS). This is not absolutely necessary but it does make it easier to export any project without cost data.

Second, we need to assign the new user a Project Profile that excludes the ability to “View Project Costs/Financials”. Go to Admin → Security Profiles and select Project Profiles. In the screenshot below I have added a new Project Profile, “No Costs Exported”:

Export Project without Resource Costs_3

 

 

 

 

 

 

 

Also, I gave this new user no ability to modify schedules because the only purpose of this user is to export projects sans cost data. As soon as the project has been exported I will log back in using my normal user name.

Now we are ready to export a project with cost data. Keep in mind that you will need to log in as the new user first!

Questions or comments? Please feel free to contact me.

 

Import Primavera P6 Filters with Layouts

Most Primavera P6 users know how to share a layout with someone in a different database. But did you know that filters can also be shared? To recap, we select View → Open Layout → Export to transport a Primavera Layout File (PLF) from the database. The other user then selects View → Open Layout → Import to bring the PLF file into their database. While there is no such export/import feature for filters, they can be attached to any layout and therefore transferred to another database.

The trick to exporting filters with layouts is to copy an existing filter as a Layout Filter. In the screenshot below I have selected the existing User Defined filter, “Activities with Steps”. To create a Layout Filter, select “Copy As Layout” from the right-hand side of the filters menu:

Export Filters with Layouts_Step 1

In the next screenshot we see the result of this operation. The “Activities with Steps” filter appears under a new group, “Layout Filters”. All filters copied to this group will be exported with any layout you choose to export. Because of this, you might want to keep the number of Layout Filters to a minimum, or delete those that should no longer be exported.

Export Filters with Layouts_Step 2

One other thing. The above layouts are project layouts. The Enterprise Project Structure (EPS) has its own set of layouts. When the other user receives the Primavera Layout File it is important that they open a project – any project – and import the layout in the Activities window. EPS layouts are not compatible with project layouts despite having the same PLF format. However, EPS filters can likewise be exported with EPS layouts.

 

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) 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.

 

 

 

 

Weird Negative Float Situations – Part 1

Most of us understand that negative float is generated by a constraint that is not being “satisfied” and indeed, we cannot have negative float without a constraint. Or so it would seem. But during a recent training session at the Kennedy Space Center my client showed me several Level of Effort activities that had negative float. In fact, all of the Level of Efforts had negative float yet no other activity showed any negative float whatsoever. Imagine that; the activities linked to the Level of Efforts have positive float but the Level of Efforts have negative float!

In the first figure I am showing a typical setup with a Level of Effort activity linked to one predecessor and one successor. The Activity Type is shown in the Activity Table to make it easier to see which activity is the Level of Effort:

LOE Before Progress

 

Okay, so far nothing is amiss. The Level of Effort is linked to activities on the critical path and therefore shares the same zero (0) float. But watch what happens when the predecessor to the Level of Effort is updated with progress:

LOE After Progress

The Level of Effort activity – and only the Level of Effort – has negative float! Keep in mind that no constraints are being used in this schedule. And while all of the Task Dependent activities are on the critical path I can assure you this has nothing to do with the negative float on the Level of Effort activity.

So how is this possible?

The answer has to do with the ability in Primavera P6 to calculate float three (3) different ways. These settings appear under Schedule Options:

Float Calculation Settings

I typically calculate float as the difference between the Late Finish and the Early Finish dates. But my client had selected Late Start – Early Start. (The third option is to take the smallest value of the two calculations). Choosing any setting other than Late Finish – Early Finish will generate negative float once the predecessor to the Level of Effort has started. Moreover, astute viewers will notice that the negative float matches the number of days that have elapsed since the predecessor started. The predecessor started five work days before the Data Date and the float is -5 work days.

Why this is happening is a little hard to explain, but Primavera P6 calculates float for both the start and finish of every task. Normally this results in the same value. Level of Effort activities, however, are another matter. Primavera P6 calculates the float on this type of activity as the difference between the Actual Start Date and the Data Date and perceives the activity as being “late” because the Data Date is later than the Actual Start Date.

Thankfully this weird float issue can be easily avoided by using Late Finish – Early Finish for the float calculations. And while this has always been my personal preference I have a whole new appreciation of this setting now.

 

 

Every Schedule Needs a “Hammock”

Granted, we do not call them Hammocks any longer because P6 introduced a new label: Level of Effort. This is of course an activity type. Why Oracle decided Level of Effort is a better description is rather baffling. During our training classes when we talk about Hammocks most people get the analogy of something that spans from one place to another, just like the hammocks you might see in a backyard. Simply put, a Level of Effort activity measures the distance between a predecessor and a successor. Why is that important?

We typically use a Level of Effort activity to measure the project duration. This is the only accurate means of measuring the project duration if more than one calendar is being used. We assign the Level of Effort activity a calendar that matches the calendar used to specify the project duration. So if the project is supposed to finish within 300 calendar days, we give the Level of Effort activity a 7-day calendar with no holidays.

Another excellent use of this type of Level of Effort activity is to represent overhead and profit on a cost-loaded schedule. Since the Level of Effort activity already mimics the project duration, it gives us a per diem distribution of overhead and profit for the life of the project. This is much easier than trying to add overhead and profit to each activity in the schedule.

In the example below, Activity ID 01 is a Level of Effort activity with two predecessors, and two successors. When there is more than one predecessor, the earliest Start date becomes the Start date of the Level of Effort activity and the latest Finish date becomes the Finish date of the Level of Effort activity. For this to work right, the predecessor relationships must be Start to Start and the successor relationships must be Finish to Finish.

LOE Example

Any activities can be linked with a Level of Effort activity, so this is not always about “effort”. We could link the Start date of the first piping task to the Finish date of the last piping task and this would give us the overall duration of piping work. But if we tie the Level of Effort activity to something other than the first and last piping tasks we are not describing the overall timeframe for piping correctly. A WBS Summary activity is another option (which we will discuss later) if the only goal is to show a summary bar. Keep in mind, the duration of a WBS Summary activity may be incorrect unless all the activities it summarizes share the same calendar.

 

Primavera P6 Professional Version 8.3 Released

Oracle recently released Version 8.3 for both P6 Professional (PPM) and P6 Enterprise (EPPM). Today we will be discussing changes to P6 Professional.

Visualizer

Visualizer is a new feature that supports graphical reporting via customizable Gantt charts and timescaled logic diagrams (TSLDs). The TSLD was initially introduced with Version 8.0 and is now replaced by Visualizer. One of the advantages of a TSLD is the ability to show more than one activity on the same line, which reduces the height of the logic diagram considerably.

In addition to the P6 Professional’s standard graphical features, Visualizer adds the following features:

  • Stack columns and use word wrapping in the Gantt chart
  • Use notebook topics or a list of steps as a bar label or as a field in the activity table
  • Apply various fonts to individual labels and fields
  • Color-code and apply different shapes for bars and endpoints
  • Draw bars on top of each other, for example, to show critical highlighting

Visualizer is a desktop application that can be launched either from within P6 Professional or from the computer’s start menu. It connects directly to the P6 database. This marks the first time users have been able to view project data without launching P6.

After launching Visualizer, users can choose to create or open a TSLD or Gantt chart. Users can also print and manage layouts from inside Visualizer. P6 Professional layouts or Visualizer layouts created by other users can even be imported.

The Gantt chart includes a grid and a bar chart. The grid displays activity information in a table format, similar to the Activity Table in P6 Professional. On the Chart & Grid tab in Layout Options, display the Gantt chart, the grid, or both.

The screen below shows an example of a TSLD in Visualizer with multiple bars per row and critical activities coded in red:

Visualizer TSLD

Discussion Feature

Previously we had the ability to track comments about activities using the Notebook tab in the Activity view. Version 8.3 adds a new Discussion feature that tracks these comments by team member. All comments are dated and labeled with the contributor’s name. Similar to Notebook comments, Discussions are stored electronically with the activities. This is a nice tool for encouraging dialogue and feedback on activities.

Also, we can now add a column called “Unread Comments” to the Activity Table to prompt team members to review the most recent Discussions. Notebook comments, by comparison, can only be shown as a label on an activity bar and do not appear in the Activity Table.

Visualizer Discussion Tool

XML Import/Export Enhancements

P6 Professional Version 8.3 provides a number of enhancements to its XML import/export functionality. Users can now exchange XML project files with previous versions of P6 Professional from Version 6.2 Service Pack 4 (SP4) onward. Also, all features supported by the P6 Professional XER format (constraining of external relationships during import, inclusion of Price/Unit in resource assignments, etc.) are supported in XML format as well.

P6 Professional Version 8.3 also gives users the ability to import or export multiple projects simultaneously. When exporting multiple projects, the projects are combined into a single XML file. Importing multiple projects requires the projects to be contained in a single XML file.

Visualizer Export

Bottom Line – Worth an Upgrade?

Users who have a current support agreement with Oracle can upgrade to Version 8.3 for free. Otherwise, you will have to pay full price to get the newest version. Version 8.3 does have some nice enhancements but they are not worth buying a new license. The TSLD still does not show relationship lags – only the relationship types – despite several upgrades since it was first introduced. Users have been asking for this feature for quite a while. Of course, the Gantt chart does not show the lags either so we will have to wait until, perhaps, Version 8.4 is released.

In the meantime, we will be testing Version 8.3 for bugs. Versions 8.1 and 8.2 tend to crash more often than Version 7.0 (our favorite) so reliability is always a concern. The casual user of P6 would not miss the enhancements found in Versions 8.1 and 8.2 so it once again comes down to whether a free upgrade is available. Certainly, new users should consider Version 8.3 as there is no discount for buying older versions and Version 8.3 is backwards compatible with earlier versions of P6 Professional.

 

 

 

Apple’s “Spaceship” $2 Billion Over Budget?

Bloomberg BusinessWeek reported on April 4th that cost estimates for Apple’s new futuristic headquarters in Cupertino, CA have ballooned from $3 Billion to $5 Billion since plans were first revealed by the late Steve Jobs in 2011.

Officially designated as Apple Campus 2, construction was supposed to have started in 2012. Apple submitted revised construction drawings to the City of Cupertino in November of 2012. Review of the new drawings was expected to take several months. This image, posted on the city’s website, is simply breathtaking!

Apple Campus 2

Apple has never released any budget estimates to the public and Businessweek offers few clues as to why cost estimates would have skyrocketed. The footprint of the project has increased from 50 acres to 175 acres, but this has been known since 2006. However, there are a few major projects in the Bay Area currently competing for resources: both Facebook and Google are building new headquarters and construction of a new stadium for the San Francisco 49ers in Santa Clara is just now winding down.

Ironically, for a company headquartered on One Infinite Loop, Apple may be learning firsthand that resources for construction projects are rather finite. Right now in San Francisco, Local 6 of the International Brotherhood of Electrical Workers (IBEW) is reporting 100% employment. Projects in San Francisco are importing electricians from other cities. As noted in my previous post, construction employment has increased in California the past two years – especially in the Bay Area.

The good news? Apple is committed to using Primavera P6 on the Apple Campus 2 project. All contractors are required to utilize this software. As Primavera schedulers we are happy to see P6 being used for such a high-profile project.