Building development scorecards
Earlier this year, I did some blog posts about how to create key performance indicators (KPIs) based on the software development data that Team Foundation Server collects.
There are numerous clients for those KPIs, but the one that is probably the most dedicated KPI client from Microsoft is Business Scorecard Manager (BSM); with the upcoming Office 2007 release, this product will become a part of Microsoft Office PerformancePoint Server 2007. The BSM team blog has lots of great information about their product.
Scorecards in general are interesting. In just about any business, there are dozens, if not hundreds of data points to collect when trying to build an overall (or sub-overall ) view of the business so somebody can make a decision. One of my first projects when I joined Microsoft was to build a status collection and display web application for our QA team. Team members would update the status of their test runs, and every week the managers would look at the overall status and decide on strategy. That simple web site was in essence a score card. Maintaining it was a pain, because different teams had different data formats and different preferences for updating their data. Some didn’t want to use a web site, some did, etc.
Gathering and displaying data from across many different teams and normalizing data formats is what Business Scorecard Manager does a really nice job of. BSM takes KPI’s from various sources, including itself, and visualizes them in a consistent manner.
Usually, BSM is shown in the context of business functions like sales and finance, but there is no reason not to use it for software development data as well.
Let’s use the KPI’s from my earlier posts as an example. Below is a screen shot of what one of them looks like inside the SQL Server 2005 KPI browser view.
The first step is to import our SQL Server 2005 KPIs’ into a format that BSM understands. The KPIUtil from Microsoft Downloads does exactly this. The instructions for the tool are excellent; basically you install the sample indicators and run the tool to import your KPIs from SQL Server 2005. The first step is necessary to bring in the indicators that SQL Server KPIs have access to.
After running KPIUtil, we will have access to our LeadTime KPI inside of Business Scorecard Manager. I just used one of the example workspaces (SalesSummary) from Business Scorecard Manager to augment. In a real project, you would probably want to create your own workspace from scratch.
A BSM scorecard can be published into many different forms. One way is to publish the scorecard into Windows Sharepoint Services – BSM will automatically create, format and populate a WSS page for you. Once published, this page will stay in sync with any changes that you might make to your scorecard.
Before adding our LeadTime KPI, the WSS page generated by the example Sales Summary score card looks like this:
Inserting a new KPI into the scorecard is pretty straightforward. Objectives are used to organize data in your scorecard, so you might create an objective for tracking various KPIs for your software development.
There are various aspects of an objective that I can’t do justice to, so I’ll just add the LeadTime KPI to the objective we just created.
Once we re-publish this scorecard, our WSS page is updated as well, and we see our new KPI, displayed pretty much the same way as we saw in the SQL Server 2005 browser view:
I’m not sure that scorecarding is for everyone, but I think it might be more applicable than people think. Whenever I walk through the hallways of our development team, or many others at Microsoft, I see monitors on the walls that show various charts and graphs tracking project progress. Most of these systems are hand created and maintained. I wonder if Business Scorecard Manager would be a more efficient solution?
In any case, I’m always on the look out for a technology that might make software development a little bit easier. There is a lot of capabilities in the upcoming release of Office 2007, so I’m looking forward to doing more posts about that.