Engineering velocity is one of the key elements to deliver valuable and innovative ideas to the customers. That is speed, but with a purposeful direction.
Lead time is defined as: the amount of time spent between the moment work begins (on a feature, product or project) until it’s delivered to the end customer.
In the following sections we look at how short lead times make you competitive and generate real value by exploring the impacts of continuous delivery and squads.
We analyze two ways with which you can reduce the lead time within your software delivery pipeline: continuous delivery and a team-based organizational structure.
Continuous delivery refers to the process building, testing and delivering software improvements to existing code or user environments in smaller increments with the help of automated tools. Software can be released at any time, and the team will always be ready to deliver to production.
Continuous delivery has two main advantages: 1) features and bug fixes are being released more frequently, and 2) code releases are smaller.
Release code more often
The problem of releasing big periodic updates is:
This doesn’t mean that a significant new feature can’t occupy your team for weeks or months. But it doesn’t need to be delivered all at once. High-performance software organizations structure big chunks into meaningful small tasks. The benefit? They can then be delivered the same day.
Embrace smaller releases
Big releases tend to blow up even though rigorous testing has been done beforehand. When you combine multiple features you exponentially increase the potential for errors. This increases the lead time of your team or organization, made worse by that code reviews become more tedious, time consuming and costly.
If you adopt continuous delivery, you start shipping each feature separately, which means your pull request size will automatically decrease. Smaller releases are less complex than bigger ones, meaning they have less potential for trouble. And if something fails, you know the where, when and what.
How does continuous delivery reduce lead time?
Many software engineering organizations have adopted mission-based team structures. These are also known as pods or squads. Traditionally, engineering teams worked strictly within their specific roles. Nowadays, squads focus on one aspect of the company (e.g. a feature, a customer group or a project.)
Mission-based teams allow for decision making to be pushed towards those who are directly involved with the problem they are solving. Allowing engineers to work more independently, and make decisions faster.
Working in mission-based teams will reduce time spent in the individual stages of the software delivery pipeline. For example, in the review stage everyone is familiar with the purpose of the code. And in the work in progress stage, less productivity and focus is lost by not sparsely multitasking.
"Keeping the ratio of WIP to contributors below 1.0 helps us decrease cycle time by minimizing multitasking." - SoundCloud
Athenian’s main goal is to help you measure and decrease your lead time. It is crucial to understand how your lead time is broken down because it will help you identify the areas of the software delivery pipeline that require attention.
At Athenian we measure lead time as the average time for pull requests to go from the initial commit until they are released. It sums the time pull requests spend in all the stages of the software delivery pipeline.
Using Athenian you can quickly check and analyze live key metrics, compare it to past performance and decide how to move forward.
Decrease your bottlenecks: