Cycle time — an evolutionary metric

As we are moving to micro services architecture and agile way of working, we need to find a way to measure our engineering efficiency in order to evaluate our approach as early as possible in the software development cycle. Metrics are one way of such evaluation and one of such metric is cycle time.

Cycle time

Before we talk about this metric further, lets try to understand what cycle time is.

What is cycle time?

Cycle time is the time elapsed between the initiation and completion of a unit of work.

The cycle time starts when a developer starts working on a new feature and expires when that feature is running in a production environment.

Cycle time is the continuous delivery measure of engineering efficiency. Reduction of cycle time is one of the key goals of continuous delivery.

Why cycle time?

  • Cycle time as a continuous delivery measure is used to evaluate one of the characteristics of evalutionary architecture called incremental change as mentioned by Nead Ford in his book Building Evolutionary Architectures. The lesser the cycle time, it’s quicker to make incremental change.
  • On the contrary, if cycle time lengthens, it slows down how fast the project can deliver new generations, which affects architecture evolvability.
  • The evolution speed (velocity) is propotional to cycle time. The developers can’t evolve their systems faster than the project’s cycle time.
  • In other words, the faster teams can release software, the faster they can evolve parts of their system.

Cycle time is therefore a critical metric in evolutionary architecture projects.

Hope this article helps to understand cycle time and use it as an important metric for your next project.

Happy Reading.

--

--

Amit Kumar Dube (अमित दुबे)

@AmitDubeDev | Professional GCP Architect | Terraform ACE | Lead Infra Consultant | Hindi Speaker