Quantcast
Channel: Aaron Parham – aaronparham
Viewing all articles
Browse latest Browse all 8

Custom Outline Codes to Improve Schedule Reporting in Microsoft Project: Milestones

$
0
0

In this article, I will cover a concept using the custom Outline Code fields in Microsoft Project that I like to use that improves the out-of-the-box reporting features. As an example, I will use Milestones and show how to improve the built-in functionality of Microsoft Project to further categorize milestones and create different report views.

This concept can be easily applied to other areas of a project schedule.

Objectives

At the end of this article, you should be able to:

  1. Understand how Microsoft Project defines Milestones
  2. Understand the limitations of built-in milestone reporting in Microsoft Project
  3. Create a custom Outline Code field that adds unique definition to Milestone types
  4. Create a custom filter to sort and extract Milestone types for reporting
  5. Build custom report tables for each Milestone type

What is a Milestone?

According to the PMI Practice Standard for Scheduling, a milestone is a calculated, required component that is defined below:

  • Data Format – Flag (determined by algorithm (Boolean))
  • Behavior – An activity that identifies a significant event
  • Good Practices – The milestone has no resources assigned and no duration. At a minimum, a project start and finish milestone needs to be present in the schedule. Milestone indicator should have a unique shape, such as a diamond.
  • Definition – A significant point or event in the project.

A milestone typically has a zero duration and does not have resources assigned. They are used as benchmarks to measure progress, and may also reflect the start and finish points for various project events.

Milestones in Microsoft Project

In Microsoft Project, a milestone is determined by an algorithm and captured in the Milestone field as either a “Yes” or “No”. Milestones can be set automatically by setting the duration to any task to “0 days”. They can also be manually set by checking the Milestone box in the Advanced settings of a selected task.

TIP: I like to be able to visually differentiate milestones in my schedules by modifying the Text Style. To do this, Click Format > Text Styles; in the Item to Change list, click Milestones, then select the font, size, or color you want for all text in the current view. (I like milestones to be blue and bold.)

Milestone Reporting in Microsoft Project

When it comes to reporting in Microsoft Project, the built-in Milestone report contains 4 elements:

  • Late Milestones – this table depicts the Name and Finish fields and is filtered by Late Milestones
  • Milestones Up Next – this table depicts the Name and Finish fields and is filtered by Milestones Due This Month
  • Completed Milestones – this table depicts the Name and Finish fields and is filtered by Completed Milestones
  • Remaining Task Graph
Built-in Milestone Report in Microsoft Project

Each Milestone filter definition includes “Milestone = Yes” and will depict every milestone, as determined by the milestone algorithm. The report tables can be limited to the number of outputs that can be displayed, and depending on the size of your schedule, the table will truncate many of the results. If you are like me and use milestones in multiple ways and dynamically throughout your schedules, a need quickly arises for further definition and classification of the milestones in the schedule and the ways they are reported.

Outline Codes for Milestone Definition

In Microsoft Project, Outline Codes are custom tags for tasks or resources that share traits. In this case, their shared trait is that they are all Milestones, but we want to differentiate the type of milestone they represent.

There are many different types of milestones that can be defined for projects, and they may vary based on the project or scheduler’s needs. Here are a few examples of milestone categories I use in schedules:

  • Approval milestones – these can be a milestone as part of the development chain of a deliverable that marks the completion of peer or managerial review of the deliverable.
  • Review milestones – in many industry best practices and projects, incremental formal reviews of the program and/or deliverable are planned and tracked as major events in the life cycle.
  • WBS Completion milestones – I like to use milestones to mark the completion of each work package in the project WBS. I use a standard outline level structure in all my schedules (see NDIA Planning and Scheduling Excellence Guide). Level 1 are project phases and completion is marked by a milestone noting that all lower-level work packages have been completed.
  • Consolidation milestones – I use these milestones to mark the completion of multiple complex work packages that require all as a predecessor. This limits the number of predecessors to a dependent task(s) and can be a good way to identify schedule risk.
  • Resource Availability milestones – I usually limit this to materials ordered to support the build and delivery of a deliverable, but can also apply to work resources that will become available at a point in time. When goods are purchased from a vendor, I like to track a milestone with a lead time based on the vendor’s estimated duration of delivery.
  • Contract Award milestones – tracking contracts timelines and procurements can have their own distinct milestones that need to be tracked separate from the technical work products. Having a distinction for contract-specific milestones can be useful when reporting status of contract actions.
  • Programmatic milestones – some milestones may be required and directed by the customer and represent specific events that they want to know.
    • NOTE: Best practices suggest placing programmatic milestones together at the top of your schedule, but I prefer to build everything in its correct place in the WBS and use structured data, outline coding, and dynamic reporting to extract relevant data from the project schedule.

So, let’s build a custom outline code and filter and see how they can be used to enhance the built-in milestone reporting.

Build a Custom Outline Code for Milestones

  1. Open the Custom Fields wizard
    • Right-click on task table and select Custom Fields, or
    • Go to Format > Columns > Custom Fields
  2. In the Type drop-down menu, select Outline Code
  3. Click Rename… and name the custom field
  4. For Custom Attributes, select Lookup…
    • This is where we will define the different types of milestones. For this example, we’ll use:
      • 01 – Contract Award Milestones
      • 02 – Programmatic Milestones
      • 03 – WBS Completion Milestones

Now that you have built a custom outline code for Milestones, the next step is to add the custom field to your schedule table and begin tagging the milestones accordingly. Once all the milestones in the schedule are coded properly, we will build a new milestone filter that will be used in the reports.

Create a Filter Using the Custom Milestone Outline Code

  1. Open a new Filter Definition wizard
    • Go to View > Data > Filter > New Filter
  2. Name the filter
    • TIP: Use an underscore “_” as the first character so custom filters appear at the top of the filter list
  3. Filter Definition as follows:
    1. Field Name – select the Milestone Code field
    2. Test – select equals
    3. Value(s) – type “Select Milestone Code:”?

Now, when you select the _Milestone Code filter, you should be prompted to select one of the pre-defined codes that were defined in the custom field.

Now that we have built the custom field and filter to define milestone types, let’s build a custom report for milestones!

Build a Custom Milestone Report

For this example, I built a simplified milestone schedule to show how this concept could be applied to larger project schedules. In the example, there is a Preliminary and Critical Design, followed by Full Rate Production, each with milestones.

When you create a new table, if you select Milestone as the filter, it will include all the milestones in the schedule.

Using the custom filter we created, you can include tailored milestone reports to be included in larger reports (Example: Contracts report that includes all contract-related tasking, deliverables, milestones, etc.)

To do this, just select the _Milestone Code filter for each report table and select which milestone code you would like to include in the report.

Conclusion

Please let me know if this was useful!


Viewing all articles
Browse latest Browse all 8

Latest Images

Trending Articles





Latest Images