One of the most difficult concepts to explain in agile is the concept of Batch Size. It's a principal tenet of Lean Product Development and is an ACTUAL principle in SAFe (# 6 to be precise). However, when we work with our clients to evaluate their practices and processes, we see product backlogs in the scrum boards of hundreds of items. In one case, a client used the concept of a Groomed Sprint to define what part of the Backlog had been groomed and prioritized by the Product Owner, Scrum Master, and Team.
What we have here, folks, is a failure to right-size Batch Size.
I've been thinking about this for a while. What is the best non-Agile example of Batch Size? It wasn't until I discussed it with my husband for the 4th time in two days that it clicked: laundry.
Laundry is something we all need to do, but don't enjoy. And work is that way too. Sometimes we have a great laundry day: it's not on the floor, it's not stinking up the bedroom(s), it's moving through without being the only thing we accomplish that day. It's a good laundry day. Sometimes, though, it's a horrible laundry day. It's been put off so long that it's almost overwhelming: it's everywhere and is likely the only thing that's accomplished that day. Picture this: it's laundry day at your house. Individual piles are consolidated into a Big Pile. The Big Pile is sorted into smaller piles according to color, fabric, and cleaning products. The smaller piles begin to make their way through the system one at a time.
I know what you're thinking: Amanda, we all know how laundry works. Bear with me.
A smaller load of laundry requires less time per batch to both wash and dry. If you've ever flown into a blind panic when realizing you need clothing for the next day and have washed a single set of clothes, you know what I'm talking about. It takes less time for the washer to fill, agitate, rinse, and spin than the extra large load. In addition, it takes much less time to dry a single set of clothes than a whole dryer full of jeans. However, this is wasteful. It wastes energy and water and time because you still have that Big Pile you have to deal with at some point. And you know you do and you will. At some point. Before your husband decides to drag three laundry baskets across the house. And they're full of jeans and work shirts. <sigh>
Thinking about the above scenario another way, instead of lumping everything together into the Big Pile, why don't we pre-sort? Doesn't that make a smaller batch size and make it easier to flow through the system? Yes, but also no. Pre-sorting does take some of the handling out of consolidating laundry into the Big Pile by making smaller batches. However, those small batches can add up to a Big Pile if not adequately moved through the system when they're ready.
What if, instead, we right-sized the batch? What if, based on the color, fabric, and cleaning products, we put the batch through the system when it was determined to be the right size? Not so big that the Big Pile must be broken into smaller batches to flow through the system, but not so small that we're wasting resources including, the most precious resource of all, time? It's time to right-size your laundry. Just as it's time to right-size your work.
Within any agile framework, this is the essence of throughput. When requirements come to the Team in a Big Pile, the Team must break the Big Pile into consumable smaller batches. These batches must also be prioritized: clothing needed in the next day, versus clothing needed next week, versus something you've worn once and likely won't wear again for a few weeks or until a special occasion. Just as we prioritize our laundry, so too must we prioritize the backlog. What is the immediate need? What can wait a few weeks? What is a nice-to-have? Note: in the extended metaphor, nice-to-have is dry cleaning. Not something you need, but sits on a hangar in your closet, is reassessed as an outfit every three months, and ultimately placed back in the closet in favor of the clean laundry. So too should those nice-to-haves be removed from the backlog to be addressed every once in a while to see if there's a current need. Either put them back in the closet or donate them. Deprioritize items in the backlog or remove them altogether.
How can you tell the batch is the right size to move through the system? Much like laundry, it's trial and error and feedback into the system. You didn't come into this world knowing how to do laundry. And there have been plenty of times that you've accidentally thrown a red sock into a load of whites or bleached something in your darks or even shoved too much into the washer only to have to run the dryer three times to get it adequately dried. So what did you do with this information? You learned from it. In fact, you retrospected on what you did and learned from it. I see what you did there, Amanda. So too will the Team learn from each batch of work that flows through the system. Within a retrospective, the Team should look at their batch size estimates and make adjustments for future work. This allows the Team to establish a predictable velocity with which to plan future work. Much like you've figured out how to do laundry efficiently over time (hopefully). Either way, it all comes out in the wash.