Page MenuHomePhabricator

Cycle Time and Lead Time Reports
Open, Needs TriagePublic


This is a followup to the Conpherence discussion about documenting WMF reporting use cases; it is intended to support Phacility's research into implementing reporting. These are distinct but closely related reports.

Use Cases

  • As a ScrumMaster or Team Lead, I want to identify bottlenecks in a team's software development process so that I can fix them.
  • As a Product Owner, I want to identify Work In Progress levels and trends, so that I can adjust the rate of new work added to the backlog.
  • As a Product Owner, I want to know the ages of tasks being completed so I can consider that in reprioritizing the Backlog.
  • As a Product Owner, I want to identify specific tasks that have been in progress for a long time, so that I can intervene and un-block or re-triage the task.

Sample Report

lead_time_report.png (1×1 px, 30 KB)

Design Notes

  • Cycle Time and Lead Time are distinct reports with some consistency of definition: Cycle Time shows the total size of the backlog at each time period, grouped by state. The Status Field in Phabricator does not provide enough software-development-specific states (such as "In Design", "In Development", "In Testing") to support a standard Cycle Time report. Teams usually track this level of detail, which is rarely identical for different teams, through custom projectcolumns.
  • Lead Time generally refers to the time span between initial creation of a task and its completion; the Sample Report above shows a kind of Lead Time report, in which the bars show the number of tasks completed in each time period and the color refers to how old each task was at completion.

Event Timeline

It would be useful to extend this concept to the lifecycles of other Phabricator objects, not just Maniphest tasks. For example, people on my team have sometimes wanted to see a histogram of how long it takes Differential diffs to get reviewed, especially if we can break it down by author and/or reviewer.