Saturday, October 1, 2016

Stuffing Envelopes: The Power of Small Batches

Working in small batches in a Lean principle. That's counter-intuitive for many people. The idea that large batches are more efficient is deeply ingrained in modern day society. Doesn't overhead increase when working with small batches?

Here is a group exercise to demonstrate the power of small batches.

Each participant receives the following materials:
* six letter sized papers
* six envelopes
* a pen

Also, there's a list of six names which everyone can see.

Each participant has to write a name from the list on a piece of paper, fold it, put it in the envelope, seal the envelope, and finally write the name on the envelope.

They should do this for all six names on the list.

Divide the participants into two groups. The participants in one group follow the Large Batch Method. Participants in the other group follow the Small Batch Method.

Each participant of the Large Batch Method first has to write all six names on the six envelopes, then fold all six papers, then put the papers into the envelopes, then seal all envelopes, and finally write the names on them. For many people, this way of working intuitively seems the most efficient.

Each participant of the Small Batch Method group writes a name on a piece of paper, folds it, puts it in an envelope, seals the envelope and writes the name on it. Then does the same for the next name on the list.

I also ask the participants to secretly estimate how long they think it will take them to complete this exercise.

Every time I have done this exercise a participant of the Small Batch Method is the fastest. On average the Small Batch Method is about 20% faster. This never fails to surprise people.

Also, most people tend to underestimate the time they need to complete this exercise, sometimes by as much as 100%.

Obviously there are parallels with software development. The following are some of the observations that are typically made:

* Small Batch Method participants eventually settle into a rhythm. The Large Batch Method people will often get stressed out at the end in a mad dash to get things finished. In software development people can get very stressed in the last few weeks of a Big Bang release, whereas if the software is being built and rolled out incrementally, doing a release is just business as usual.

* What if it turned out that the folded papers didn't fit into the envelopes and needed an extra fold? The Small Batch people would have found this out sooner in the process than the Large Batch people. In software development it makes sense to deliver so called "Tracer Bullets" early in the process to find any technical bottlenecks, problems with usability, "wrong" requirements, and so on.

* The first finished envelope (value for customer) was delivered far sooner by the Small Batch Method. In software development a product that includes only a couple of useful features of the complete intended scope can still deliver value. Why wait with releasing useful software until "everything" is "finished"?

* The order of the envelopes might get messed up with the Large Batch Method. The wrong name might get written on an envelope, resulting in a wrongly addressed, and unhappy, customer. In software development doing a huge release with many features will risk having more bugs, as there are more things to test and integrate and keep track of. If something goes wrong during a release to production it will be significantly harder to track down what caused the bug than it is with a smaller release.

* Apparently, we can be way off estimating how long something as simple as stuffing envelopes will take. But we will probably be more accurate the second time we have to estimate our work. The problem in software development is that we never estimate the exact same thing. The requirements are never exactly the same, the domain is different, the technology is different and there may be different people working on the software.

This exercise was inspired by a video by Ron Pereira. In this video Ron demonstrates an even simpler version of this exercise, with ten envelopes. Study has shown that the Large Batch Method loses time mostly by "housekeeping" stuff like keeping the stacks tidy, shuffling papers around the table, etc.

Eric Ries also has an excellent article on Small Batches, which I came across while doing research for this article. It nicely sums up all the advantages of Small Batches.

The first time I tried this exercise I used ten envelopes per person, but then the exercise took a little too long. With six envelopes it is a bit shorter and it gets the point across just as well.

If you have a larger group, you might want to try this with teams of two or three people working together. The Small Batch people would work as individuals, the Large Batch people would work as an assembly line. Give each group 20 seconds before the exercise to discuss how to divide up the work. You probably want to use ten or twelve envelopes when doing this exercise with groups, otherwise it is a bit too quick.

Now go forth and use the power of small batches!