How reducing your batch size is proven to radically reduce your costs
Do you work in an organisation struggling to do more with less? We come across many projects where organisations have tossed in additional resources to meet a looming deadline, pinching pennies from elsewhere and creating stress for all, without solving the underlying problem of how to deliver faster, cheaper and better.
If you want to deliver faster, cheaper and better, you need to reduce your batch size.
Working with small batch sizes (a batch is a unit of work that passes from one stage to the next stage in a process) has tremendous impact. It improves flow and lets us deliver quickly and reach project completion earlier.
In software development terms, a traditional process means a team will define all of the project’s requirements first, complete all of the design next and then finish all of the coding before testing.
In contrast, working in small batch sizes means completing, for example, 10% of the design, the development and the testing before moving on to the next 10% of the product’s features.
Why is batch size important?
There are very good reasons why batch size is important.
First up, when we work with small batch sizes, each batch makes it through the full lifecycle quicker than a larger batch does. We get better at doing things we do very often, so when we reduce batch size, we make each step in the process significantly more efficient.
Smaller batch sizes also mean you’ll deliver faster and reach project completion earlier. Since work on a feature isn’t complete until it is successfully running in production and generating feedback from customers, large batch sizes delay that essential feedback.
Batch size can be one of the most difficult things to optimise but it is economically crucial. Numerous studies have proven that larger batch sizes lead to longer cycle and delivery times – and a longer wait to find out if you’ve delivered value to your customer.
Faster, cheaper, better
There’s a bunch of beneficial outcomes that come from working with much smaller batch sizes than traditional processes recommend.
Some of these benefits are:
- faster feedback – the sooner you pass on your work, the sooner you’ll know if there’s an error
- better feedback – you’ll know earlier on if you’re building the right product, because you’ll get it in front of your customer sooner
- greater visibility – bottlenecks and inefficiencies are clearly seen
- improved quality – and when quality goes up, efficiency increases and team morale goes up too
- less risk of delays and cost overruns – the larger the batch, the more likely you’ve made a mistake in estimating or in doing the work, and the likelihood and impact of these mistakes increases as batch size grows
- reduced complexity – you’ll reduce the amount of complexity that has to be dealt with at any one time by the team
- improved decision making – it’s easier to make business and technical decisions and recover from mistakes.
All this makes for better economics. Donald G. Reinertsen’s diagram uses testing as an example, and shows the direct links between a smaller batch size (which results in smaller changes, fewer open bugs and faster cycle times) and improved economics.
Smaller batches = greater output
We’ve even got mathematical proof that you should reduce your batch size!
First published in 1954 and proven in 1961, Little’s Law has been used across many industries. At its heart, it deals with queuing systems, which is what coding-oriented projects also have to deal with. Little’s Law means that if you reduce your cycle time by the power of 10, you increase your capacity/production by a power of 10.
Tips for reducing your batch size
What is an ideal batch size, and how do I reduce my current batch size?
Reinsertsen recommends reducing your batch size by 50%. You can’t do much damage in this range, and the damage is reversible. Observe the effects, keep reducing, and stop reducing when total cost stops improving
Batch sizing is very much a horses for courses endeavour. Some large projects might favour a 30 day sprint, but for most of the projects we’re involved in, we’ve found the sweet spot is two weeks.
If you’re using Agile, you should be working with small batches already. (If you’re trying to implement Agile but using the same batch size as a traditional project – that is, 100% – Agile will not work!) However, it’s important to remember these guidelines when you’re setting up your next project:
- reduce the timeframe for delivering results
- don’t define all your requirements and success criteria in one go
- prioritise your product’s features and begin with the smallest amount of work that will still deliver value to your customer
- test and release as soon as that work is complete – adopt continuous integration and ensure deployment and testing efforts are ongoing during your project.
The last word goes to Reinertsen and his video: The practical science of batch size. It has all you need to know about batch size – how it works, why it works and what to do next.