Traditionally, software leaders use cycle time
to refer to the time between
starting and delivering software.
More specifically, it's the time between an engineer beginning work on an
issue/feature and when that code is finally deployed to production and accessible
to users. Historically, this definition has arisen from a siloed view of software
development. Engineering leaders talk about the cycle time that affects engineering,
but they don't include the planning cycle time that the PMO contributed before
the project was handed off to the engineering org. Ultimately, this widely accepted
definition of cycle time doesn't fully capture every stage of the software development lifecycle.
We've seen how powerful it can be when teams collaborate rather than work in silos, so we recommend including the planning stage when measuring cycle time. By measuring cycle time in this way, you capture the full efficiency of your end-to-end process, which can help you focus on finding and fixing inefficiencies across the full lifecycle of your software – not just one part of it.
A new perspective on cycle time
CYCLE TIME
/ˈsīk(ə)l/ /tīm
noun
- The elapsed time between starting to work on an idea and delivering to production.
- A determining factor in whether organizations can meet business demands while delivering value to customers.
This new understanding of cycle time covers the entire software development lifecycle and accounts for the time invested in planning what actions to take to ship an idea. The planning stage of the software development lifecycle is one of the most crucial components, because it builds the foundation for workflows, project management, and resource allocation.
Cycle time is a metric that measures the amount of time in a process between the start, which often begins with an idea, and the end when it’s finally in the hands of customers.
Reducing cycle time is a competitive advantage, and this new perspective enables teams to take an end-to-end approach to rapid delivery.
Why you should reduce cycle time
Since software touches nearly every aspect of daily life, reducing the time between thinking of an idea and having the code in production is vital to providing value to customers. Maintaining velocity is an important step in listening to customers and meeting business demands. Because the market moves so quickly, organizations must find ways to simplify processes to empower teams to focus on delivering value to customers faster. When teams aren’t picking through tangled processes, they can quickly ship code and innovate to create features that customers want.
“Cycle time compression may be the most underestimated force in determining winners and losers in tech.” — Marc Andreessen
When organizations experience long cycle time, they risk losing market share. Since competitors are faster to market and can rapidly respond to customer needs, organizations with slow cycle time are left behind to perfect the past needs of users. Organizations face lost revenue and opportunities, since they’re unable to react quickly to changing market needs. A build-up of technical debt and rising costs make problems worse, and organizations are forced to play catch-up with their competitors.
Organizations that rapidly deliver see an increase in the number of projects and budgets that stay on track, with developers spending more time delivering new functionality rather than fixing defects, and faster response to constantly evolving customer needs.
If organizations want to differentiate their software and gain market share, reducing cycle time should be a business imperative.
How to start
There are several ways to reduce cycle time, but the two most immediate ways to rapidly see your ideas in the hands of customers is to increase visibility and adopt a CI/CD approach to development.
Visibility
Teams require end-to-end visibility and traceability of issues throughout the software development lifecycle – from idea to production – in order to ship features at the speed customers demand. An increase in visibility reduces silos and facilitates collaboration, ensuring that everyone is aware of what’s going on and where they’re needed. To give you an example of the power of visibility, let's take a look at GitLab. If we calculated the average time to deliver all the features in 11.8, it would be 250 days. With an increase in visibility, we're able to see that some features we shipped took only 30 days, while others were in our backlog for three years. Since we're on a monthly release cadence, knowing that many of our features were started and delivered in 30 days helps us determine whether we're quickly delivering value to our customers.
Continuous integration and continuous delivery
Quickly delivering what customers want requires a modernized software development lifecycle that saves time, effort, and cost. According to a 2017 Forrester Wave report, “CI enables software development teams to work collaboratively, without stepping on each other’s toes, by automating builds and source code integration to maintain source code integrity.” A continuous delivery approach automates testing and deployment capabilities so that software can be developed and deployed rapidly and reliably.
Are you ready to reduce cycle time? Just commit.