I remember the moment very clearly. A couple of years ago, I was knee deep in a requirements definition workshop for a Project Server deployment. We’d just waded through all of the wonderful dashboarding goodness of the Project Center views and I’d dutifully demonstrated a whole slew of custom metrics and indicators that I’d coded up the evening before. It was like a Lucky Charms commercial, with the projected screen resplendent in purple arrows, green lights, and yellow diamonds. I thought things were going pretty well when one of the key stakeholders looks at me and asks “But what about the human narrative? I see all of these metrics, but they don’t give me the project narrative.”
Good point. I saw all of these beautiful metrics and complicated formulas collapse into the virtual hole from whence they had sprung. Ever since then, this is a point that I’ve made in every requirements session, whenever an organization is looking at boiling the project portfolio down to a series of colorful indicators. Not that there’s anything necessarily wrong with indicators and gauges and pretty lights. A lot of consultants spend a lot of time developing those.
But let’s face it, as fellow MVP Alex Burton and I agreed over a couple of beers recently, an ideal status report has a couple of indicators, some trend analysis, and the human narrative. The human narrative has always been and will always be key – although the metrics need to back it up to make a consistent story.
This post describes one technique of capturing that narrative and making it available in the Project Detail Pages (PDP) of Project Server 2010. Note that this technique is applicable to any scenario where a single repository must store data from multiple projects, for instance a centralized approval document library or a centralized list of links to sites on another SharePoint farm – or in an implementation where each project does not in fact have its own site provisioned. As my colleague Victor pointed out today in fact, this technique could even be used to keep a running log of change orders.
Creating the Master Status List
The first step is to create the master status update list. This will be a centralized list of all of the status updates for each of the projects. To create this list, navigate to the main PWA screen and select Site Actions from the top left. Click on the option to View All Site Content.
In the next screen, select the option to create a custom list. Select More Options to choose to remove the list from the Quick Launch bar. I personally prefer to keep the status list off of the Quick Launch bar as otherwise users may try to navigate directly to the list and get confused.
Now we need to customize the list. Once the new list is displayed, click on the List tab in the Ribbon, and select the List Settings button.
Add the columns that map to your organizational requirements for routine status reports. In this case, I will make two multiline text fields: Last Period Status, and Next Period Activities. To use these fields in reports, I’d recommend making them plain text, as the rich text formatting options may sometimes cause problems.
The list should now appear as follows:
Add one more field. This field will capture the unique ID for the project. The unique ID, or ProjUID is a field automatically assigned within Project Server that is used to connect the project level data with all of the other database entities. More importantly for this purpose perhaps, the ProjUID is part of the URL of the Project Detail Pages in the Project Center.
Make the ProjUID field a single line of text.
Modifying the Default Entry Screen
After the list has been configured properly, we now need to modify the default New Item screen. In SharePoint 2010, this is easily accomplished using the InfoPath editor which is triggered by the Customize Form button on the List tab.
The default form is now displayed, including all of the fields configured for this list.
As the Title field must be populated to save the list item, let’s set the Title field to default to a date stamp. To do this, right click on the text box next to Title, and select the Text Box Properties option. In the following example, I use the Concatenate function to combine the term “Status Update” with today’s date.
Click Ok. Now remove the extraneous fields by right clicking on the heading to the left of the form row, and selecting Delete.
At the end, you should be left with only the fields that were added for the status report.
Add a Submit button by selecting the button from the ribbon and clicking on the form. In the example below, I have right-justified the button.
Right click on the button to modify the Button Properties.
Publish the form to the list from the Backstage View.
You may now close InfoPath.
Creating the Project Detail Page
The next step is to create the Project Detail Page within the Project Server Server Settings screen.
Select the New Document option on the Documents Tab.
Name the PDP and select an appropriate format. In this case, I’ll just use the simplest format I can find.
In the resulting page, we’re going to add three web parts: the custom list we just created, a query string filter web part, and an InfoPath form viewer web part.
First, let’s configure the query string web part. Click on the option to open the tool pane. Add the text “ProjUID” to the Query String Parameter Name box. This will make the web part pull the data in the PDP URL that comes after the “ProjUID” marker.
Click on the Ok button and configure the InfoPath form web part. Set the web part to display the form we configured in the last step. Change the default submit behavior to close the form. Click on Ok.
We now need to connect the web parts. The query string web part will serve two purposes: providing the default ProjUID value to the InfoPath form and filtering the Master Status Update List to only display the relevant updates. Click on the drop down option next to the InfoPath form web part, and select the option to get data from the query string filter.
Next click on the drop down option next to the query string web part, and select the option to send filter values to the custom list.
Click on Stop Editing in the top right. The PDP is now ready to be used. Add it to an Enterprise Project Type.
Updating the Project Status
Once the Status Update PDP has been added to the appropriate EPT, users may click on the project name within Project Center to view the page.
Users may then enter updates in the form displayed in the center of the page.
Each of the historical updates will be displayed at the bottom of the screen. As each update is tagged within the SharePoint list with the project UID, the development of a custom report should be relatively easy using SQL Server Reporting Services or even PowerPivot.
You’ll probably want to tweak the page to get it looking the way you would like it. In the following screenshot, I’ve removed the InfoPath web part label and removed the Project UID field from appearing in the status list. I’ve also set the status update list to not display the toolbar, which removes the option to create a new item from the bottom of the screen.
You may also wish to consider adding security or versioning to the SharePoint list to control who may actually be eligible to add information.