How is Cycle Time Calculated?
How is Cycle Time Calculated
Cycle time calculates the average time it takes for engineering tasks to go through the different phases of the software delivery process, from the first code commit to code release (LinearB breaks this work into 4 phases: coding time, pickup time, review time, and deploy time). Being able to quickly iterate and push code to production is a valuable indicator of team performance and productivity. Cycle time is calculated by combining the average time recorded for each phase of work. This allows you to see where bottlenecks and slowdowns are occurring in your development process
What Is Coding Time?
This measures the time from when the first commit is made to a branch to when a pull request is issued. Coding time can also be measured from when a Jira ticket for a branch is set to "in progress". To enable Jira-based coding time, read more here: JIRA-based Coding Time
What Is Pickup Time?
This measures the time between a pull request is issued (or made live from draft) to when the first comment is made on a PR, indicating code review is started.
- Note that if a PR is merged/approved without comment, LinearB will mark pickup time as 0 for this PR.
What is Review Time?
This measures the time between when code review(s) have begun and when a PR is merged. The first comment of a code review will change the pull request state to "In Review" and begin review time.
- The first comment on a PR will need to be from any user who did not create the PR. LinearB does not recognize comments by the user who created the PR when changing from pickup time to review time.
- If a PR is merged/approved without comment, LinearB will set this branch's pickup time to 0 and count the time between when the PR is issued to when it is merged as review time.
What is Deploy Time?
This measures the time between when a PR is merged, and when it is released. LinearB listens for release tags and maps these tagged releases back to branches. You can customize how LinearB detects a code release, instructions can be found here.
Things to know about Cycle Time
Cycle time tracks all work for a given iteration or date range.
Since we sum the average cycle time by phase, carryover and incomplete branches are included in your cycle time. For example, during a sprint you may work on 5 branches, 2 branches progress through to code review, and 3 additional branches are deployed. When cycle time is calculated, the time spent in coding time and pickup time for the 2 unreleased branches will be included in your cycle time calculation, as well as the time spent through all phases of development for your 3 deployed branches.
Cycle time does not track individual performance.
Development is a team effort. Regardless of if 1 team member or 3 work on a branch, cycle time is based on the progress of the branch as a whole.
Branch progress is not counted in cycle time until a phase is complete.
Our cycle time metric does not calculate time spent in a phase until the phase is complete. For example, LinearB will not include the coding time of a project until a pull request is issued. A project that is taking a long time in any phase will not affect the overall cycle time calculation until that phase completes. You may occasionally see jumps in your cycle time calculation if a long-running coding project, or hanging review, finally advances to the next phase of cycle time and the time spent in that phase is added to your average calculation.
Cycle Time: Dashboard View
You can see the cycle time from the dashboard page for your whole organization or team. Here, cycle time is calculated using active branch data for the iteration or week that the dashboard is displaying. The colors of these segments range from green to red based on community benchmarks. If a full cycle time calculation is not available, such as when deployment is still pending, you will see an asterisk indicating "data collection in progress".
Change your dashboard to see different teams' activity or different time-frames in order to see cycle time calculations specific to your teams or iterations. Selecting a team will calculate cycle-time for branches that the selected team members have worked on (committed code, created pull requests, submitted code reviews).
Individual Branch Cycle Time: Activity View
Click on the Activity tab to see a cycle time breakdown of individual branches. The colors of these segments range from green to red based on community benchmarks. Cycle time here is calculated using the timestamps as an individual branch moves from coding to deploy.
Cycle Time Over Time: Metrics View
From the Metrics tab, click on the Delivery dashboard to see a breakdown of your cycle-time over time. You can also add a cycle time widget to any of your custom reporting dashboards. You can focus a metrics report on specific teams, and also customize the date range displayed. The delivery dashboard will break out overall cycle time, and also show you individual breakdowns of coding time, pickup time, review time, and deploy time.
Learn More
Check out the below blog posts to see more information about cycle time.
Streamlined Engineering Data Leads To 55% Decrease In Cycle Time At Intsights