If you use Azure DevOps (formerly Visual Studio Team Services) you would already be familiar with their Dashboards and widgets you can add to the Dashboards (e.g. see the example dashboard in the 1st post). So when would you need to consider using Power BI for reporting?
In the first post of this Delivery Reporting Series I discussed some of the agreements that a delivery team needs to decide on when it comes to entering data to track their work through a sprint in the delivery. In this post we take a look at some of the reasons why we might wish to report delivery data stored in Azure DevOps using Power BI (detailed information from MS here).
Access to Historical Data
Azure DevOps Dashboard is built on widgets for visualisations, and the data displayed by the widgets are based on the queries built and saved in the team project. In the screenshots below, the stacked bar chart shown in the widget is built based on the “All Work Items” query. Note that the query shows all work items and their current states in Azure DevOps. However at the time of writing this post, it is not possible to do a basic query within Azure DevOps to see all the work items and their states based on a snapshot from 1 week ago.
This means it is impossible to track changes in time for e.g. states of bugs or user stories retrospectively via widgets or dashboards alone.
Query and Show User Stories and all Related Work Items in a Single View
In the first post I mentioned that a project team should consider tracking work items and the relationships between work items (e.g. can a bug created be linked to an existing user story or requirement?). If you have these hierarchical relationships defined in Azure DevOps, you can query for these data directly in a view, using the “Tree of Work Items” option and select the “Parent/Child” filter option. This query returns all user stories and their children tasks and bugs linked to the parent user stories.
For example this screenshot shows a saved hierarchical relationship called “Parent Child Work Items” in Azure DevOps. However when trying to plot this data in a widget you’ll find that hierarchical queries are not supported. This limits the ability to build dashboard visualisations based on parent/child work items hierarchies.
Ability to Plot Aggregate Data using Complex Visualisation
Let’s suppose that you have user stories broken down to their children task work items, and each child work item have been updated throughout the project sprint with their “Original Estimates”, “Remaining Work” and “Completed Work” in hours. Suppose you now want to compare estimates versus real effort for each parent User Stories in the iteration. In theory you need to aggregate all children tasks’ estimates and real effect for each user story, then visualise the difference by plotting the 2 time values for each user story.
Unfortunately I haven’t found a way to produce this kind of aggregate plot natively in Azure DevOps widgets. You will need to search through Azure DevOps marketplace for extensions (DevOps Marketplace for Extensions) or custom built your own Dashboard widgets (custom Dashboard Widgets).
To tackle some of the above, I decided to turn to Power BI and the Azure DevOps connector available. In the next post I will take a look at this connector and the functionalities provided to report on statistics from Azure DevOps using Power BI.