Search code examples
azurereporting-servicesstatisticsazure-devopsreport

Reporting with Azure DevOps


My team that I am working with uses Azure DevOps for managing our projects. We use Agile methodology with somewhat of a waterfall approach. We are looking to make reports from this tool if there is any way possible.

Is there any way to create analytic reports straight from azure devops?

Is there extensions that you can use to get these reports from azure devops?

What are the main types of analytic reports that you generate to show at a high level?

I have already looked into Power BI.


Solution

  • For reports on Work Items, the use of analytics views (Power BI) is the latest method for trying to gather that information and make it available for reports. As you may have noticed, there are already several views available.

    For some pre-packaged graphs about sprints and their history, the Analytics Extension by Microsoft can be helpful for authoring dashboards that give you (and your users) a look at the team progress and statistics. IMHO this tool is a little lacking in the configuration that is available, but it's hard to argue with out-of-the-box functionality.

    Another obvious tool is the queries option for viewing work items. Unfortunately charts are only available for "flat" result sets, so use of some the cool nesting/grouping functionality that can be had with queries requires a compromise in that area. I have used the WIQL Editor extension with good results, as it allows you access to some of the work item fields that are not available through the UI.

    You may also like to look into the Feature Timeline and Epic Roadmap extension. Unfortunately, I have not had the best experience with this tool. It is the result of a hackathon at Microsoft DevLabs and the usage documentation is sparse to say the least. It does, however, give a Gantt-esque result if you plan your iterations with a portfolio backlog.

    For anything more extensive, you'll need to begin using the REST API to gather your data and format it into the appropriate structure for your desired reporting tool (take your pick). Swagger IO Editor offers a "short cut" (using the term loosely) to creating a client SDK based on the API Specification. I use some emphasis on "short cut" because I have found that there is some tweaking that is necessary to get an SDK that is actually working.

    1. Make sure to add "authToken": [] to the security section of each defined endpoint to allow for basic (read: PAT) authentication, b/c oAuth is used by default (what the server uses).
    2. Make a bulk changes to the models that are "implementing" IValidatableObject and inheriting (spec: allOf) from other models that are also implementing IValidatableObject. The implementation is basically a null pattern implementation, and I removed the generators attempt to call base.Validate() (which was really an undefined method of BaseValidate()) in the sub-classes.