To measure cycle time in Azure DevOps, decide which state means work has started and which means it is done, then read percentiles from a chart of the items your team finished. Agile Analytics does this inside Azure DevOps, in your browser, with no Power BI, no Analytics views and no personal access token. The five steps below take about ten minutes the first time.
Step 1: Decide where the clock starts and stops
Most arguments about cycle time are arguments about definitions. If the clock starts when an item is created, weeks of backlog waiting count as if the team were working. Cycle time is more useful when it starts at the first state where someone is actually working on the item and stops at the state your team agrees means done. In Agile Analytics an admin sets this once in Configuration, Workflow Mapping. The Cycle Time view states the rule on screen: "Cycle time starts at the mapped in-progress step and completes only at the mapped done step."
- Which states count as In Progress. If a state such as Committed or Ready for Dev is only a queue, keep it out of In Progress.
- Which state is Done. The clock stops at the first state mapped as Done. If Ready to Release is mapped as Done, the time after it is not cycle time. Agree this as a team before anyone quotes a number.
Related: Workflow Mapping docs
Step 2: Open the Cycle Time view
Open Agile Analytics under Boards in the project navigation. Cycle Time is in the Plan group. The controls across the top are:
- SPRINTS: how many sprints of finished work to include.
- VIEW: Scatter or Histogram.
- METRIC: Cycle or Lead. Lead time runs from creation, so keep Cycle for questions about how long work takes once started.
- TARGET (DAYS): used in Step 4.
Scatter first, then histogram
On the scatter, each dot is a finished item: when it finished, and how many days it took. Each dot uses the saved Workflow Mapping for its item type. The histogram groups the same items by duration, which makes a long tail easy to see.
Step 3: Read p50, p70, p85 and p95
The scatterplot draws four percentile lines from your own history. The view explains them plainly: "p85 means 85% of completed items finished in that many days or fewer. A percentile is a probability drawn from your own history, not a promise."
- p50: the typical item. Half finished faster, half slower.
- p70: a likely answer for routine work.
- p85: the usual answer to "when will this be done?" when someone needs a number to plan around.
- p95: the outer edge. Items above it are worth a look in the retro.
Why percentiles and not an average
A few very old items can pull an average far from what most work experiences. Percentiles show the spread instead. If your numbers differ from the built-in widget or a Power BI report, the reasons are in why the cycle time widget and Power BI do not match.
Step 4: Set a target for how long work should take
A service level expectation (SLE) pairs a number of days with a probability, for example "85% of our items finish in 10 days or fewer." Start from your current p85 rather than a number you would like to hit. The Cycle Time toolbar has two controls for this. Switch the SLE control On and enter the days and the percentage (10 d @ 85%, say); a badge then shows what share of finished items met it, and how many. TARGET (DAYS) sets a target line, and the Target badge reads ON TRACK, WATCH or AT RISK.
- SLE Violations, in the Health group, lists the finished items that missed the window, worst first. That list is good retro material: look at what the slowest items had in common, not at who worked on them.
- Aging & Blocked plots every item still in progress against the team's p50 and p85, so you can act before an item becomes a violation.
Step 5: Check what was left out
A cycle time chart is only as honest as the items in it. Check two things before you share it.
- Items not shown. Finished work whose state is not mapped as Done does not appear. The view says how many "have a state that is not mapped as Done in the Workflow Mapping" and offers Review Workflow Mapping. A long list usually means a closing state was added to the process and never mapped.
- Estimated starts. An item that never passed through a state mapped as In Progress gets an estimated start from its creation date, so its dot looks slower than the real work was. Many of them means a working state is missing from the mapping, or items jump straight from New to Done.
Sharing the chart
Once the chart is clean, use Download chart as PNG for a sprint review or a status update. To compare several teams, the team list offers Compare teams across projects when your organisation has more than one project.
Try it
Agile Analytics runs on Azure DevOps Services (cloud) and needs Project Contributor access or higher. The 30-day free trial starts on install with no credit card, and everyone in the organisation has full access while it runs. More on the chart itself is on the cycle time analytics page, and the extension is on the Azure DevOps Marketplace.
Related: Cycle time analytics for Azure DevOps · Install instructions