Want to know how your team is performing? If you only had one metric that you could use for this, which one would it be and why would it be cycle time? You choose a different metric? Don’t worry in the following I will (hopefully) convince you why cycle time is the ideal metric to measure the heartbeat of your development team.
First things first: What exactly is cycle time? To make it short: cycle time measures the amount of time that has passed from the first to the last step. It’s a concept which is borrowed from lean manufacturing, where it’s used for exactly the same. In software development cycle time can be measured in different areas. The cycle time of the whole project can be measured but it can also be broken down into smaller steps.
First you can start by looking at the time that it takes from writing the first line of code to the last one. This is known as the Coding Time. After that the pick-up time can be measured. This refers to the time it takes from a Pull Request being committed to the start of the review process. Basically, how long the Pull Request is not being worked on. Next you can examine the time it takes from the first review action to the finished review. And the last step you can look at is the deployment time, meaning how long it takes for the finished product to be available for use for the customer. (Need to know more about different coding metrics? Check out our Glossary page!).
Careful that’s not all that needs to be considered when talking about cycle time. For instance it’s not useful to compare the cycle times of two different projects. Not always at least. If the one project is a lot smaller, it will obviously take less time to finish. It’s trivial. Also another thing you might want to consider here: Quality. This one is also obvious. A project that is done with very little quality will most likely be delivered faster than a high quality one. Here defects per size can be used to determine the quality. Last thing that should be looked at when talking about cycle time: time actually spent on the project. Most of the time not 100% of the working hours will be devoted to a single task. Often there are switches between projects, fixing of bugs of prior releases, vacation etc. These interruptions aren’t measured all the time but will influence productivity and ultimately the cycle time.
Now that we have established what cycle time is and what components need to be considered, the next question arises: Why should it be used? Well to measure the time it takes from start to finish. Of course, but it also gives indications to numerous other things. A decreasing cycle time is also an indicator of a healthy work environment from many different perspectives.
First it shows that the underlying infrastructure is a strong one. The implemented processes, equipment and general structure are one of the main influencing factors to the length of the cycle time. Also indicates good DevOps processes like continuous deployment.
Second, a decreasing cycle time marks a great reviewing culture. Code review is often seen as an annoying task and most of the time not the favorite thing to do. When the review time is cut shorter it shows that there are less blockers and that the team atmosphere is a good one. Communication, which we all know is key, also needs to be good in order to cut the review time.
Decreasing complexity of the reviews also has an impact on the cycle time, since this enforces an agile work environment. This shows as well that the developers are making the smallest possible pull request, which is highly recommended in order to keep everything flowing and avoid the feeling of getting stuck. For Pull Requests, bigger is not automatically better.
Third, a decreasing cycle time highlights a getting-things-culture, which is a huge motivation booster. In order to cut the time, developers need to decrease the distraction and keep up their focus. Enforcing that the projects are finished end to end also reduces the work in progress.
Now to the last question: How do you get a overview of your cycle time? Look no further, you are already on the right page. Our metrics include cycle time and many more, so you can stay on top of your software development projects!