…then download the file “sqliteodbc.exe” for 32 Bit and perform the installation procedures.
Verify that the SQLite ODBC Driver installation completed properly by accessing the ODBC Data Source Administrator (32-bit), then clicking on “Drivers” tab as shown below:
The SQLite ODBC drivers are shown above demonstrating a correct installation.
From the Website sample download screen shown below, select the Download option, then select the save option to download the files. The files will be downloaded to your “Downloads” folder or to your configured downloads location.
Click OK to continue with the download procedures.
Next, navigate to the Downloads folder, then look for the Zummer – 30 Day – SQL.zip file.
Step 2: Unzip the Zummer files and copy files to a local drive & folder:
Double-click on the Zummer – 30 Day – SQL.zip file to display the Zummer folder as shown below:
Copy the Zummer folder shown below to an appropriate place on your Personal Computer or local drive.
It is highly recommended that the Zümmer be placed somewhere in the “Documents” or “My Documents” folder.
Open the Zümmer folder, then verify that the download has completed successfully. The Zummer folder consists of 16 files and 4 subfolder as shown below:
Next, open the Data folder, then verify that the folder consists of 25 files as shown below:
Next, return to the Zummer folder to create a “shortcut” to zummer.exe. Right-click on the zummer.exe file, the select “Create Shortcut”. A shortcut file will be created as shown below:
Next, Drag/Drop the shortcut to your desktop. You are now ready to run Zümmer from your desktop for the first time. The shortcut file on your desktop should appear as shown below:
Zümmer Shortcut Icon
Double-click on the Zümmer Shortcut, to run Zümmer for the first time.
Note: If you have Windows Defender, Norton Download Insight, or some other protection software, a warning message may appear since these Programs do not have conclusive information regarding zummer.exe. Whatever software is present, select the “Run Anyway” option.
Step 3: Running Zümmer for the first time
The Zümmer application will open as shown below:
Next, from the Main Menu, select “Help” -> “About Zümmer” to display the About Zümmer window displayed below:
The “About Zümmer” window shown above, contains some very important information about your application.
1) Circled in Blue is the date of your license expiration date. If you have purchased a full license, the expiration date will be some time in 2044 or even later. If your full license expiration date arrives and you are still using Zümmer, first congratulate yourself, and then contact FoxQuest Systems, Inc. for instructions for extending your license.
2) Circled in Red is the current Release date of the version you are currently using. If some time has elapsed between the current date and the Release date, follow the instructions below to upgrade your Zümmer application.
3) Circled in Orange is the name of the Registered Owner of the Zümmer. FoxQuest Systems Inc., reminds you that this is a copyright protected application and therefore insists that you refrain from making unauthorized copies of this application.
4) The System Info… commandbutton provides valuable information about your computer’s configuration.
Click on OK to proceed to Step 4.
Step 4: Connecting your Schedule Data to the Zümmer Application with SQLite.
From the Main Menu, Select “Settings”->”SQL Connection”, then click on the “SQLite” tab.
In the editbox above, type in the path to the “PPMDBSQLITE.DB” containing your Schedule Data. Alternatively, click on the “Browse…” commandbutton to navigate to the file you are using to store your Schedule Data.
If you’re not sure of the location of the SQLite file containing your Schedule Data, then open the P6 Application. In the Login to P6 screen as shown below, click on the Database ellipse commandbutton:
The Edit Database Connections windows is then displayed as shown below:
The path and filename to your Schedule Data is displayed to the right of the “Details:” label.
When the path and filename to your Schedule Data is displayed in the Zümmer SQL Connection Settings window, click on “SQL Connect” commandbutton. A correct connection will display the following SQL Connect Message as shown below:
Finally verify the connection by clicking on the Schedule Analysis & Comparison commandbutton to display the Projects in your Schedule Data.
Your connection is successful. Congratulations, You are ready to use and experience the Zümmer application!
From the Website sample download screen shown below, select the Download option, then select the save option to download the files. The files will be downloaded to your “Downloads” folder or to your configured downloads location.
Click OK to continue with the
download procedures.
Next, navigate to the Downloads folder, then look for the Zummer – 30 Day – SQL.zip file.
Step 2: Unzip the Zummer files and copy files to a local drive
& folder:
Double-click on the Zummer – 30 Day – SQL.zip file to display the Zummer folder as shown below:
Copy the Zummer folder shown below to an appropriate place on your Personal Computer or local drive. It is highly recommended that the Zümmer be placed somewhere in the “Documents” or “My Documents” folder.
Open the Zummer folder, then verify that the download has completed successfully. The Zummer folder consists of 16 files and 4 subfolder as shown below:
Next, open the Data folder, then verify that the folder consists of 25 files as shown below:
Next, return to the Zummer folder
to create a “shortcut” to zummer.exe.
Right-click on the zummer.exe file, the select “Create Shortcut”. A shortcut file will be created as shown below:
Next, Drag/Drop the shortcut to
your desktop. You are now ready to run Zümmer from your desktop for the first
time.
The shortcut file on your desktop should appear as shown below:
Step 3: Running Zümmer for the first time
Double-click on the Zümmer
Shortcut, to run Zümmer for the first time.
Note: If you have Windows
Defender, Norton Download Insight, or some other protection software, a warning
message may appear since these Programs do not have conclusive information
regarding zummer.exe. Whatever software is present, select the “Run Anyway”
option.
The Zümmer application will open as shown below:
Next, from the Main Menu, select “Help” -> “About Zümmer” to display the About Zümmer window displayed below:
The “About
Zümmer” window shown above, contains some very important information about your
application.
Circled in Blue is the date of your license expiration date. If you have purchased a full license, the expiration date will be some time in 2044 or even later. If your full license expiration date arrives and you are still using Zümmer, first congratulate yourself, and then contact FoxQuest Systems, Inc. for instructions for extending your license.
Circled in Red is the current Release date of the
version you are currently using. If some time has elapsed between the current
date and the Release date, follow the instructions below to upgrade your Zümmer
application.
Circled in Orange is the name of the Registered
Owner of the Zümmer. FoxQuest Systems Inc., reminds you that this is a
copyright protected application and therefore insists that you refrain from
making unauthorized copies of this application.
The System Info… commandbox provides valuable
information about your computer’s configuration.
Click on OK to
proceed to Step 4.
Step 4: Connecting your Schedule Data to the Zümmer Application
with MS-SQL.
From the Main Menu, Select “Settings”->”SQL Connection”, then click on the “MS SQL” tab.
In the “SQL Driver” textbox, enter the name of SQL Driver used for this connection. “SQL Server” is the default driver for an MS-SQL and probably require no revisions.
In the “Server” textbox, enter the name of the server where the data is located. This can also be an IP address in the form “100.100.100.100”.
In the “Database” textbox, enter the name of P6 Database containing your Schedule Data.
Enter the “login ID” and “Password” for this connection. This entry is probably not the same as your username and password to access P6. Contact your Database Administrator for this information.
Enter the Work Station ID. The default is 1 and probably requires no revision.
If you’re not sure of the location of the MS-SQL Server or Database names containing your Schedule Data, then open the P6 Application. In the Login to P6 screen as shown below, click on the Database ellipse commandbutton:
The Edit Database Connections windows is then displayed as shown below:
The Server name and Database name are
displayed on the right of the “Details:” text. The Server name is displayed to
the left of the “:”; the Database name is displayed to the right of the “:”.
When the MS-SQL connection parameters to your Schedule Data is entered in the Zümmer SQL Connection Settings window, click on the “SQL Connect” commandbutton. A correct connection will display the following SQL Connect Message as shown below:
Finally verify the connection by clicking on the Schedule Analysis & Comparison commandbutton to display the Projects in your Schedule Data.
Your connection is successful. Congratulations, You are ready to use and experience the Zümmer application!
Click OK to continue with the
download procedures.
Next, navigate to the Downloads
folder, then look for the Zummer – 30 Day – Oracle.zip file.
Step 2: Unzip the Zummer files and copy files to a local drive
& folder:
Double-click on the Zummer – 30
Day – Oracle.zip file to display the Zummer folder as shown below:
Copy the Zummer folder shown below
to an appropriate place on your Personal Computer or local drive. It is highly
recommended that the Zümmer be placed somewhere in the “Documents” or “My
Documents” folder.
Open the Zummer folder, then
verify that the download has completed successfully. The Zummer folder consists
of 16 files and 4 subfolder as shown below:
Next, open the Data folder, then
verify that the folder consists of 25 files as shown below:
Next, return to the Zummer folder
to create a “shortcut” to zummer.exe.
Right-click on the zummer.exe
file, the select “Create Shortcut”. A shortcut file will be created as shown
below:
Next, Drag/Drop the shortcut to
your desktop. You are now ready to run Zümmer from your desktop for the first
time.
The shortcut file on your desktop
should appear as shown below:
Step 3: Running Zümmer for the first time
Double-click on the Zümmer
Shortcut, to run Zümmer for the first time.
Note: If you have Windows
Defender, Norton Download Insight, or some other protection software, a warning
message may appear since these Programs do not have conclusive information regarding
zummer.exe. Whatever software is present, select the “Run Anyway” option.
The Zümmer application will open
as shown below:
Next, from the Main Menu, select “Help”
-> “About Zümmer” to display the About Zümmer window displayed below:
The “About Zümmer”
window shown above, contains some very important information about your
application.
Circled in Blue is the date of your license expiration date. If you have purchased a full license, the expiration date will be some time in 2044 or even later. If your full license expiration date arrives and you are still using Zümmer, first congratulate yourself, and then contact FoxQuest Systems, Inc. for instructions for extending your license.
Circled in Red is the current Release date of the version you are currently using. If some time has elapsed between the current date and the Release date, follow the instructions below to upgrade your Zümmer application.
Circled in Orange is the name of the Registered Owner of the Zümmer. FoxQuest Systems Inc., reminds you that this is a copyright protected application and therefore insists that you refrain from making unauthorized copies of this application.
The System Info… commandbox provides valuable information about your computer’s configuration.
Click on OK to
proceed to Step 4.
Step 4: Connecting your Schedule Data to the Zümmer Application
with ORACLE.
From the Main Menu, Select
“Settings”->”SQL Connection”, then click on the “Oracle” tab.
In the “SQL Driver” textbox, enter the name of the Oracle SQL Driver used for this connection. “{Oracle in XE}” is the default driver for an Oracle Express configuration and probably require no revisions if the Oracle Express installation was initially performed.
In the “Server” textbox, enter the name of the server where the data is located. The Server name for an Oracle Express installation is “XE”.
Enter the “login ID” and “Password” for this connection that was entered during the Oracle Express Edition installation procedure as shown below. This entry is probably not the same as your username and password to access P6. Contact your Database Administrator for this information. The “Login ID” for an Oracle Express installation is typically “System”.
If you’re
not sure of the name of the ORACLE Server containing your Schedule Data, then
open the P6 Application. In the Login to P6 screen as shown below, click on the
Database ellipse commandbutton:
The Edit Database Connections windows
is then displayed as shown below:
Highlight the Database name containing
the Schedule Data, then the Server name is displayed on the right of the
“Details:” text.
When the Oracle
connection parameters to your Schedule Data is entered in the Zümmer SQL
Connection Settings window, click on the “SQL Connect” commandbutton. A correct
connection will display the following SQL Connect Message as shown below:
Finally verify the connection by
clicking on the Schedule Analysis & Comparison commandbutton to display the
Projects in your Schedule Data.
Your connection is successful. Congratulations, You are ready to use and experience the Zümmer application!
Stop the Proliferation of Global Calendars – a Step-by-Step Guide
Many construction project
specifications state that Global Calendars and Global Activity Codes (Global
Activity Codes will be discussed in a separate article) are not to be included
in the Project Schedule. The reason is that the Owner or Agency wants to control
the number of Global Calendars in their P6 Schedule Network.
Imagine a large agency such as a State Department of Transportation that receives Project schedules from scores of Contractors. If the Global Calendars are not properly managed, the Department can easily wind up with literally hundreds of Global Calendars of which many may not be easily attributable to a source Project or Contractor. Also, imported Global Calendars probably do not have a typical convention structure or time configuration which may inadvertently be used as the source of another Project Calendar. Additionally, existing Global Calendars could be overwritten if Global Calendars are imported with the same Calendar name.
In general, Global Calendars are
intended to be used only for creating Project or Resource Calendars. Therefore,
Global Calendars should never be transferred from one party to another.
For those submitting Project
Schedules to other parties, the submitter should make sure that Global
Calendars are not included in the export file (typically the .XER file). Submitting
Global Calendars to other parties not only populates other P6 Users with
superfluous Global Calendars but is bad form and should be avoided.
For those who receive Project Schedule from other parties, the recipient should make sure that the import file (typically the .XER file) does not contain Global Calendar. Otherwise, before long, the recipient’s Global Calendar list will contain scores of unrecognized, duplicate and unassigned Global Calendars.
At this point, you may consider attempting to purge and delete unused Global Calendars. However, this task can be more difficult than what may appear at first.
The following step-by-step procedure provides a guideline for cleaning up the Global Calendars List.
1. Create a Global Calendar naming convention that clearly distinguishes your Global Calendars from all other Global Calendars.
In the illustration below, the 8 highlighted Global Calendars names are preceded by a “*” then coded by “GC” prefix and a unique 2 digit number.
The “*” prefix helps to make sure
that when sorting by Calendar Name, the Global Calendars to keep are sorted to
the top of the grouping. The “GC” prefix identifies the Calendar as a Global
Calendar.
Using this type of convention allows P6 Users to easily spot authentic Global Calendar usage within a P6 Project and to identify those Global Calendars that are candidates for deletion. In addition, clearly identified Global Calendars facilitates stepping through the remaining checks & procedures.
2. Create a Global Calendar naming convention that clearly distinguishes other Global Calendars, from Project and Resource Calendars. These Global Calendars are candidates for deletion.
In the illustration below, note that the other listed Global Calendar names are preceded by a “GC” then coded with a unique 2 digit number and continue with a Calendar Name.
3. Attempt to remove all Global Calendars that are candidates for deletion.
Starting with the first Global
Calendar candidate for deletion, click on the Delete button shown above.
Case 1: Confirmation with “Are you sure…” window.
If the confirmation window
appears above and you are sure the Global Calendar can be deleted, the select “Yes”
and proceed to the next Global Calendar candidate for deletion.
Case 2: Error Message appears – Calendar [Calendar Name] cannot be deleted because it is used by activities in other projects.
If the error message window above
appears above, then click OK. Proceed through the next steps to be able to delete
the selected Global Calendar.
Click on the Used By… command button to display the Projects and/or Resources that are using the selected Global Calendar.
For each listed Project ID, open
the Project ID, then filter the Project to display all activities.
If the Project ID is not listed
in the EPS nodes, then the Project ID is embedded as Baseline in one of the
Projects residing at the EPS Level. This may be a time consuming effort is the
EPS Level Project ID is not immediately known. Once found, restore the Project
ID, then follow the Steps above to remove Global Calendars embedded in a
Baseline Project.
Next, Group and Sort the activity
list by Calendar with the Indent Checkbox selected as shown below.
Next, collapse the list so that all the activities are not shown as shown below:
Collapse the activity list so that only the Groups appear. In the illustration below, the activities are collapsed. Note that Project Activity ST03 – 6 Day Standard Workweek, is indented under “*GC-06 – 6 Day Standard – no Holidays”.
If a Calendar Level 2 exists,
then the Project contains Project Calendars that are inheriting from Global
Calendars. Follow Step 5 to change the Inherited Global Calendar setting to
<none>.
Continue assigning re-activities
from a Global Calendar to a Project Calendar. If a Project Calendar does not
exist for the activity, then create a new Project Calendar from a Global
Calendar (making sure that inheritance is set to <none>. Complete this
process until all activities are assigned to a Project Calendar.
Next Group by Resource, then
follow Step 7 to assign Resource Calendar to the Resources used in the Project.
Complete this process until all activities are assigned to Resources that are
assigned to a Resource Calendar.
Finally, close the Project then
delete the unwanted Global Calendar. Continue this process until all unwanted
Global Calendar candidates are deleted. The remaining Global Calendars are
valid and should remaining in the Project Network.
4. Unassign all remaining valid Global Calendars.
Next, for each valid Global
Calendar attempt to the delete the specific Calendar. Since the Default Global
Calendar cannot be deleted, temporarily assign another Global Calendar as the
Default. If the confirmation textbox appears to delete the Calendar, select No,
then continue to the next Global Calendar.
If P6 cannot delete the selected
Global Calendar, then follow the instructions found in Step 3, Case 2 above.
Continue this process until all
valid Global Calendars are not assigned to P6 Projects.
The next steps below ensure that exported Project files do not contain any Global Calendars. Even though Projects do not contain activities or resources assigned to Global Calendars, you can still wind up with Global Calendars contained in the export Project file.
5. Ensure that no Project Calendars are inheriting from Global Calendars.
When a Project Calendar is created from a Global Calendar,
the Project Calendar automatically inherits its properties from the selected
Global Calendar. In the sample below, the Project Calendar “PC-01 – 7 Day WrkWk
– No Holidays” is inheriting from the Global Calendar “*GC-01 – 7 Day WrkWk –
No Holidays ”.
Left this way, the inherited Global Calendar is
automatically brought in when an .XER file is created.
For each Project Calendar ensure that the Project Calendars are not inheriting from a Global Calendar by selecting the Modify… command button as shown below.
Next scroll through the Global Calendar list, then select <none> from the pull-down menu as shown below.
To prevent a Global Calendar from making its way into the .XER as a result of Inheritance, set all Project Calendar’s inheritance to “<none>”. In the illustration above, the pull-down menu is expanded to display the “<none>” option from the list of Global Calendars.
6. Ensure that Projects do not Default to a Global Calendar.
Every Project has an assigned Default Calendar. The setting for the Default Calendar for a Project can be seen in the Project’s Default Page in the Project’s Detail window as shown below.
When a new Project is created from scratch, P6’s designated
Default Project Calendar is automatically assigned as the Default Calendar for
the Project. When a Project has a Global Calendar as the Default Project
Calendar, then that Global Calendar will be saved in the exported .XER file.
To prevent a Global Calendar from making its way into the .XER as a result of Default Calendar settings, first, open the Project, then select a Project Calendar as the Default Calendar.
7. Ensure that Resources assigned to activities do not have a Calendar Profile referencing to a Global Calendar.
All Resources are assigned a Calendar which can be viewed in the Details ->Profile selection window. When a new Resource is created from scratch, P6’s designated Default Project Global Calendar is automatically assigned as the Default Calendar for the Resource. In the illustration below, the Carpenter resource Calendar Profile is assigned to a Global Calendar.
Resources can either be assigned
to a Personal Calendar or be assigned to a previously created Shared Resource
Calendar.
To prevent a Global Calendar from making its way into the .XER file, all Resources that are assigned to the Project’s activities must be assigned to either a Shared Resource Calendar or a Personal Calendar. Furthermore, whether a Shared Resource or Personal Calendar is used, the assigned Calendar must not be inheriting from a Global Calendar (See Step 5 above).
8. Final QA/QC .XER visual inspection.
Checking an .XER for Global Calendars is easy. Simply open the file using a text editor such as Notepad then scroll down to the Calendar Table (%T) section as shown below:
Below that line, now look for a Record line starting with (%R). Reading to the right, the 7th field, which displays the Record value for field name (%F) “clndr_type” is displayed. The three possible Record values for the Field “clndr_type” (Calendar Type) is:
CA_Base:
Identifying a Global Calendar;
CA_Project:
Identifying a Project Calendar;
CA_Rsrc:
Identifying a Resource Calendar.
If “CA_Base” exists as a Calendar Type, then a Global
Calendar exist for the Project contained in the .XER File.
If you submit schedules in .XER
format and “CA_Base” is contained in the .XER file, then go back and follow the
steps above to remove any reference to a Global Calendar.
If you receive schedules in .XER format and “CA_Base” is contained in the .XER file, then return the .XER file to the submitting party for correction.
Keeping a “Lean & Mean” Global Calendar list helps stop the proliferation of redundant and superfluous Global Calendars.
The Precedence Diagram Method (PDM) of defining relationships between activities is a powerful tool. Often, however, Schedulers, sometimes unknowingly, misuse the options available when defining relationships between activities.
In the illustration below, Activity “E” is assigned to “B” as a predecessor with relationship Finish-to-Start (FS) and is assigned to “F” with relationship Start-to-Start (SS).
Since “F” has a predecessor and a successor activity, it does not violate the “No Open Ends” rule. In fact, running the P6 Global filters, “Activities without Predecessors” and “Activities without Successors” will display no results.
However, since “E” is related to its only successor, “F” using SS, “E” does not effectively contribute to the CPM network. In fact, when “E’s” status is updated to “In Progress”, it essentially behaves like an “open ended” activity yet still complies with the “No Open Ends” rule.
Unfortunately, in P6, there is no Filter that can be constructed to check for “no finish side successors”. However, Zümmer checks this anomaly with Report #14 – “Activities With No Finish Side Successor”.
The converse to this issue is “Activities with No Start Side Predecessors”
Improve your Expense Profile presentations through Zümmer’s Excel output feature
When the “Expense Profile With Actuals” Curve is selected for previewing or printing, in addition to the printed/previewable report, Zümmer generates an Excel spreadsheet supplemental file for the curve produced in the report.
The spreadsheet output file is
stored in the Zummer/Output folder. In the illustration below, the Project MH-BL1-UP33
was selected for printing with the file listed. Note the file structure prefix
consists of “EXP” then the next filename segment consists of the Project ID, “MH-BL1-UP33”.
The final filename segment is a 5-digit computer system generate suffix.
Zümmer automatically saves the Expense Profile Data to an Excel File in the Output folder
The “EXP” file in the “Chart1” Tab
contains the “Expense Profile With Actuals” Curves shown as below:
Chart1 display
Since the file above is generated by a spreadsheet, the visual content
can be customized by the user and/or Cut/Copy & Pasted into another
document.
In the “EXP” file above, shown below is a partial section of the ChartData tab and the raw data used to plot the curve shown above: (Rows 6 thru 241 and 247 thru 1076 are hidden for instructional purposes).
ChartData display
Column A contains
the series of dates from the earliest date in the selected Project listing
daily down to the latest date in the selected Project.
Columns B, C and D
contain the cumulative Early, Late and Average Expense Series respectively for
the Expense Profile curve on the graph displayed in the Chart1 tab.
Column E contains
the cumulative Actual Expense Series for the Expense Profile curve on the graph
displayed in the Chart1 tab.
Column F contains
the Total Budgeted Expense amount used to generate the vertical Data Date line
in the graph.
Columns G, H, I and J contain the daily total Early, Late, Average and Actual Expense Series respectively used to calculate the cumulative values shown in Columns B, C, D and E respectively.
The PDM (Precedence Diagram Method) method of defining relationships between activities is a powerful tool. Often, however, Schedulers, sometimes unknowingly, misuse the options available when defining relationships between activities. In the illustration below, under Method 1, Activity “A” is related to “B” using Finish-To-Start (FS) and “B” is related to “C” using Start-To-Start (SS) with Lag = 0.
This may appear as a reasonable approach as often, the Activity Name description(s) may provide a false justification for this relationship. Unfortunately, the Forward and Backward pass doesn’t care about your Activity Name description. Therefore, trying to justify the use of Method 1 by using a “real world” situation fails as an argument to promote its use.
The Forward and Backward Pass doesn’t care about your Activity Name description.
By observation, since “B” has a
shorter duration than “C”, “B” should have a higher Total Float (TF) value than
“C”. However, when calculated, the TF for “B” = 0. Under Method 1, the SS/Lag =
0 relationship between “B” and “C” is causing the critical path to flow through
the only the Start of “B” resulting in an incorrect TF value for “B”.
By representing “B” as a critical activity, the result could lead to a possible misallocation of resources. Furthermore, if the correct TF value “B” is later discovered, then this could cause a loss in trust in the schedule.
The solution is to follow Method
2, i.e. “A” is related to “B” using FS and “A” is related to “C” using FS. Not
only is this trap avoided but relationships between activities are more clearly
defined.
Zümmer checks this anomaly with Report #37 – “Tasks With Start-To-Start Relationships And No Lag” reports all instances. In the illustration below, each Start-To-Start relationship with no lag is clearly and individually paired. In addition, the Activity Status of the predecessor and successor is listed along with each Original Duration, Total Float, type of Relationship and lag value between the two activities.
The PDM (Precedence Diagram Method) method of defining relationships between activities is a powerful tool. Often, however, Schedulers, sometimes unknowingly, misuse the options available when defining relationships between activities. In the illustration below, under Method 1, Activity “B” is related to “C” using Finish-To-Finish (FF) with Lag = 0.
This may appear as a reasonable approach as often, the Activity Name description(s) may provide a false justification for this relationship. Unfortunately, the Forward and Backward pass doesn’t care about your Activity Name description. Therefore, trying to justify the use of Method 1 by using a “real world” situation fails as an argument to promote its use.
The Forward and Backward Pass doesn’t care about your Activity Name description.
In Figure 1 above, by observation, since “C” has a shorter duration than “B”, the Early Start (ES) for “C” is misrepresented since “C” can start at the completion of “A”. Furthermore, the Total Float (TF) is equally misrepresented since the Early Finish (EF) is the same as “B”.
If there is no lag(say this to yourself a few times) between “B” and “C”, then the finish of both “B” and “C” are equally responsible for starting “D”. Neither “B” or “C” have priority over controlling the start date of activity “D” with respect to logic. With respect to Duration however, activity “B” alone controls the start date of activity “D”. Therefore, the correct approach is to relate “B” FS to “D”.
In Method 1 above, activity “C” is behaving as if it was constrained using the “As Late as Possible” option. By misrepresenting the ES of “C”, the result could lead to an inadvertent impact to the Project Completion date by starting “C” too late. This could cause a loss of trust in the schedule. The solution is to follow Method 2, i.e. “B” is related to “D” using FS. Not only is this trap avoided but relationships between activities are more clearly defined.
After all this, if you’re still not convinced and still feel the need to use the FF 0, then consider re-assigning the scope of work between Activities “B” and “C”. Consider separating the scope of the tasks so that the finish portion of Activity “C” is now included as part of Activity “B” and the start portion of Activity “C” starts at the completion of Activity “A”. Normalizing CPM Network logic to the basic Finish-to-Start relationships avoids confusion and possible erroneous Start/Finish dates and Total Float values.
Zümmer checks this anomaly with Report #35 – “Tasks With Finish-to-Finish Relationships And No Lag” reports all instances. In the illustration below, each Finish-To-Finish relationship with no lag is clearly and individually paired. In addition, the Activity Status of the predecessor and successor is listed along with each Original Duration, Total Float, type of Relationship and lag value between the two activities. Relationships with lower Total Float values have a higher resolution priority over relationships with a higher Total Float value.
Generally, in a CPM Network, lag
values should be smaller than the duration values of either its predecessor or
successor activity. In other words, lags
should not cause gaps in the flow of activities through the CPM network.
Unfortunately, this is a very easy mistake to make and worse, far more
difficult to detect.
There are 4 possible cases where a
non-overlapping lag may occur:
Case 1:
The Negative Lag is greater than the sum of the Predecessor’s Original Duration and the Successor’s Original Duration (Figure 1).
Figure 1
Suppose the Original Duration
(OD) for Activities “A” and “B” are set to 5 Days each and the relationship is
set to Finish-To-Start (FS) with a lag of -9 Days. This is overlapping since
the sum of the durations of “A” and “B” is 10 Days.
Now Suppose, the OD for
activities “A” and “B” are each reduced to 2 Days. Unless the relationship
between “A” and “B” is changed, a non-overlapping condition will occur (Figure
1) since the absolute value FS lag of -9 Days is greater than the OD of “A”
plus the OD of “B” (now at 4 Days). The gap between activity “A” and “B” is now
5 Days caused by the non-overlapping lag.
In P6, no Filter that can be
constructed to check for this type of Non-Overlapping Lag.
Zümmer Analysis Report #31 – “Negative
Lag Greater Than Sum of Both Original Durations” identifies the Non Overlapping
lag condition “Neg Lag > Pred OD + Succ OD”. In the Figure 2 below, each non-overlapping
relationship is clearly and individually paired. In addition, the Activity Status
of the predecessor and successor is listed along with each Original Duration,
the type of Relationship and lag value between the two activities.
Figure 2
Case 2:
A Positive Finish-To-Start lag is used between 2 Activities (Figure 3)
Figure 3
Suppose the Original Duration
(OD) for Activities “A” and “B” are set to 7 Days each and the relationship is
set to Finish-To-Start (FS) with a lag of -2 Days. This is overlapping since
the sum of the durations of “A” and “B” is 14 Days.
Now suppose the lag value is then
changed to +7 Days. The gap between activity “A” and “B” is now 7 Days caused
by the non-overlapping lag.
In P6, no Filter that can be
constructed to check for this type of Non-Overlapping Lag.
Zümmer Analysis Report #32 –
“Activities with Finish-To-Start Relationship & Positive Lag” identifies
the Non Overlapping lag condition “FS with Positive Lag”. In Figure 4 below,
each non-overlapping relationship is clearly and individually paired. In
addition, the Activity Status of the predecessor and successor is listed along
with each Original Duration, the type of Relationship and lag value between the
two activities.
Figure 4
Case 3:
A Start-To-Start Lag is greater than the Predecessor’s Original Duration (Figure 5).
Figure 5
Suppose the Original Duration
(OD) for Activities “A” and “B” are set to 15 Days and the relationship is set
to Start-To-Start (SS) with a lag of 8 Days. This is acceptable since “A” and
“B” overlap.
Suppose now, the OD for “A” is reduced to 5
Days. Unless the relationship between “A” and “B” is changed, a non-overlapping
condition will occur since the SS lag of 8 Days is greater than the OD of “A”
(now at 5 Days). The gap between activity “A” and “B” is now 3 Days caused by
the non-overlapping lag.
In P6, no Filter that can be
constructed to check for this type of Non-Overlapping Lag.
Zümmer Analysis Report #33 – “Start-To-Start
Relationships & Lag Greater Than Predecessor’s Original Duration” identifies
the Non Overlapping lag condition “SS Lag > Predecessor OD”. In Figure 6
below, each non-overlapping relationship is clearly and individually paired. In
addition, the Activity Status of the predecessor and successor is listed along
with each Original Duration, the type of Relationship and lag value between the
two activities.
Figure 6
Case 4:
A Finish-To-Finish Lag is greater than the Successor’s Original Duration (Figure 7)
Figure 7
Suppose the Original Duration
(OD) for Activities “A” and “B” are set to 15 Days and the relationship is set
to Finish-To-Finish (FF) with a lag of 8 Days. This is acceptable since “A” and
“B” overlap.
Suppose now, the OD for “B” is
reduced to 5 Days. Unless the relationship between “A” and “B” is changed, a
non-overlapping condition will occur since the FF lag of 8 Days is greater than
the OD of “B” (now at 5 Days). The gap between activity “A” and “B” is now 3
Days caused by the non-overlapping lag.
In P6, no Filter that can be
constructed to check for this type of Non-Overlapping Lag.
Zümmer Analysis Report #34 – “Finish-To-Finish
Relationships & Lag Greater Than Successor’s Original Duration” identifies
the Non Overlapping lag condition “FF Lag > Successor OD”. In Figure 8
below, each non-overlapping relationship is clearly and individually paired. In
addition, the Activity Status of the predecessor and successor is listed along
with each Original Duration, the type of Relationship and lag value between the
two activities.
Finding and eliminating “Partial Days” is an important part of a Scheduler’s QA/QC routine.
A deeper look into the Partial Day Effect
Since most CPM scheduling performed in the construction industry measures time to the nearest day, calculating overall project durations by summing tasks containing units of measure less than a whole day should be strictly avoided. Keep in mind that schedulers are not timekeepers and they should resist the temptation to calculate the overall project time using durations more precise that a whole day. Furthermore, since schedulers typically record actual dates to the nearest day, it doesn’t make sense to calculate future dates to anything more precise than whole days.
The “Partial Day” (or Fractional Day) Effect is defined as:
Tasks
that do not start at the beginning of the day.
Tasks
that do not finish at the end of the day.
Tasks
that have non-integer day value for their Original or Remaining Duration.
Tasks
that have non-integer day value for their Total Float or Free Float.
Lags
that have non-integer day values.
The Partial Day Effect manifests itself when upon browsing
the calculated dates in a CPM schedule; you or someone else notice activities
are starting on the same day as its predecessor’s finish date. This can cause
confusion especially with experienced CPM users who are accustomed to seeing
predecessor finish dates completing on the day before (or just before) the
successor’s start date.
In Figure 1 below, the User Preferences Time option is set to “Do not show time”. Note that the Early Finish date for Activity “A1040 – Activity C1” is 09-Jun-16 which is the same date for the Early Start of its successor, Activity “A1050 – Activity F”. In addition, Activity “A1060 – Activity C2” has the same Original and Remaining Duration as Activity C1 yet is not on the Critical Path. Furthermore, the layout is grouped by Total Float; however there are 2 separate groups for the same Total Float value of 0. How can this be?
Figure 1
In Figure 2 below, the User Preferences Time option is now set to “24 hour (13:30)” Under these settings, the Partial Day Effect is revealed by observing the Datetime format of Start and Finish dates.
Figure 2
The Partial Day Effect in this
situation was caused due to how each activity was statused.
A1020 was updated by assigning a Duration
Percent Complete of 35%.
A1060 was updated by assigning a Remaining
Duration (RD) of 16 days.
P6 calculates the RD for A1020 as 25*(1-.35) or 16.25 Days.
The .25 remainder (or 2 hours) is reflected in the Finish date as 09-Jun-16
10:00 (10AM). Meanwhile, A1060 displays the same RD as A1020; however, the Finish
date is reflected as 08-Jun-16 at 17:00 (5PM). Furthermore, A1060 is not on the
Critical Path even though the Total Float (TF) value is displayed as 0 (the
Duration Format Decimal value for the Day Unit of Time is set to 0).
The Partial Day Effect is also caused by how P6 stores dates and durations. In the typical P6 Duration fields such as Original Duration and Remaining Duration the default entry mode is to display durations in days. However, the actual duration value stored in the P6 database is in Hours. In the Figure 3 below, the activities in Figures 1 and 2 are shown with their native field names and values for their Original Duration (Target_drtn_hr_cnt); Remaining Duration (Remain_drtn_hr_cnt); Total Float (Total_float_hr_cnt); and Free Float (Free_flt_drtn_hr_cnt).
Figure 3
The conversion occurs as a result of the Calendar setting value entered under the Hours/Day textbox in the Hours per Time Period window as shown in Figure 4 below.
Figure 4
Since the Work-Hours per day entry is “8” in Hours/Day, P6
automatically performs the “on-the-fly” mathematical conversion as values are
entered. Therefore, for Activity 1020, the Original Duration entry of 40 is
natively stored as 40*8 or 320 in the Task table’s “Target_drtn_hr_cnt” field.
Similarly, the Remaining Duration, calculated as 35% Complete, is stored as
25*(1-.35)*8 or 130 in the Task table’s “Remain_drtn_hr_cnt” field.
Storing data in hours, instead of days often causes the
Partial Day Effect when “mixed” calendars are used.
Mixing Calendars
in a CPM Network
Typically, schedulers define their calendars to model whole days consistent with typical construction work environments in their area. For example, a typical calendar structure consists of a work-day that starts at 8:00AM, breaks for lunch from 12 Noon to 1:00PM and ends at 5:00PM for a total work-day of 8 Hours/Day. Based on these parameters, a typical P6 5-Day Work-Week Global or Project Calendar would have the following configuration in Figure 5 below.
Figure 5
6-Day Work-Week and 7-Day Work-Week would follow the same configuration but with the added additional Nonwork days accordingly.
Often, this convention above is
violated when for example; a 24 Hour Calendar is used for concrete curing
activities or some other type of “round-the-clock” activity. For this reason, I
strongly discourage the use of 24-Hour calendar under any circumstance. For
these types of activities, a 7-Day Work Week Calendar based on an 8 Hour per
day and no holidays is the best option and works just as well. Many articles “for
instructional purposes” use a 24-Hour Calendar that is assigned to a concrete
curing activity or other “round-the-clock” activity. This option should be
avoided in real-time construction activities since it is problematic and is
often the root cause of Partial Days.
In the Figure 6 below, two “7-Day
Cure” activities are used between a concrete pour activity and a concrete form
activity. Activity ST8420 is assigned to a 7-Day Calendar using an 8 Hour per
day format. Activity ST78430 is assigned to a 7-Day Calendar using a 24 Hour per
day format. Activity ST68920 and ST68180 are both assigned to a 5-Day “Field”
Work-Day Calendar using an 8 Hour per day format. The activities below are
grouped by Total Float value. Upon calculating the schedule, both Cure
activities finish on the same day, however, they both calculate a different
Total Float value.
The activity on the 7-Day/8Hr calendar correctly calculates the starting and finish date while the activity on the 7-Day/24Hr calendar starts on the same day as the Pour Footing activity (18-Oct-19). Also, the overall duration is shown as 7 Days but based on the displayed Start and Finish date equates to 8 Days.
In addition, there is an apparent discrepancy in the Free Float values. Since 25-Oct-19 falls on a Friday, the Cure activity on the 7-Day/8Hr Calendar correctly calculates the Free Float as 2 Days since the successor, Activity ST6810 start on Monday, 28-Oct-19. The Free Float on the 7-Day/24Hr Calendar incorrectly calculates the Free Float as 3 Days as shown below in Figure 6.
Figure 6
When the Time option is set to 24 Hours, the following values appear in Figure 7 below.
Figure 7
Note that the 24 Hour time
setting reveals additional information to clear up the confusion. Note that the
start time for Activity ST84730 is 17:00 (5:00PM). Since this activity is on a
24 Hour calendar, it starts immediately after its predecessor’s finish date.
Activity ST78420 and ST87430 both correctly finish at the same time.
When the Duration value option is changed to 2 decimal places, the Original Duration, Remaining Duration, Total Float and Free Float reveal the actual calculated Duration values in Figure 8 below.
Figure 8
Note that the Total Float and
Free Float values for Activity ST78430 are displayed as 2.63. This calculation
is derived from the difference between the Late Finish and Early Finish. Since the Late Finish is 28-Oct-19 at 08:00
and the Early Finish is 25-Oct-19 at 17:00, the difference is 63 Hours/24 Hours
per Day or 2.63 Days (rounded to the nearest hundredth) as a direct result of
using a 7-Day/24Hr Calendar.
Since calculating Project
durations to the nearest whole day is preferred, the use of a 7-Day/24Hr
Calendar is a root cause of the Partial Day Effect and therefore should be
avoided. The Duration values compound when successor activities are later in
the CPM network. This is because Total Float values are calculated based on the
activity’s assigned Calendar.
Generating Partial Day Durations
There are many ways to generate Partial Day durations. Of these include:
Entering a Percent Complete value for an activity assigned with “Duration Percent Complete”. For example, if an activity has an Original Duration of 3 days and a Duration Percent Complete is assigned 50%, then the activity will start at 8:00AM then having 1.5 Days remaining will complete at Noon on the second Day.
Not assigning a whole Day value to a Remaining Duration. For example, if 1.5 Days is assigned as the Remaining Duration, then the Finish Date will complete at Noon.
An activity has a Calendar assignment that is not consistent with a typical hour per day format.
Assigning non-standard Calendars then using lags between activities with mixed format calendars.
However Partial Days are generated, they usually have a
cascading effect through the CPM network that can make resolving this issue a
difficult and painful task. Suppose for example, the first activity of a long
CPM network path completes at 2:00PM. Then its next driving successor activity
will start at 2:00PM on the same day and end at 2:00PM on its last day. This
behavior will continue to cascade throughout the CPM network until there are no
driving successors.
Determining if your CPM network contains
Partial Days is easy! Simply;
Go to the User Settings and select the option to turn on time as shown in Figure 9 below.
Then, set Durations to display values to either 1 or 2 Decimal places shown in Figure 10 above.
Figure 9 Figure 10
Once this is done, you can browse the activities Start and Finish Dates to detect activities not starting at 8:00AM or not ending at 17:00PM.
Zümmer Analysis Reports
Zümmer contains the following reports to help resolve Partial Days (See also Figure 11 below):
Analysis Report #26 – “Activities with Partial Day Durations”
Analysis Report #27 – “Relationships with Partial Lag”
Analysis Report – “Not Completed Tasks with Partial Original or Remaining Durations”
Analysis Report – “In-Progress Tasks with Partial Remaining Duration”
Figure 11
Zümmer Analysis Report #26 – “Activities with Partial Day Durations” (Figure 12 below) is a comprehensive report listing any activity containing a Partial duration in the Original Duration, Remaining Duration, Free Float or Total Float values. The report sorts by Activity ID and lists the Activity Status, Activity ID, Activity Name, Partial Original Duration, Partial Remaining Duration, Partial Total Float and Partial Free Float values.
Figure 12
Zümmer Analysis Report #27 – “Relationships with Partial
Lag” (Figure 13 below) is a comprehensive report listing any Partial Lags.
Partial lags have a most insidious impact towards generating Partial Days. Changing the predecessor or successor activity to a standard Calendar does not necessarily guarantee that the lag will change in kind. Even in a moderately sized CPM network, finding these offending lags are very difficult using P6 alone.
Figure 13
Zümmer Analysis Report – “Not Completed Tasks with Partial Original or Remaining Durations” (Figure 14 below) is a subset of Analysis Report #26 displayed above.
Figure 14
Not Completed Tasks with partial
Original or Remaining durations have a higher priority with regards to
resolving Partial Days because they tend to produce a cascading effect to
successor activities starting or ending in the middle of the day. Once these
activities are normalized, i.e. adjusted to containing whole day values,
successor activities in general will ‘fall in line’ starting at the beginning
of the day and ending at the end of the day.
Zümmer Analysis Report – “In
Progress Activities with Partial Durations” (Figure 15 below) is a subset of
Analysis Report #26 displayed above.
Figure 15
In-progress tasks with partial Remaining Durations also have a higher priority with regards to resolving because they tend to produce a cascading effect to successor activities starting or ending in the middle of the day. Once these activities are normalized, i.e. adjusted to containing whole day values, successor activities in general will ‘fall in line’ starting at the beginning of the day and ending at the end of the day.
Conclusion
A few tips to avoid Partial Days in the first place:
When performing a schedule update, turn on time to ensure calculated results start at 8:00AM and end at 5:00PM (or at your typical Start and Finish times).
When performing a schedule update, set the Duration decimal to 1 (or 2) to view duration values in tenths.
When declaring the Data Date, always set time on and set the Data Date time to include your typical Start time.
When assigning start constraints, turn on time and set the constraint to include your typical Start time.
When assigning finish constraints, turn on time and set the constraint to include your typical Finish time.
When setting “Must Finish By” constraints for the Project, turn on time and set the date to include your typical Finish time.
Use consistent “Hours per Day” configured Calendars especially when a lag value is assigned.
Update in-progress activities based on Remaining Duration in whole days or;
Update in-progress activities based on a completion date to include your typical Finish time.
For consistency, when actualizing start dates, save Actual Start dates to include your typical Start time.
For consistency, when actualizing finish dates, save Actual Finish dates to include your typical Finish time.
If someone asks you to do an analysis or ‘What-if’ the work is accelerated from an 8 Hour day to a 10 Hour day, suggest doing the analysis on a 6 Day Work-Week instead of a 5 Day Work-Week. The difference in calculations is between a 50 Hour week and a 48 Hour week which for scheduling purposed should be acceptable.
Keeping a neat, tidy and “wholesome” CPM network with no Partial Days is an important part of a Scheduler’s QA/QC routine.