I’ve seen a couple of questions posted to the online forums of late asking about how the Portfolio Management heuristics work in Project Server 2010. Since I know that I will have to explain this to my own clients, I figured that I would take an initial stab at demystifying how the portfolio optimization calculations work. As a disclaimer, note that I refer to this process as “Pairwise Analysis” because that’s just how I learned it in my Quality Management classes. If you’re looking for additional information, type the term Analytical Hierarchy Process, or “AHP,” into your search engine of choice: Wikipedia and MSDN entries here.
To follow this discussion, please feel free to download the associated Excel workbook. All of the examples in this posting are generated from that Excel worksheet.
I should also point out that this is a description of some of the simpler elements of the portfolio analysis module and does not represent an exhaustive review of all of the portfolio analysis functionality in Project Server 2010. Today’s post is only the tip of the iceberg.
Driver Prioritization
First off, let’s look at how the Business Driver Prioritization works.
In this example, each driver is ranked against each other driver. The proper way to read a table like this is from left to right, and then up. For instance if we look at the following example:
…we would read this as saying Driver 1 is extremely more important than Driver 2.
Inversely, we would conclude that Driver 2 is extremely less important than Driver 1. Because we can conclude both statements from the first statement, we only need to populate the top half of the table. The bottom half can be logically derived from the top half. Hence, as you populate the rows for each driver, you end up having to populate fewer and fewer cells – which is indeed the case in the Project Server Driver Prioritization interface.
Project Server 2010 provides us with the following 7 options for flagging driver relationships:
ID | Description |
1 | is extremely more important than |
2 | is much more important than |
3 | is more important than |
4 | is as important as |
5 | is less important than |
6 | is much less important than |
7 | is extremely less important than |
Each option corresponds to a specific score for each of the drivers. I played around with different scores, and was unable to come up with numbers that produced results exactly like the calculations in Project Server. I take that to mean that Project Server is either using a calculation so simple that I missed it, or some sort of complex statistical distribution that is beyond my own mathematical abilities to decipher. Either way, the numbers I ended up identifying as relative scores suffice to rank the risks in the same way as Project Server – albeit with slightly different absolute scores. These calculations are close enough for this exercise.
So based on that, I assign relative values to each of the 7 potential driver relationships:
ID | Description | Value |
1 | is extremely more important than | 9 |
2 | is much more important than | 5 |
3 | is more important than | 3 |
4 | is as important as | 1 |
5 | is less important than | 1/3 |
6 | is much less important than | 1/5 |
7 | is extremely less important than | 1/9 |
Translated, this means that the above table appears as follows – with a numerical value swapped out for each of the 7 relationship descriptions.
…to complete the driver prioritization calculations, we then want to normalize the results. To do that, we divide each value by the sum of the column. We then take the sum of each row, and divide it by the number of drivers (in this case, 5). This yields the score, or relative ranking, for each of the drivers.
As mentioned above, take these results for demonstration purposes only. In preliminary testing on a 5 X 5 matrix in the Driver Prioritization module, I was able to get results pretty close, but not quite identical to what Project Server calculates.
Project Prioritization
Now that the business drivers are prioritized, let’s rank each project against the drivers. In this case, Project Server 2010 allows us to choose from 6 options for assessing how well each project maps to each driver:
ID | Description |
1 | Extreme |
2 | Strong |
3 | Moderate |
4 | Low |
5 | None |
6 | No Rating |
Again, through trial and error, I identified the following relative scores which yield results not quite exactly the same as Project Server, but are close enough for discussion purposes.
ID | Description | Value |
1 | Extreme | 225 |
2 | Strong | 150 |
3 | Moderate | 75 |
4 | Low | 25 |
5 | None | 0 |
6 | No Rating | 0 |
Applying the scoring system to the project-driver mapping, I can convert this:
to this:
To roll up the calculations, I then normalize each column by dividing the cell by the column total, and multiply the result of that times the driver prioritization from above. (Check out the Excel worksheet for more specifics on the exact mechanics involved.) That gives me a table that looks like this:
…which then yields the ranking of projects.
Consistency Ratio
Consistency ratio then is the measure of how consistent each of the driver prioritization strings are. Those calculations will have to be a topic for another post, but if you’d like a handy reference, this document seemed to point in the right direction: http://www.booksites.net/download/coyle/student_files/AHP_Technique.pdf