Brook Perry
Head of Marketing
For most software developers, there is a constant push to deliver products faster. One popular way to understand how fast developers perform is by looking at cycle time, which measures how fast a team goes from starting work on a new feature to getting it out to users. But there’s a big question: Is keeping an eye on cycle time as helpful as people say?
Cycle time simply tracks how long it takes to get a piece of work from the start line to the finish line – from the moment a team begins working on a new update to the moment it’s in the hands of the users. It’s like timing a runner to see how fast they can complete a race. The idea is to see how quickly and efficiently a team can turn ideas into updates that people can use. Yet, as we take a closer look, it’s worth asking if focusing so much on cycle time is the right way to speed up and improve how we make software.
In this article, we’ll explore cycle time, why measuring cycles can be informative, and how it relates to measuring developer productivity.
Cycle time is how long it takes a software development team to ship or fix a new software feature through the entire software development lifecycle (SDLC). Specifically, it measures the duration from picking up a feature sourced from customer requirements to delivering it into production—and all the steps in between (design, development, testing, and deployment).
Cycle time has become a popular, simplistic measure of team productivity. It is not limited to software engineering. Other fields, such as manufacturing, also use this term to measure the time taken to create a deliverable, like producing a product or fulfilling an order.
In software, there are multiple ways to break down the components of cycle time. One approach divides it into the following categories:
The time from customer request to pick-up of the feature (i.e., its inclusion in a product roadmap or an agile sprint)
How long it takes from pickup to the start of deployment (encompasses design, development, and testing)
The time from feature check-in to the start of code review
The duration of a code review
How long it takes to promote the new code to production so it’s available to customers
With modern Continuous Integration/Continuous Deployment (CI/CD) pipelines, many teams deploy application changes multiple times a week. Many deploy multiple changes a day.
A long cycle time (weeks or months) can signal that something is amiss with a team’s software development processes. Delays between conception and deployment slow down an application’s velocity, extending the time it takes to deliver feature enhancements to end users.
Long cycle times can also demoralize development teams. For example, if it takes three days of intense labor to promote a change to production, developers can become frustrated to the point where they dread pushing changes. This creates a negative developer experience, which can lead to lost productivity and accelerate team attrition.
So, what factors can lead to long cycle times?
If a team is suffering from long cycle times, chances are the cause is a combination of two or more of these factors.
Developer productivity cannot be solely measured by cycle time. In fact, it’s not the most reliable measure either. However, if your cycle times are increasing and causing obstacles to your overall ability to deliver software, then there is a high probability that you have significant issues with your overall software delivery process.
Here are some steps to take if you begin to notice lengthening cycle times:
Begin by comprehensively understanding the causes of delays. This involves gathering both quantitative and qualitative data. For quantitative insights, capture critical metrics related to software delivery performance. For qualitative insights, engage directly with your developers to identify where they perceive bottlenecks and inefficiencies in the development process.
Once you’ve collected feedback and data, analyze it to pinpoint the issues that, if addressed, would most significantly reduce cycle times. Focus on the areas where improvements can have the most substantial impact.
Consider adopting an agile development process. Break down larger features into smaller, manageable work items that your team can address within shorter cycles, such as two-week sprints. This approach can help in isolating and addressing issues more rapidly.
Enhance the code review process by either upgrading your pull request review tools or better integrating code review duties into your project scheduling. Aiming for quicker code review pick-up times and completion can significantly reduce cycle times.
Encourage and enable developers to set aside meeting-free and “do not disturb” periods. This dedicated focus time can help developers maintain a state of flow, improving productivity and efficiency.
Identify and fix any tooling problems highlighted by your developers or metrics analysis. Improving the tools your team uses can remove unnecessary obstacles and streamline the development process.
Improve your testing processes by integrating more effective tests, such as regression tests that address areas previously known for deployment or build failures. Also, consider removing or improving flaky tests that contribute to unpredictability in your build process.
After addressing the significant issues in their software development processes, some teams focus on cycle time as a key productivity metric. In our experience, however, this is a mistake. It is not appropriate to evaluate developers’ productivity and performance solely based on their cycle time.
Once you’ve dialed in cycle time, making small improvements measurable in hours doesn’t do much to deliver additional value. Creating arbitrarily smaller units of work may create a nice downward trend line on a quarterly report to senior management. But how much additional value is that delivering to your end-users?
Part of the problem is that cycle time is an incomplete metric. It measures only how long it took to deliver a certain set of functionality; it doesn’t track how much you delivered.
The software industry has tried to quantify units of software delivery for decades, trying everything from lines of code to velocity points. None of these can provide an accurate, objective measure of work completed because the labor required for any given output unit varies dramatically from task to task. 100 lines of code can represent an hour’s work, whereas five lines of code may have taken a full day of research and testing.
At a certain point, focusing on cycle time yields diminishing returns. Leaders may end up pushing teams to move faster without delivering more. Especially if you’re not able to quantify throughput or the amount of work delivered, decreasing cycle time beyond a reasonable timeframe may not be an accurate indicator of improvement in your software process.
Once you’ve dialed in your deployment times to weeks or days, we recommend focusing on other drivers of deployment velocity and developer productivity. These may include reducing technical debt, increasing collaboration, improving the local development experience, or providing your teams with clearer direction.
DX can reduce time waste in software development by providing deeper insights into the factors that impact cycle time and overall productivity. One of the key outcomes of implementing DX25 is minimizing wasted time, which directly addresses the inefficiencies highlighted in the cycle time discussion.
With tools like DevEx 360, DX captures both qualitative and quantitative data, offering a comprehensive view of the developer experience. This tool helps identify specific areas where delays occur, such as long code review times, tooling issues, or excessive technical debt. By pinpointing these bottlenecks, DX enables teams to implement targeted improvements that streamline the development process.
Additionally, Data Cloud unifies metrics across various sources, providing a holistic perspective on how different factors influence cycle time. This integration allows organizations to understand the root causes of delays and address them effectively. By enhancing code review efficiency, facilitating focused work time, and resolving tooling issues, DX helps teams reduce cycle times without compromising quality.
By leveraging DX, organizations can move beyond tracking cycle time to understanding the underlying reasons for delays and inefficiencies. This comprehensive approach ensures that improvements are meaningful and sustainable, ultimately leading to faster delivery, higher-quality software, and a better developer experience.