The importance of cycle time in software development

Share on facebook
Share on twitter
Share on linkedin
Share on reddit

Run-through

Are You Using Modern Data Analytics to Optimize Your Business?

Modern data management is all-encompassing, at least to the extent that business intelligence managers and analysts can make it so. So, we all have some part to play in data management. No one said it is easy, but it is becoming easier. We have better tools to collect and analyze data. We have more tools and even digital assistants capable of automating more and more processes.

Read More »
Static and Dynamic Dashboards versus Digital Assistants - Who will win in today's contest?

Static versus Dynamic Dashboards and Digital Assistants – Who will win in today’s contest?

If you’re a business intelligence manager or even a software engineering manager, you probably love dashboards for providing a birds-eye view of your most important metrics.
But, are dashboards effective enough? Do you get the actionable insight you need? Granular details require some time to explore and relevant insights may not be readily apparent. We also feel sometimes that quick answers and actions are just an illusion. But then the emerging trend of digital assistants make us think future is right about to shine.

Read More »

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.

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 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 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. Ensuring timely code reviews by including 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!

About Gitential

Gitential helps you to improve the performance of your software development team based on their Git activities with actionable insights. Our advanced software development analytics provides developers with automated performance tracking of key metrics and easy to understand graphics. Given the importance of cycle time in software development, these metrics can help you to boost your team’s productivity, efficiency, quality and collaboration.

If you have any questions, please let us know at gitential@gitential.com. We welcome you to sign up for a free trial, no credit card is needed!

Are You Using Modern Data Analytics to Optimize Your Business?

Modern data management is all-encompassing, at least to the extent that business intelligence managers and analysts can make it so. So, we all have some part to play in data management. No one said it is easy, but it is becoming easier. We have better tools to collect and analyze data. We have more tools and even digital assistants capable of automating more and more processes.

Read More »
Static and Dynamic Dashboards versus Digital Assistants - Who will win in today's contest?

Static versus Dynamic Dashboards and Digital Assistants – Who will win in today’s contest?

If you’re a business intelligence manager or even a software engineering manager, you probably love dashboards for providing a birds-eye view of your most important metrics.
But, are dashboards effective enough? Do you get the actionable insight you need? Granular details require some time to explore and relevant insights may not be readily apparent. We also feel sometimes that quick answers and actions are just an illusion. But then the emerging trend of digital assistants make us think future is right about to shine.

Read More »

Did you like our content?

Spread the word

Share on facebook
Share on twitter
Share on linkedin
Share on reddit

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

Share on facebook
Share on twitter
Share on linkedin
Share on reddit

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.