Deconstructing Cycle Time in Software Development

Numerous metrics are available for monitoring software development progress and generating reports that indicate the performance of your engineering team can be a time-consuming task, taking several hours or even days. Through our own research and collaboration with industry experts like DORA—and Gene Kim, co-author of 'Accelerate' and a leading expert in software engineering metrics—we suggest concentrating on cycle time, also referred to as a lead time for changes, which we consider the most crucial metric to monitor. This measurement indicates the performance and efficiency of your teams and developers. In this piece, we will explore what cycle time entails, its significance, methods for calculating it, and actions to enhance it.

What is Cycle Time?

Cycle Time in software development denotes the duration between an engineer’s initial code commit and code deployment, which some teams also refer to as lead time. This measurement indicates the time taken to finalize a specific development task. Cycle time measures the speed and efficiency of development teams, serving as a valuable metric for deducing a development team’s process speed, productivity, and capability of delivering functional software within a defined time frame. However, cycle time measures should be considered alongside other key metrics to provide a comprehensive view of the software engineering process.

Leaders who measure cycle time gain insight into the speed of each team, the time taken to finish specific projects, and the overall performance of teams relative to each other and the organization. Moreover, optimizing cycle time enhances team culture and stimulates innovation and creativity in engineering teams. Cycle time measures are among the key metrics in software engineering.

However, cycle time is a lagging indicator, implying that it confirms ongoing patterns rather than measures productivity. As such, it can be utilized as a signal of underlying problems within a team. To drive meaningful improvements, it is important to take a comprehensive view of the entire process, integrating multiple metrics and feedback to accurately assess and improve software delivery.

Since cycle time reflects the speed of team performance, most teams aim to maintain low cycle times that enhance their efficiency. According to the Accelerate State of DevOps Report research, the top 25% of successful engineering teams achieve a cycle time of 1.8 days, while the industry-wide median cycle time is 3.4 days. On the other hand, the bottom 25% of teams have a cycle time of 6.2 days. Improvements in cycle time are a result of optimizing the entire process, and improving cycle time is a key goal for development teams.

Screenshot 2024-03-16 at 1.14.10 AM.png

How to Measure Cycle Time?

Measuring cycle time using Jira or other project management tools is a manual and time-consuming process, which requires reliable data hygiene to deliver accurate results. Unfortunately, most engineering leaders have insufficient visibility and understanding of their teams’ cycle time. Typo provides instantaneous cycle time measurement for both your organization and each development team using your Git provider. Our methodology divides cycle time into four phases:

  • The coding time is calculated from the initial commit to the creation of a pull request or merge request.
  • The pickup time is measured from the PR creation to the beginning of the review.
  • Review time is calculated from the start of the review to when the code is merged, and
  • Merge time is measured from when the code is merged to when it is released.

Tracking deployment frequency alongside cycle time provides valuable insights into the efficiency of your release process, helping to identify workflow bottlenecks and optimize how often code is delivered to production.

The subsequent phase involves analyzing the various aspects of your cycle time, including the organizational, team, iteration, and even branch levels. For instance, if an iteration has an average review time of 47 hours, you will need to identify the branches that are taking longer than usual and work with your team to address the reasons for the delay. By examining these metrics, you can uncover process improvements that enhance development efficiency and quality.

Measuring cycle time and deployment frequency together can yield valuable insights for continuous improvement, enabling teams to optimize their workflows and deliver better results.

What Causes High Cycle Time?

Although managers and leaders are aware of the significance of cycle time, they aren’t necessarily armed with the information necessary to understand why the cycle time of their team may be higher or lower than ideal. Leaders may make decisions that have a beneficial impact on developer satisfaction, productivity, and team performance by understanding the processes that make up cycle time and exploring its constituent parts. Waiting periods, such as time spent in queues before work begins, can significantly increase cycle time. Cycle time could increase as engineers wait for builds to finish and tests to pass before the PR is ready for review. Technical debt can also contribute to longer cycle times by introducing additional complications and delays in the build and test process. When engineers must make modifications following each review and wait for a drawn-out and delayed CI/CD that extends the time to merge, the process becomes even more wasteful. This not only lengthens the cycle time but also causes contributors to feel frustrated.

Large PRs

The time it takes to open a PR increases because large-sized PRs take longer to code and, as a result, stay closed for too long. Often, these large PRs result from implementing a new feature that was requested by a client or stakeholder, which can add complexity and extend the development timeline. For instance, the majority of teams aim for PR sizes to be under 300 changes, and as this limit rises, the time to open the PR lengthens. Even when huge PRs are opened, they are often not moved to the code review stage because most reviewers are reluctant to do so for the following two reasons:

A high PR indicates that the reviewer put a lot of effort into the review. To accommodate a significant code review, the reviewer must plan and significantly restructure their current schedule. It takes heavy and intense effort.

Huge PRs are notorious for their capacity to add a number of new bugs. The ultimate goal is to have the code delivered and deployed to production efficiently, ensuring that users can access the completed work as soon as possible.

Lack of Documentation

Code comments and other forms of documentation in the code are best practices that are regrettably frequently ignored. Reviewers and future collaborators can evaluate and work on code more quickly and effectively with the use of documentation, cutting down on pickup time and rework time. Integrating automated testing practices into the workflow is also crucial, as it helps maintain code quality, catch issues early, and reduce cycle time. Coding standards assist authors in starting off with pull requests that are in better shape. They also assist reviewers in avoiding repeated back and forth on fundamental procedures and standards. When working on code that belongs to other teams, this documentation is very useful for cross-team or cross-functional collaboration. Various teams adhere to various coding patterns, and consistency is maintained by documentation.

Teams can greatly benefit from a readme that is relevant to a codebase and contains information about coding patterns, and supporting materials, such as how and where to add logs, coding standards, emit metrics, approval requirements, etc.

High CI/CD time

Cycle time could increase as engineers wait for builds to finish and tests to pass before the PR is ready for code review. When engineers must make modifications following each review and wait for a drawn-out and delayed CI/CD that extends the time to merge, the process becomes even more wasteful. This not only lengthens the cycle time but also causes contributors to feel frustrated. Moreover, when the developers don't adhere to coding standards before entering the CI/CD pipeline can increase cycle time and reduce code quality.

Developers' Burnout

Engineers may struggle with numerous WIP PRs due to an unmanaged and heavy workload, in turn reporting lengthier coding and rework times. Reviewers are more likely to become overburdened by the sheer volume of review requests at the end of a sprint than by a steady stream of PRs. This limits reviewers’ own coding time as their coding skills start deteriorating and causes a large number of PRs to be merged without review, endangering the quality of the code. To address these challenges, teams can streamline code reviews with AI-powered PR summaries for faster, more efficient approvals and improved code quality.

The team experiences a high cycle time as reviewers struggle to finish their own code, the reviews, and the rework, and they suffer burnout. Reducing cycle time and workload not only helps prevent burnout but also significantly improves developer happiness and overall team morale.

Lack of Sanity Checks

When teams fail to perform simple sanity checks and debugging needs before creating PRs (such as linting, test code coverage, and initial debugging), it results in avoidable nitpicks during a code review (where the reviewer may be required to spend time pointing out formatting errors or test coverage thresholds that the author should have covered by default).

Code Review and Review Time

Code review stands as a fundamental cornerstone and transformative gateway in the software development lifecycle, directly influencing both the comprehensive quality assurance of the entire codebase architecture and the accelerated velocity at which innovative features and critical updates reach end-users across diverse deployment environments. Within the intricate context of cycle time optimization and workflow efficiency, review time specifically encompasses the critical period spanning from the moment when a pull request achieves readiness status for comprehensive evaluation to the decisive point when it receives final approval and undergoes seamless integration through the merge process. This pivotal phase can frequently evolve into a significant bottleneck that creates cascading delays, systematically slowing down the entire development pipeline and substantially extending overall cycle times if strategic management approaches and optimization techniques are not implemented effectively across the engineering organization.

How can teams achieve optimal review time performance while maintaining code quality standards? Optimizing review time emerges as an absolutely essential strategic imperative for engineering teams committed to accelerating development velocity and delivering substantial value propositions to customers with unprecedented speed and efficiency. Systematic delays in the code review process can manifest through several interconnected factors and organizational challenges: ambiguous ownership structures governing review task allocation, excessive competing priorities creating attention fragmentation across multiple concurrent initiatives, insufficient prioritization frameworks within the review queue management system, and inadequate communication protocols between development team members. When review time experiences prolonged extensions beyond acceptable thresholds, it not only dramatically increases the average cycle time metrics but simultaneously generates developer frustration, reduces team momentum, and creates negative feedback loops that compound workflow inefficiencies across the entire engineering organization.

What proven strategies can engineering teams implement to streamline their code review processes and achieve meaningful review time reductions? To comprehensively streamline the code review process and achieve substantial review time optimization, forward-thinking engineering teams can strategically adopt numerous practical methodologies and technological solutions that transform their development workflows. These include establishing crystal-clear expectations and service-level agreements for review turnaround times across different types of code changes, leveraging sophisticated automated tools and intelligent systems to highlight critical modifications and proactively flag potential issues before human review, encouraging a collaborative culture centered around prompt and constructive feedback mechanisms, and implementing comprehensive notification systems that integrate seamlessly with popular communication platforms and project management tools. Additionally, incorporating advanced code review notification systems into established communication infrastructures enables reviewers to maintain optimal awareness of pending requests while systematically minimizing idle time and workflow interruptions.

By strategically focusing on comprehensive review time optimization within the broader software development process ecosystem, engineering teams can systematically achieve shorter cycle times, dramatically improve production efficiency metrics, and enhance overall software delivery capabilities that drive organizational success. This holistic approach not only substantially boosts development speed and team productivity but also supports continuous improvement initiatives and delivers higher customer satisfaction levels, ultimately establishing code review as a critical strategic lever for engineering leadership committed to delivering exceptional software quality at unprecedented pace while maintaining rigorous standards and fostering collaborative team dynamics.

How Optimizing Cycle Time Helps Engineering Leaders?

So, now that you're confidently tracking cycle time and all four phases, what can you do to make your engineering organization's cycle time more consistent and efficient? How can you reap the benefits of good developer experience, efficiency, predictability, and keeping your business promises?

Benchmark Your cycle Time & Identify Problem Areas

Start measuring the cycle time and breakdown in four phases in real-time. Start comparing the benchmarks with the industry standards.

Once you've benchmarked your cycle time and all four phases, you'll know which areas are causing bottlenecks and require attention. Then everyone in your organisation will be on the same page about how to effectively reduce cycle time.

Set Team Goals for Each Sprint to Improve

We recommend that you focus on one or two bottlenecks at a time—for example, PR size and review time—and design your improvement strategy around them.

Bring past performance data to your next retro to help align the team. Using engineering benchmarks, provide context into performance. Then, over the next 2-3 iterations, set goals to improve one tier.

We also recommend that you develop a cadence for tracking progress. You could, for example, repurpose an existing ceremony or make time specifically for goals. ​

Automate Alerts Using Communication Tools Like Slack

Build an alert system to reduce the cycle time by utilizing Slack to assist developers in navigating a growing PR queue.

These pieces of data enable the developer to make more informed decisions. They respond to questions such as: Do I have enough time for this review during my next small break, or should I queue it?

Adopt Agile Practices

Many organizations are adopting agile methodologies. As they help in prioritizing continuous feedback, iterative development, and team collaboration. By adopting these practices, the team can leverage their coding skills and divide large programming tasks into small, manageable chunks. Hence, completing them in a shorter cycle to enable faster delivery times.

The most successful teams are those that have mastered the entire coding-to-deployment process and can consistently provide new value to customers.Measuring your development workflow with typo's Engineering Benchmarks and automating improvement with Team Goals and our Slack alerts will enable your team to build and ship features more quickly while increasing developer experience and quality.