Cycle time
Also called engineering cycle time or PR cycle time
In software delivery, cycle time is how long a change takes from the moment work starts on it to the moment it reaches production. It is the internal counterpart to lead time, which starts its clock when the customer asks rather than when the team begins.
How it is measured
The clock starts when work begins and stops when the change is live. Between those two points, the interval worth splitting into stages:
Coding — first commit to pull request opened. Review wait — pull request opened to first review. Almost always the largest stage, and almost always the one teams are most surprised by. Review — first review to approval. Deploy wait — approval or merge to production.
The total is what gets reported. The breakdown is what gets acted on.
Why the stage breakdown is the whole point
A team told its cycle time is 48 hours learns nothing it can use. The same 48 hours can mean:
- 40 hours of coding and 8 of everything else — changes are too large, which is a pull request size problem
- 40 hours waiting for a first review — a queue problem, usually reviewer capacity or unclear ownership
- 40 hours between approval and production — a deployment problem, usually a release train or a manual gate
Three different diagnoses, three unrelated fixes, one identical number. Review wait is the most common answer, and it is also the cheapest to fix, which is a good reason to look there first.
What it misses
It only counts work that finished. Cycle time is measured on changes that shipped. Work that was abandoned, or is still open after three weeks, is invisible to it — and a team quietly accumulating stalled changes will show a perfectly healthy cycle time right up until someone counts the open branches.
It rewards small batches, which is usually right and sometimes not. Splitting work into smaller changes genuinely lowers cycle time and genuinely helps. Splitting work into smaller changes that individually do nothing also lowers cycle time. The metric cannot tell those apart.
Averages are useless here. Cycle time distributions have long tails, and one two-week change will drag a mean somewhere the team never was. Use the median for the typical experience and p90 for the pain.
It says nothing about whether the change was worth making. A team can halve its cycle time while shipping nothing anybody wanted. Speed metrics need to be read next to something about outcomes, or they quietly become the goal.
How to read it well
Watch the stages, not the total, and watch them as a distribution rather than an average.
Segment before concluding. Bug fixes, features and dependency upgrades have genuinely different natural cycle times, and a shifting mix will move the aggregate without anything about the team changing. A quarter heavy on maintenance work will look faster and mean nothing.
Read it alongside a quality signal — defect rate or change failure rate. Cycle time is trivially improved by reviewing less carefully, and the cost of that shows up somewhere else and later. On its own, a falling cycle time is not evidence of anything good.
Frequently asked questions
What is the difference between lead time and cycle time?
The clocks start in different places. Lead time starts when the request arrives — a customer asks, a ticket is filed — and ends when it is delivered, so it includes however long the work sat in a backlog. Cycle time starts when someone actually begins the work. Lead time is what the customer experiences; cycle time is what the team controls. A team with excellent cycle time and terrible lead time does not have a delivery problem, it has a prioritisation problem.
How is cycle time calculated in software?
Most commonly as the time from first commit on a branch to production deployment, broken into stages: coding, review wait, review, and deploy wait. Some teams start the clock when a ticket moves to in-progress instead. Either works, but the stage breakdown is where the value is — a single total tells you a change was slow, not which part of your process was.
Is cycle time the same as DORA lead time for changes?
They overlap heavily. DORA's lead time for changes runs from commit to production, which is what most tools actually mean when they say cycle time. The DORA metric has a defined benchmark set behind it; cycle time as teams use it day to day is usually the same measurement with a stage breakdown attached.
What is a good cycle time?
Under a day from commit to production puts a team in the range DORA associates with high performers, and under an hour is elite. But the stage breakdown matters more than the total: two teams at 48 hours, one spending 40 of them writing code and the other spending 40 waiting for a reviewer, need completely different interventions.
Related
- Pull request size Pull request size is how much a single pull request changes, usually counted as lines added plus lines deleted, sometimes with the number of files touched alongside it. It is the strongest available predictor of how long a change waits for review.
- Defect rate Defect rate is how many defects reach a given stage per unit of work — commonly bugs found in production per release, per change, or per period. The version worth tracking is the escaped defect rate: the share of defects that got past every check and reached a customer.
- Read: Lead time for changes measuring development velocity →
- Read: Complete guide dora metrics engineering teams →