The importance of cycle time in software development


Ticking away the moments that make up a dull day
Fritter and waste the hours in an offhand way…

Pink Floyd, “Time” – Dark Side of the Moon, 1973

The importance of cycle time in software development applies to a massive price tag attached to a deep philosophical matter. Time is money. That’s about the extent of today’s philosophical musings. You can always make or print more money, but you can’t make more time. Or can you? Maybe, maybe not. But, you can spend time, waste it, or invest it. A holistic focus on your cycle time can help you push your team’s efficiency into an upward spiral. We’ll finish off by taking a look at how an AI-Assistant can help you 10x your efforts to improve cycle time, too! 

What is the meaning of cycle time?

Cycle Time in Agile is best summarized as the time between when you start to work on and finish work on a task. It does not include the time where the task was created and sat in a queue waiting for work to be started.

Date Finished - Date Started = Cycle Time (in days or hours)

Unfortunately, there are a few complications in our definitions. There is a difference between a task that is done or finished and delivered and actually being used. A task that has been delivered but doesn’t work/function is not yet finished. Thus, some developers may focus on cycle time from an end-to-end perspective. So, it is important to communicate what the definition of done or finished is to your team.

For the most part though, we’re mostly concerned with the Average Cycle Time:

Average Cycle Time = Average Work in Progress / Average Throughput

How’s Cycle Time Different from Lead Time?

In comparison, Lead Time in Agile includes cycle time plus the time it was spent in the work queue (Jira or other project management software) before anyone started working on it.

Date Finished – Date Task Queued for Work = Lead Time (in days or hours)

A steadily increasing lead time means you’re adding work faster than it can be completed. It indicates that a) you need to improve your cycle time, b) hire more developers, or c) implement a Work in Progress (WIP) limit. A WIP Limit could be suitable if your team is engaged with software intended for your company’s internal use. But it’s not such a good idea if your team develops software for clients. Saying you can’t do any more work can reflect poorly on your company, unless it’s a temporary, short-term issue. It’s not likely to make your C-Levels happy either.

How Does Takt Time Fit In?

Taking time cycle metrics further, Takt Time is a little different as it is based on customer demand. Takt Time “measures the average time interval between the start of production of one unit and the start of production of the next unit when items are produced sequentially.” It’s used to determine how many tasks need to be completed in a timeframe to meet customer demand. With it, you can tell whether you are meeting demand or over/under producing.

Takt Time = Net Time available to work during a period / Customer demand in # of units per period

If you’re overproducing, there’s waste as someone’s sitting idle.

If you’re underproducing; your team may start sacrificing quality in order to meet demand.

In a manufacturing environment, Takt Time is useful for synchronizing work processes to minimize waste of time and resources. At Amazon, for example, it applies to optimizing the right number and ratio of people (or machines) receiving, stowing, picking, sorting, and packing customer orders to keep pace with the rate they are received. Each of these positions has a rate or quota they need to hit so everything runs smoothly.

For a software development company, Takt Time seems best applied to determining the cadence sales and marketing needs to have to keep developers busy and/or grow the business.

A substantial amount of effort is involved on their side of the equation just to generate a qualified lead and nurture it into an actual work order. It’s likely that they will have to call upon engineering to assemble proposals for their clients – more detailed software requirements, product roadmaps, cost estimates, etc.

What’s most important - Takt time vs cycle time vs lead time?

All three measurements are important, in different degrees to different stakeholders. For software engineering managers, cycle time is the most important measurement to focus upon. By improving cycle time, you improve all other time metrics. Getting more things done faster automatically reduces Lead Time and Takt Time.

A Focus on Cycle Time Demands Equal Focus on Quality

Returning to our definition and debate on what the definition of done is… is important because if we’re focused on Agile Cycle Time, End-to-End Cycle Time might wrap around and bite us in the butt. A task delivered with bugs or defects will require additional work to fix – and it will be far less convenient (and efficient) to do so. This mandates rigorous testing, keeping to your coding standards, and continuous tracing of performance metrics – code churn, defect density, and code coverage. A fixation on quality must be intrinsic to all work processes.

Why is Cycle Time So Important?

There are a lot of reasons to love LOVE improvements to cycle time. If you’re with a startup, improving cycle time means you can get your product to the market faster. If your startup develops into an SMB or Enterprise, it will continue to pay dividends by:

  • Improving cycle time can allow for more projects and clients over time.
  • Existing customers will wait less for fixes – improved product satisfaction.
  • Happier end-users increase the client’s profitability – to work with you longer.
  • More customers can lead to more teams and new jobs and career growth potential.
  • Efficient teams are happy teams, developers and what they know will stay longer.
  • Improved retention equates to lower inefficiency in onboarding new team members.
  • Rinse and repeat the cycle over and over again.

Focusing on Cycle Time correlates to a focus on process vs. results. Yes, it is concerned with results, except process is the means whereby you can consistently produce good results.

The Process is Everything - and Everything is in The Process.

Nothing is immune from the process either. This isn’t double-speak, but extends from the discussion on Takt Time above using the example of Amazon. It’s been 15 years, but one of our team members worked at Amazon and still speaks of it in glowing terms for its intense focus on process.

It’s hard to improve what you can’t measure. Amazon measures everything, has a quota for every work station. For a new hire, that quota may seem absurdly high. Over time (~3 months), most people are consistently able to hit quota, and high performers find it easy to do so.

One of its Six Sigma projects focused on lost time due to papercuts. Oh yeah, that’s what immediately pops into my mind when I think about improving efficiency. Understanding that at that time, Amazon had several Six Sigma teams working on several projects at a time, it sort of does make sense.

Cost of papercuts =
# of papercuts per day * 15 min. lost time each * avg. $15 hour wages * 208 days / 60 minutes

Just 20 papercuts per day Amazon-wide equates to $936,000 worth of lost time annually due to papercuts. That may seem trivial, but at the time Amazon was making mere pennies per product sold. This project led to a change in the type of paper used for generating pick lists.

How do I improve my cycle time in Agile?

A lot of people don’t like working at Amazon, and to be sure – it is an intense work environment. But, one can’t dispute the results of Amazon’s way of doing things. They actively measure and try to improve everything – from a largely holistic perspective. Everything is connected.

Your choice of branching strategies can impact cycle time. There are more processes involved in the GitFlow than the streamlined GitHub Flow. Keeping the size of your Git repository under control can have an impact, too. Coding standards to increase readability for your team across the lifetime of your project will help. Ensure timely code reviews by planning them in the development process. If a developer has already moved onto another task, they’ll have to shift their thinking to fix previously written code.

Software development analytics like Gitential make it so you can automatically track how every member of your team is doing across a wide range of performance metrics. This data can help you identify factors contributing to inefficiency and measure the effectiveness of code reviews and training programs. It can also help you identify who is looking for a new job.

Continued Education and Mentoring Programs. The productivity difference between a high and average performer can range up to 10 to 1. There’s no shortage of programs designed to assist anyone with the desire to be a higher performer. Your company, software engineering managers, and team leaders have a vested interest in facilitating the development of their team members.

Team optimization. Know what your developers do best and assign tasks accordingly. Just because one of your developers is awesome at iOS applications doesn’t mean they’re equally awesome at Android applications. Automated performance analytics, used over time with several projects can provide you the data to guide your tasking decisions. Just like there’s fantasy football – you can use it to assemble your own software development dream team!

How Can an AI Assistant Help 10x Cycle Time Improvements?

Gitential is in the process of upgrading its software development analytics into an AI Assistant. This encompasses numerous features and enhanced capabilities to help teams improve their software delivery cost and performance. Arguably the most exciting game-changer is its ability to provide actionable, data-driven insights to improve delivery – On-Demand. 

Functionally, an AI Assistant makes it possible for developers and managers alike to ask questions and receive Next Best Actions for improvements. The hours spent evaluating analytics is streamlined to minutes.

This leads to consideration of an entirely new metric, “Cycle Time for Insights” – or how fast you can come up with actionable insights that can help your team – or specific developers. Digging through analytics can be hit or miss for finding an actionable insight. AI, however, is exponentially faster in finding complex patterns that can help you to:

Boost Team Performance

See by org/project/team/developer level where the greatest improvements can be made - and how to make them.

Optimize Resource Allocation

Identify the best combination of developers for a project - like best Python or C++ developers with additional metrics like Pull Request Commenting rates or lowest defect density.

Enable More Accurate Planning and Budgeting

Use historical data to compare with project requirements and the relative skill of developers in specific languages. Help to assess whether to outsource for a Swift specialist or provide training for your best Objective-C developer.

Automate Time-Consuming Tasks

Complexity of these calculations increase by team size. Hours of research are streamlined into minutes.

Improve Delivery Processes

Where are your bottlenecks - and actionable insights on how to fix them.

Better Align Teams with Company Objectives

Know where your team is at compared to strategic interests - Delivery speed? Quality? Budget?

Real-Time Awareness

Receive alerts 24-7-365 whenever key indicators exceed the standards you set.

More on AI for Improving Software Delivery

Post updated: February 06, 2022

November 2022 Release Notes

Here’s what’s new in our November 2022 Release Notes:

* Improved data exports for our custom solutions;
* Stabilized backend environment for smoother workspace data refreshes;
* Flexible pagination;

Read More »

Did you like our content?

Spread the word

Subscribe to Our Newsletter

Don't miss our latest updates.
All About Software Engineering Best Practices, Productivity Measurement, Performance Analytics, Software Team Management and more.

Did you like our content?

Spread the word

Subscribe to Our Newsletter

Don't miss our latest updates. All About Software Engineering Best Practices, Productivity Measurement, Performance Analytics, Software Team Management and more.