*Update April 2016 – If you are interested in this area and based in the UK then register for our free event at Microsoft Campus in Reading on 6th May*
About 18 months ago I wrote a blog post on TFS Reporting and it has been one of the most popular on my blog for some time. I think that is mainly because reporting in TFS is so difficult but many teams realise the importance of accessing the data that it contains.
Although 90% of that post is still valid in the new world of Team Foundation Server 2015 (Update 1) and Visual Studio Team Services, there have been some fairly significant enhancements and also my approach to reporting have changed too.
At the time of my first post on this subject, the cloud-hosted version of TFS had just been renamed to Visual Studio Online (VSO) from Team Foundation Service Preview and reporting was one of the few missing features as it did not have a data warehouse or SQL Server Reporting Services.
However, at the end of 2015, VSO has been renamed again to Visual Studio Team Services (VSTS) and those missing features have been added (custom Process Templates), become obsolete (SharePoint Integration) or in some ways surpassed the current on-premise version (PowerBI reporting, Release Management).
This is because VSTS is evolving rapidly and is updated monthly whereas we typically see on-premise updates quarterly and it could take IT many more months to plan applying the update. At RippleRock, we run all our internal projects on VSTS and for me it is fast becoming the obvious choice over on-premise as long as you can get over the idea of your project data and source code being stored in the cloud.
So what has changed in the last 18 months?
Admittedly, Charting hasn’t changed massively but a historical set of charts was introduced which made the feature much more useful. Take a look at the Trend Charts in addition to the Snapshot charts
I am not going to repeat the details of creating a chart as they are well documented on MSDN:TFS2015/VSTS Charts. One thing I will note is that you can only create a chart from a Flat Query which can be a little limiting. Pay close attention to the included Columns and Sort Order of your query too, as they will have an impact on what is available to you in the chart options.
In TFS 2013 each team had a home page where Team Administrators could pin queries and charts specific to that team. However, these homepages could quickly become cluttered and had to serve multiple purposes making it difficult to filter the data you wanted to see. With TFS 2015 Update 1 (and VSTS since October 2015) this has changed to allow users to create multiple dashboards per team. So you could easily have a bugs dashboard, stakeholder dashboard etc.
Again this is well documented on MSDN: TFS2015U1/VSTS Dashboards. Just click the green ‘+’ beside the Overview dashboard and start creating the boards you need.
Each board can have a number of configurable widgets to allow you to only show information relevant to the board. At the time of writing there are about 15 widgets that can be added to a dashboard by clicking the ‘+’ on a green circle at the bottom of the dashboard.
What is exciting for RippleRock is that you will soon be able to write your own widgets and we will make our SenseAdapt (see below) charts available to your dashboards to give realtime actionable metrics.
Power BI is probably the biggest development since the last post and typically the feature was first announced shortly after I published the blog making it almost instantly out of date.
To be fair, at that stage there wasn’t a lot in there, really just some nice metrics for Git users in TFS - No TFVC, No Work Items, No Test Results. A lot has been added since then and there is more to come!
Once you’ve signed up, it is pretty easy to connect Power BI to your VSTS account (just remember not to add the .visualstudio.com when you enter your account name).
When choosing your project(s), be careful to spell it correctly as it doesn’t appear to check if the project exists and you’ll just get blank data.
Importantly data is not live, this is similar to the OLAP cube in TFS which was refreshed every 2 hours by default. The last time I checked, PowerBI updated data every 24 hours but this is configurable.
Now you can interact with data in a number of ways. There are the pre-created reports, natural language queries (how many bugs were created this week?) and then you can create your own reports much like you do with Excel and SSRS.
On premise support for PowerBI is not there yet.
However, it can be done by pointing the cloud hosted PowerBI at your on-premise data warehouse. Obviously this adds some complexity around access to a server behind the firewall and in my eyes doesn’t get beyond the problems that we see with 3rd Party BI Tools. I think this will become the main reporting option for TFS but for me, it’s not fully baked yet.
SenseAdapt is a custom reporting tool for TFS that was born out of both the frustration at the difficulty of visualising data from TFS and the realisation that all too often the data in the system was poor. We needed something to allow us to understand how teams were using TFS and to surface issues that could be tackled.
My colleague, Bazil is our Product Owner and has a great blog post on SenseAdapt
SenseAdapt: Data-based, Actionable Insight
SenseAdapt can be installed on an on-premise Web Sever (even the TFS box if you wish) or it will be available as a VSTS Extension (see below). We use the TFS API and so all the data is live and it does not rely on a the data warehouse. The UI is web based and can be accessed using any device. All the charts are interactive so you can see much of the data that underpins the chart.
The tool will help teams improve their Agile process but for me, the outstanding feature is the ability to predict project completion dates.
If you have a fixed delivery date, understanding where your project is predicted to finish with the current backlog and completion rate will allow you to make difficult decisions about the scope of the project. You might not like what you see but it’s better to know ahead of time if there is likely to be a problem with delivery.
Contact me or Bazil if you’re interested in understanding how SenseAdapt can help your team improve.
The TFS Marketplace was in introduced in November 2015 and I expect to see this expand massively over the next 6 months with both free and commercial plug-ins. We have SenseAdapt almost ready to go (give me a shout if you’re interested in trying it on your account). At the minute, it is VSTS only but I expect to see extensions on premise in the next few updates.
We recently worked with a client who made extensive use of Tableau (and others who use QlikView and Cognos) which seems to be the gold standard in BI tools.
While things started well, the major issue was users understanding the TFS data warehouse. It could be incredibly difficult to get the data you wanted which kind of defeats the purpose of having this beautiful BI tool.
So, while you can do it and get good results, it is not an easy option and unless you already have the tools, it can be very expensive.
Just a note that TFS 2015 brought the REST API to on-premise TFS.
“The REST APIs enable a lightweight way to work with Team Foundation Server from virtually any device, platform, or technology stack. You can create and query work items, queue a build, get recent team room messages, access source code, and accomplish almost any team or code management task.”
In fact the TFS API is now available via NuGet in 4 different packages. Check out Buck Hodge’s blog post on the subject:
NuGet packages for TFS and Visual Studio Online .NET client object model
Microsoft.TeamFoundationServer.Client Here you’ll find convenient .NET wrappers for our REST APIs for build, team rooms, version control, test case management, and work item tracking. You can of course call the REST APIs directly without using this library. You will encounter cases where an API is not available in this package and have to also use the ExtendedClient package.
Microsoft.VisualStudio.Services.Client If you need to access account, profile, identity, security, or other core platform services, you’ll need this package.
Microsoft.VisualStudio.Services.InteractiveClient This package provides the library necessary to show a user an interactive prompt for credentials to sign in. If you are using basic authentication, personal access tokens, or OAuth, you won’t need this.
Email Richard Erwin
© Copyright 2018 RippleRock