A family of Microsoft relational database management systems designed for ease of use.
Oliver,
John's formula demonstrates the most efficient way to count FS relationships from predecessor lists - i.e. those that are not explicitly defined as one of the other three types. Unfortunately, the metric itself (#4 of the DCMA 14-Point Schedule Assessment) quantifies the number of relationships, not the number of tasks, in both the numerator and the denominator. Although many tasks in a typical project have only one predecessor, some tasks have many predecessors, each of which must be categorized and counted. Parsing the predecessor strings using custom field formulas is impractical in this general case. In addition, the metric's exclusion of many tasks and associated relationships further complicates the calculations.
As a rule, performing and summarizing the entire 14-point assessement - particularly the trigger-value percentage calculations - is not well suited to the restrictive task-table structure in Project. Exporting the data and performing all the calculations in Excel is pretty straightforward as a do-it-yourself solution for those who like the DCMA metrics (not me.) There are also any number of 3rd-party tools that make pretty-colored dashboards based on the DCMA criteria.
To address Metric #4 solely within Project, then I'd suggest the following:
- Use vba to populate two custom number fields: one counting all relationships and the other counting FS relationships. (I've attached a simple code block for Number11 and Number12 below. The code excludes milestones and completed tasks but does not exclude hammocks/LOEs/SVTs, which are typically identified by special flags or naming conventions.) Set these two fields to rollup sums to the summary tasks.
- Add a third custom number field with a formula to compute the ratio between the first two fields. Set the summary tasks on this field to use the formula. You could add a text field to hold a formatted version of this number if the "%" is important to your audience.
- At the end of all this, the ONLY number of any real consequence is the third number field in the Project Summary task.
Sub CountDCMARelationships()
'This code adds up total relationships (Number11) and total FS relationships (Number12)
'for incomplete, non-summary, non-milestone tasks, as defined by DCMA Metric #4
Dim t As Task
Dim d As TaskDependency
Dim CountAll As Integer
Dim CountFS As Integer
For Each t In ActiveProject.Tasks
If Not t Is Nothing Then 'to prevent errors on blank lines
If Not t.Summary Then
CountAll = 0
CountFS = 0
If Not t.Milestone And Not t.Duration = 0 _
And t.ActualFinish = "NA" Then
For Each d In t.TaskDependencies
'Check predecessors only
If d.To = t Then
CountAll = CountAll + 1
If d.Type = pjFinishToStart Then CountFS = CountFS + 1
End If
Next d
End If
t.Number11 = CountAll
t.Number12 = CountFS
End If
End If
Next t
End Sub