Introducing Project Social

A couple of weeks ago I traded in my iPhone for a new Mango based Windows Phone 7. For those of you that haven’t tried WP7, I would strongly suggest you do. In addition to being able to view your favourite EPM software through the mobile browser, the whole platform and experience seems vastly superior to the Apple offering.

Whilst the WP7 marketplace has a wide variety of application that is growing on a daily basis, it is a little light on Project related applications. So inspired by the fantastic Project Server and SharePoint iPhone app by Giles Hamson, I thought I would have a go at doing something myself, so I am pleased to introduce Project Social.

Project Social Panorama

What is it?

Project Social is a social viewer application that aggregates MS Project related Twitter and RSS feeds from the official MS Twitter accounts and blogs, a number of community blogs and the Project Server Technet content feeds all into one convenient application. Each item can be read directly on the phone where you can interact socially with it by via twitter (tweets, replies or retweets) email or directly via the browser. The application is based on the excellent Codeplex Social Viewer template which is constantly being updated, so watch out for some exciting new updates in the future.

Where can I get it?

Project Social is available now as a free download from the Windows Phone Marketplace or by clicking on the image below.

Download Project Social for Windows Phone

If you have any suggestions, or would like to add or remove your feed, please contact me directly at wp7@epmsource.com.

Project Server 2007 CU Links

imageA week or so ago, I needed to go through the various Project Server 2007 CU’s to see if a particular issue my customer was experiencing had been fixed or was a new bug. After a bit of searching I was surprised to see that there wasn’t a definitive list of all the Project Server 2007 CU’s out there. There seemed to be a few which went from RTM through to SP2 (http://support.microsoft.com/kb/2002211) but nothing afterwards.

Anyway, I ended up pouring through blog posts and the search engines to pull together a single list, which is posted below for your reference pleasure.

Name Version KB Link
January 31 Hotfix Package 12.0.6300.5000 http://support.microsoft.com/kb/941426
April 3rd Hotfix Package 12.0.6309.5000 http://support.microsoft.com/kb/950816
April 22nd Hotfix Package 12.0.6312.5000 http://support.microsoft.com/kb/951169
April 29 Hotfix Package 12.0.6313.5000 http://support.microsoft.com/kb/952000
May 8th Hotfix Package 12.0.6314.5000 http://support.microsoft.com/kb/952289
June 2nd Hotfix Package 12.0.6316.5000 http://support.microsoft.com/kb/953136
June 9th Hotfix Package 12.0.6317.5000 http://support.microsoft.com/kb/953478
Service Pack 1 12.0.6218.1000 http://support.microsoft.com/kb/936134
Infrastructure Update 12.0.6318.5000 http://support.microsoft.com/kb/951297
August 2008 Cumulative Update 12.0.6327.5000 http://support.microsoft.com/kb/956061
October 2008 Cumulative Update 12.0.6331.5000 http://support.microsoft.com/kb/957696
December 2008 Cumulative Update 12.0.6335.5000 http://support.microsoft.com/kb/960313
February 2009 Cumulative Update 12.0.6341.5002 http://support.microsoft.com/kb/968271
Service Pack 2 12.0.6422.1000 http://support.microsoft.com/kb/953334
April 2009 Cumulative Update 12.0.6503.5000 http://support.microsoft.com/kb/968860
June 2009 Cumulative Update 12.0.6510.5003 http://support.microsoft.com/kb/971502
August 2009 Cumulative Update 12.0.6514.5000 http://support.microsoft.com/kb/973937
October 2009 Cumulative Update http://support.microsoft.com/kb/974990
December 2009 Cumulative update http://support.microsoft.com/kb/977028
February 2010 Cumulative update http://support.microsoft.com/kb/978397
April 2010 Cumulative update http://support.microsoft.com/kb/981044
June 2010 Cumulative Update http://support.microsoft.com/kb/983312
August 2010 Cumulative update http://support.microsoft.com/kb/2276475
October 2010 Cumulative update http://support.microsoft.com/kb/2412269
December 2010 Cumulative update http://support.microsoft.com/kb/2458607
February 2011 Cumulative update http://support.microsoft.com/kb/2475887
April 2011 Cumulative update http://support.microsoft.com/kb/2512784
June 2011 Cumulative update http://support.microsoft.com/kb/2544400

In the next few weeks I will pull in the missing version numbers, and make this a proper page on the site that is updated with the release of each CU.

Error 1053 : The service did not respond to the start or control request in a timely fashion error event.

Recently the Project Server 2007 queue at one of my customers stopped working. What made this stranger was that it occurred on the Production, Test and Development environments within days of each other. My first thoughts were to see if the customer’s IT department had made any changes to the environments, like a patch, or hosting configuration change, but after passing my polygraph tests it seems they hadn’t. Smile

Restarting the Queue Service didn’t seem to fix the issue, resulting in the error:

Error 1053 : The service did not respond to the start or control request in a timely fashion

After a quick search, I found this article from the excellent Information Worker Structured Collaboration blog covering this exact scenario. It seems that after a period of time, an error can occur in Virtualised environments which causes the Queue and/or Event services to not start.  As outlined in the blog, the fix is pretty simple, requiring two simple registry changes and a reboot.

image

So if you run Project Server 2007 in a virtualised environment, bookmark the above site as it’s likely to save your bacon.

Error 6875 : Unexpected end of file while parsing Name has occurred. Line 1, position 256.

I thought I would blog this so I can find it again and in case someone else runs into this issue.

Last week whilst performing a health check on a Project Server 2007 installations I came across this error which seemed to be a pretty common occurrence in the event logs.

Error loading and running event receiver Microsoft.Office.Project.PWA.WSSEventReceivers.PSDBUpdater in Microsoft.Office.Project.Server.PWA,Version=12.0.0.0, Culture=neutral,PublicKeyToken=71e9bce111e9429c. Additional information is below.

: Unexpected end of file while parsing Name has occurred. Line 1, position 256.

For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.

After a quick search, I found this excellent article by Julian Stevens which provides an explanation of the problem, which turns out to be that the complete websafe url of a document, including the machine name, folders and document cannot cannot exceed 260 characters by design. In this particular case, one of the project teams had become a little overzealous in the use of folders and descriptive filenames. The offending team is now rethinking their document storage and looking at using metadata instead of folders for organising their content.

Encoding a Risk Matrix in Project Server

Out of the box Project Server provides the ability to store a project’s risks and issues within an associated project workspace. As these risks and issues are stored in SharePoint lists, there is a tremendous amount of flexibility to customize these lists. As a consultant, a common request I hear again and again is the need to extend the out of the box risks lists to encode some form of risk matrix, such as the one outlined below:

Risk Matrix

Implementing such a matrix is relatively simple thanks to SharePoint calculated columns, but can be fiddly to get correct. In this post I will run through the process of setting up the risk list to encode the matrix above and hopefully provide you with some insights on how it works that you can leverage elsewhere.

Setting up the columns

Before setting up the matrix, it is necessary to set up the three columns required to support the matrix:

· Consequence – used to store the risk consequence

· Likelihood – used to store the risk likelihood

· Residual Risk – used to store the calculated risk from the matrix

Each of these columns will be added to our Risk list in the Project Template site.

Remember: If you intend for this customization to be available in all new project sites moving forward, it is essential you make the changes in a template site not linked to a project and then register that template into Project Server.

Consequence & Likelihood

In the Project Template site Risk list, create two new choice columns called Consequence and Likelihood. In each column set of the choice values to be as follows:

Consequence Choice Value Likelihood Choice Values
(1) Insignificant (1) Rare
(2) Minor (2) Unlikely
(3) Moderate (3) Possible
(4) Major (4) Likely
(5) Extreme (5) Almost Certain

Residual Risk

The last column that needs to be set up is the Residual Risk, unlike the other two columns, this is a calculated column and uses a formula to reference the Consequence and Likelihood columns to determine the Residual Risk. The formula itself consists of only three operators, IF OR & AND and is relatively simple to implement, however as you can see in the matrix above, there are 25 different conditions that need to be encoded, so there is a lot of it Smile

=IF(OR((Likelihood="(1) Rare"),AND(Likelihood="(2) Unlikely",OR(Consequence="(1) Insignificant",Consequence="(2) Minor",Consequence="(3) Moderate")) ,AND(Likelihood="(3) Possible",OR(Consequence="(1) Insignificant",Consequence="(2) Minor")),AND(Likelihood="(4) Likely",Consequence="(1) Insignificant"),AND(Likelihood="(5) Almost Certain",Consequence="(1) Insignificant")),"Low",IF(OR(AND(Likelihood="(2) Unlikely",OR(Consequence="(4) Major",Consequence="(5) Extreme")),AND(Likelihood="(3) Possible",OR(Consequence="(3) Moderate",Consequence="(4) Major",Consequence="(5) Extreme")),AND(Likelihood="(4) Likely",OR(Consequence="(2) Minor",Consequence="(3) Moderate")),AND(Likelihood="(5) Almost Certain",OR(Consequence="(2) Minor",Consequence="(3) Moderate"))),"Medium",IF(OR(AND(Likelihood="(4) Likely",OR(Consequence="(4) Major",Consequence="(5) Extreme")),AND(Likelihood="(5) Almost Certain",Consequence="(4) Major")),"High",IF(AND(Likelihood="(5) Almost Certain",Consequence="(5) Extreme"),"Extreme"))))

Deciphering the above can be a bit daunting, but in essence the formula is broken down into four IF statements that are nested, each used to determine the residual risk condition (Low, Medium, High or Extreme). Within each IF statement the relevant Likelihood and Consequence values are evaluated. In the case of the ‘Low’ residual risk, there are five different evaluations as outlined below:

Matrix Marked Up

Evaluation Formula
1 (Likelihood=”(1) Rare”),
2 AND(Likelihood=”(2) Unlikely”,OR(Consequence=”(1) Insignificant”,Consequence=”(2) Minor”,Consequence=”(3) Moderate”)) ,
3 AND(Likelihood=”(3) Possible”,OR(Consequence=”(1) Insignificant”,Consequence=”(2) Minor”)),
4 AND(Likelihood=”(4) Likely”,Consequence=”(1) Insignificant”),
5 AND(Likelihood=”(5) Almost Certain”,Consequence=”(1) Insignificant”))

If any of the above evaluations are true, then the IF statement will return the text ‘Low’ into the calculated column.

Debugging

With a formula as complex as the above, it’s pretty easy to forget a comma or bracket. Unfortunately SharePoint is a little unforgiving and if you get it wrong and you will see an (un)helpful error message like this:

clip_image006

Unfortunately if you get an error all you can really do is review the formula to try to work out where the problem is.

Once the formula is accepted test each Residual Risk calculation manually by creating a risk and setting the relevant values for the Likelihood and Consequence and saving the risk.

If all goes well you will now have a new column called Residual Risk that is automatically populated depending on the values entered in the Likelihood and Consequence columns as outlined in the Risk Matrix.

List

Hopefully this has given you an overview of how simple it is to extend the risk list to encode a risk matrix. Of course you are not limited to just risks, the technique outlined above can also be applied to the issues list, or any other list within any SharePoint workspace where you want to encode an automated matrix type calculation.

Update: Gord Schmidt has posted a more elegant number based approach to the matrix here.

Fiscal Time Dimension Not Set

fiscal not set For the past couple of weeks I have been building some financial reports from information stored within the cubes of Project Server 2007. The client has some pretty full on requirements around presenting the information, so I chose to implement the reports using Microsoft Excel which I can apply a bit of logic and formatting to instead of the out of the box PS2007 data analysis views.

One problem I ran into was that the Fiscal Time dimension in the cubesfiscal populated was showing as ‘Not Set’ when trying to set it as a filter. After about ten minutes of poking around and scratching my head, I checked the Financial Periods set up on in the Time and Task Management section of Server Settings to make sure the fiscal periods had been configured, which they hadn’t. After setting up the fiscal periods and rebuilding the cube, the fiscal time dimension populated. It appears the cubes require this to be set explicitly for the dimension to populate, which makes perfect sense when you think about it as these fiscal periods can vary between organisations and where in the world they operate.

So why am I telling you this? Well, I figured I might save someone ten minutes in the future if they run into this and decide to do a search :)

Enable backwards compatibility mode on a fresh Project Server 2010 install

One of the great features of Project Server 2010 is Backwards Compatibility Mode (BCM). With BCM, users can connect to Project Server 2010 with both Project Professional 2007 and 2010 clients. This can be a great bonus for companies that have already standardised on the Project 2007 toolset but want the features of Project Server 2010 without a costly client upgrade and rollout.

Typically BCM is turned on when you upgrade your existing Project Server 2007 environment to Project Server 2010. If you do a fresh install of Project Server 2010, the server is installed in Native 2010 mode, only allowing Project 2010 clients to attach. However, it is possible to do a fresh 2010 install and enable backwards compatibility mode, and here’s how…

1. Create a set of Project Server 2007 databases by provisioning a new Project Server PWA instance.

Fresh Provision

2. Save the four ‘clean’ databases created in your Project Server 2007 environment and back them up via SQL Server Management Studio. Restore the four ‘clean’ databases into your Project Server 2010 environment database and make sure they have the correct permissions for your environment (more info on restoring databases and setting the permissions can be found here)

Restore DB

3. In the 2010 environment, provision a new Project Web Application instance via Central Admin > Manage Service Applications > Project Server Service Application. In the configuration screen, change the four default database names to reflect the ‘clean’ Project Server 2007 databases restored above.

Central Admin - new SA 1

Central Admin - new SA 2

4. Confirm that backwards compatibility mode has been turned on for the PWA instance in Server Settings > Additional Settings

Additional Server Settings - BCM

There you have it, the server now supports both Project Professional 2010 and Project Professional 2007.

Update: Microsoft have released a set of clean Project Server 2007 databases that can be used to create a fresh 2010 instance. More details here.