Monday, January 29, 2018

How to display phases and milestones in the Project Center?

The Project Center is still after many years a central point when working with Project Server and Project Online. With the introduction of Business Intelligence tools such as PowerBI, SSRS, Excel Service, our customers have become more and more demanding in visualization capabilities. Especially in the Project Center which proposes a synthetic view of your projects portfolios, directly connected to the project details. For example, we always try to push our customer to stick to the project management best practices, meaning following a set of predefined phases. 
Project Center view
That being said, the project center core almost hasn't changed since Project Server 2002, which limited capabilities of customizations. I'll show you that you can anyway use those limited capabilities to display in the Gantt chart project phases and milestones.

Before starting, I would like to give credits to Erik Van Hurck who wrote an excellent post about this same subject. I'll start from that, give some ideas to go further and include the milestones in the approach.

1-Configure a custom Gantt chart
Oddly, you'll not use enterprise custom fields which are quite the first step of a Project Online configuration. The corner stone of this approach is to use CUSTOM dates. In the PWA Server Settings, go to the "Gantt chart formats" and choose a custom format such as Gantt1 to customize it, eventually rename it. You can specify a visualization for each phase using custom start and finish dates. In my example I have 9 phases (I know, it is too many...) and a key milestone. Note the configuration for the milestone where you configure the beginning and finish of the shape, but not the shape itself. 
Custom Gantt chart customization

I usually also remove the project summary task so you won't have a summary task bar above the phases.



2-Configure the custom Project Center view

You can now create a new view from scratch or by copying an existing one. You'll have to use your Gantt1 custom format.
Custom view configuration using the custom Gantt


3-Configure the custom start and finish dates
The tricky part is that even if you use custom durations in the custom Gantt format, you must not use the custom durations in the projects. The Gantt format custom durations in PWA are actually not linked to the project custom durations, but are the difference between custom finish and custom start dates. Thus in MS Project, just configure your custom start and finishd dates. You need to set up a trigger to copy dates into custom dates. My advice is to use a task custom field with a drop-down list to copy start/finish dates into the custom n start/finish dates. Doing this, you get rid of typos. 

Local custom field configuration
Note that (thanks Erik for the tip) in the formula for the start dates, you have to set a far far away start date if the condition is not fulfilled, with a rollup at minimum. On the contrary for the finish dates, set an oldest date in case the condition is not fulfilled, with a rollup at maximum. Doing this, you're sure that you'll get the earliest start date and the latest finish date.

Note also that since there are local custom fields, you have 2 solutions to make those fields available for users (even if they don't have to update those calcualted field) :
- Add them to the Enterprise Global using the organizer.
- Add them to your WBS associated with your EPT (my choice).

To go further, you should define a WBS with your phases and this "phase" custom field already pre-configured. 

Once done, this is all automatic for the users, as soon as they publish their projects once you did the configuration. They just need to be careful to correctly enter the phase custom field (task level) in the project. The dates should be copied in the custom dates, then the Gantt chart will use them in the Project Center. Note my key milestone shown as a red star.
Custom Project Center view with phases and key milestones

Limitations
You have only 10 custom durations, meaning that you can configure up to 10 phases/milestones. I've tried to simply use a start or finish date for the milestones, so I can configure 2 milestones on a single custom duration, but so far no luck. I think this is because it needs a start and a finish date to calculate the custom duration, even if it is a milestone.
The other limitation is not really a limitation, at least in my use case. Since you're using local custom fields, they are not in the reporting tables so you cannot use them in your PowerBI reports. But as I advice to use a "phase" task custom field in your WBS, this would be the one used in your reporting.

Share this article :

Monday, January 8, 2018

LAUNCHED - OData Improvements to Include Timestamps for Project Entities


Last year, I was excited about a roadmap feature that had been updated on the Office 365 Roadmap. I talked about it here.

Well, here is an even more exciting update as it has been released the 4th of January. I haven't seen any official blogs yet so I had a bit of an investigation to understand what changed.
Overall, Microsoft has kindly provided the modified information to the following tables;


DataSet
Added Field
Comment
Assignment Baseline Timephased
AssignmentBaselineModifiedDate
Date of the modified baseline (date it has been published)
Assignment Timephased
AssignmentModifiedDate
Date the Assignment has been last modified
Engagement Timephased
EngagementModifiedDate
Date the Engagement has been last modified
Engagements
EngagementModifiedDate
Date the Engagement has been last modified
Project Baselines
ProjectBaselineModifiedDate
Publish date of the last modified baselines
Resource Demand Timephased
ResourceDemandModifiedDate
Date of the Resource Demande last modified
Resource Timephased
ResourceModifiedDate
Date of the Resource last modified
Task Baselines
TaskBaselineModifiedDate
Date of the modified baseline (date it has been published)
Task Baselines Timephased
TaskBaselineModifiedDate
Date of the modified baseline (date it has been published)
Task Timephased
TaskModifiedDate
Date of the task last modified
TimesheetLine Actual
TimesheetLineModifiedDate
Date of the timesheet line last modified

That is really great addition. For example, as Guillaume was stating in his comment from the previous blog, we can now track changes in the baselines and validate when a baseline has been defined.
Therefore, we can easily add a bit of smart in the queries to download only if a data has been modified.
Here is a quick example of a Power Bi report using the Baseline Modification Data to highlight tasks baselined after the project has been baselined.

One thing I am not so happy about is that I was expecting to have a trending capability with some historical data stored somewhere. I guess I was too demanding. The new fields are providing with a last modified date at a lower level than the Project level but are not recording the historical values of the fields before they changed. Something that Microsoft is hopefully considering soon. you can vote here: https://microsoftproject.uservoice.com/forums/218133-microsoft-project/suggestions/15300603-implement-versioning-in-project-online.

Tell me what you think about that added information and what usage you may do of it!

Share this article :