Azure DevOps Report for User Story Status History - azure-devops

We are using Azure DevOps to track our development work. I can open an individual story and see the history of changes and the chart of the status history. This is useful for an individual story, but doesn't allow me to identify trends and possibly highlight issues in our processes.
I would like to have a chart, or an export that shows the historical changes for all stories (within a date range, or some other filter) so I can discover:
How long does a story stay in each status, on average? (Q: Which statuses take the most time)
How many times is a story set to a status, on average? (Q: When and how often are we moving backward in the flow)
How many times does a story move backward for each team member? (Q: Where should we focus our training efforts)
I have searched within the dashboard, reports, and online for some way to get this information and either haven't used the right keywords, it doesn't exist, or I totally missed it.
Does anyone know if this type of information is available and how I can access it?

There isn't an easy way to accomplish this, unfortunately. Your best bet is going to be composing a Power BI report or Excel, whichever you're most familiar with. Even then, you're going to run into problems with #2 and #3. Microsoft doesn't have an easily accessible way to query the history of each status among all work items.
However, #1 is possible within PowerBI and Excel. Here are a few guides to get you started:
Excel
To import Queries into excel, you have to install a few things follow this guide to get started:
https://learn.microsoft.com/en-us/azure/devops/boards/backlogs/office/track-work?view=azure-devops&tabs=open-excel
Power BI
To get started consuming Analytics views within Power BI, follow this guide:
https://learn.microsoft.com/en-us/azure/devops/report/powerbi/create-quick-report?view=azure-devops
Whether you're using PowerBI or Excel, the fields you'll want to include within your query or Analytics View will look like "[STATUS] Date", "Closed Date" for example. That will make them accessible within PowerBI, or Excel, depending on which you go with.
Once you have your data, you'll want to create reports that compare the status dates to determine how long a story stays within a status.

Azure DevOps Report for User Story Status History
Azure devops is not intended to be a time tracking tool. You could query the work item history with the TFS API and check the timestamps on when the state transitions occurred if you really wanted to.
So, Azure devops doesn't track the time spent on a per day basis. It keeps track of the total time spent. If you want a per person per day value, you'll have to go through the iterations/workitem history and calculate the running difference.
If you really looking for a TimeReporting for the work items of per person, I suggest that you take a look at a third party yool like Timetracker:
Timetracker
New to version 5.0.! Individual, team, and custom reports powered by
version 3 of the REST-based reporting API. 7+ customizable widget
types that let you see data that you need, how you need it. In
addition to the six default reports in Reporting, users can create
custom reports for individuals or teams.
On the other hand, we could develop our scripts via REST API Revisions - List to get the System.State change and System.ChangedDate, then compare the date to get the time in each status.

Related

Task tracking in DevOps

I do quite a lot of security reviews on 365 tenants, which I have made an template. This is all written in a WIKI in DevOps. To that I have an Microsoft Planner this is everything taken out in headlines. This I usually go though with IT.
After that I do an report based on this planner.
But would LOVE to automate this process as the report task is so time consuming and a lot of it is copy paste.
I was thinking of changing my Planner and WIKI out with Work Items in DevOps. This way I could document directly in Work Items what IT is reporting and export the Work Items.
It does however (to my knowledge) not scale that good. It seems to me that I would have to create a DevOps site for every IT department/tenant.
Would love to hear from anybody who have experience with this or related to this.
I have tried with Work Items, but could not make it scalable for more than one IT department.

Tracking the amount of Ready work over time

We're using Azure Devops Boards as our primary work tracking environment. For our agile planning process, we've got a backlog full of user stories for which we use tags to categorize PBIs. For instance, when a story is ready for refinement by the team, it's tagged with Refinement. As soon as refinement is done it's tagged with Ready to indicate we're going to take it up for sprint planning. Nothing out of the ordinary I'd say.
Now I was looking for a way to historically chart the count of user stories having these tags, but I can't seem to find a widget supporting that. The time-tracking widgets don't seem to take tags into account and with the query-type widgets you can search for tags but you get the current set of items, not the option to plot it historically.
Does anyone know whether this can be done in one way or the other?
Some fields have a was ever such as State. Tags don't appear to support a was ever operator though, so you may have to use the REST API to search the audit data. https://learn.microsoft.com/en-us/rest/api/azure/devops/audit/?view=azure-devops-rest-6.0

Is there a way to get the lead time from Estimate to Completion in Azure DevOps Dashboard

I've been using Azure DevOps Dashboard for a while now and it's working nicely. One gap I have found is in it's Lead Time Chart. This goes from date creation to date completed, which in an Agile world doesn't make sense.
Backlogs can be thought of a placeholder for a conversation, following this initial backlogs can be vague and poorly defined, and more information and clarity will be added as the backlog moves closer to being actionable.
What I would want is a "Estimated to Completion". SCRUM teams estimate when there is enough information that the item could be pulled in to a Sprint, and this is the point where the lead time really makes sense.
Is it possible to add this to the DevOps dashboard, is there a query that will give me what I need?
Thanks,
John

Regarding non-availability of Project Management Chart

Our company has recently introduced Azure DevOps to streamline project management process. Currently, 140 projects are created under our organization in Azure DevOps. As and when requirement comes from client for any specific project, we create tasks/bugs for different developers under that project. Currently we use only two Work Item type - Bug and Task.
Now the issue is Management of the company wants to see Project-wise number of "New/Open", "Active" and "Closed" Tasks and Bugs in a SINGLE chart. That means, that single chart must fit consolidated data of 140 projects. If a person views that single chart they must get idea, for example that - Project 1 has 2 new/open work items, 2 active work items and 2 closed Work items , Project 2 has 1 new/open work items, 10 active work items and 3 closed Work items and so on.. This is done so that management in a glance can understand which project is lagging behind for customer delivery. So that they can work accordingly build more manpower for those Projects.
I have tried to create various such charts and widgets with different queries in Azure DevOps. I used widget burn up and burn out charts but it gives data for tasks of single Project only. Also when we add multiple projects to it, it shows summation of completed/remaining tasks for those Projects & NOT Project name-wise completed/remaining tasks bifurcation.
I also tried "Charts for work item" widget but it also fetches count as per- Assignee, State and Work Item type and not project name wise count is fetched.
I don't want to navigate through 140 projects pages to see it's open, active and closed tasks. So please help me out in suggesting the ideas on How can I build a single chart from where we can get all this data? I will be forever grateful for your answers.
Thank you!
You could create a query across projects, select Team Project column in Column option, ad save the query as shared query. Check the screenshots below:
Then add a chart widget to a dashboard, select Pivot table, and set Team Projects, State as Rows and Columns. Check the screenshot below:
You could expand the view to see more details:
https://learn.microsoft.com/en-us/azure/devops/report/dashboards/charts?view=azure-devops#add-a-chart-widget-to-a-dashboard
I'd be slightly careful based on what you've put down because I don't think your management team quite understand what they need, and DevOps can only do so much. I'd be challenging them around the setup of your DevOps process personally because I don't think it's advisable to not have user stories as part of your setup. Although it simplifies some aspects of DevOps, our experience has been that people have been able to group things together better with user stories as well as tasks.
Appreciate it's a good idea to be able to see what's going on across all projects, but I think there are probably further criteria to think about. E.g. do you want to see estimates instead of/as well as the count of the items since that will have a better reflection of the effort required. In terms of completed items and in fact, probably all that you're displaying, again it's more on your project process, but are management genuinely interested in everything? For example, do they need to know that something was closed 6 months ago, or are they just interested in the last month?
I suppose what I'm getting at is you probably need a bit more information from management about what they want to use the report for so you can give them what they need rather than they want. There's a temptation to say you want everything because you don't understand the capabilities of the solution or what you're going to use it for, and my recommendation would be to challenge them on this so you can better present things (giving them what they need rather than what they want).
In terms of what you're looking to do, I'll openly admit I'm not clued up on everything DevOps related but I doubt you'll be able to report at a project level within DevOps. I think what you'd need to do is set up your query, which would look across all projects in your organisation, and then export the results to Excel. From there I'd create a pivot table (or perhaps more than 1) with the data that you need. Have Project names down the left side (row headers), and bring in whatever else you need as columns. I think that's probably a good quick win to get something in front of your management team, and then you could challenge from there - almost picking holes in it so that they realise that the business decisions that they'd make from this may not be fully informed, and suggesting some changes. From experience, it's probably better to consider it almost as a prototype and not get bogged down with a solution at this stage because you may be asked for changes when they can visualise what they've originally asked for. Once management is happy you could look at other solutions to provide the report, but Excel is typically a good starting point I've found in the past when working on something new like this.

How can I add Lead time calculation inside Team Services and Visual Studio Team Services

I have some questions about Visual Studio Team Services (previously Visual Studio Online).
Basically, I want to calculate the average lead time in team services Projects and to present measurement in Team services the same way as number of active bugs in a Query report. To be able to do that I have to find all work order items that have a finish/done date, sum all days between done_date - active_date for each work order divided by all work orders With done date. But it is difficult to do make customized calculations inside team services. So what possibilites do I have. I know there is a REST Api that can be used, or maybe I can use Excel in any way or maybe there is an extension possibility in Team services that I can use.
If I have to create a C# program that uses Rest API or may be I can use SQL Server 2016 in any way, Power Query or so, I also want to make the number available in Team services again or in Power BI to create a Dashboard where I can add this New measurement in team services again?
I hope I explained myself enough that you could understand my problem and I would be very happy if somebody has a good guidance or examples or link to articles that explain an approach to solve my issues,
By default, the Cumulative Flow Diagram (CFD) widget can show the basic information about lead time for work items. Refer to this link for details: Cumulative flow.
The CFD shows the count of items in each Kanban column for the past 30
weeks or less. From this chart you can gain an idea of the amount of
work in progress and lead time. Work in progress counts unfinished
requirements. Lead time indicates the amount of time it takes to
complete a requirement once work has started.
If this does not fit the feature you want, you can use Excel to get the data and general the report you want.
Requirement to connect to VSTS from Excel:
Office Excel 2007 or later
Visual Studio 2010 or later or Team
Foundation Server Standalone Office Integration 2015 (free),
Reference for connect to VSTS: https://msdn.microsoft.com/en-us/library/vs/alm/work/office/bulk-add-modify-work-items-excel
Then you can do it by following the steps below:
Create a work item query in VSTS which will get all the work items you want. And in the "Column options" setting, select "Activated Date" and "Closed Date".(This depends on what date you want)
From Excel, select "Team->New List" and select the VSTS account and project. In "Query list" dropdown list, select the query you created in last step.
Now you can generate the lead time report base on the data you get.