My wife went on a one week break last week, leaving me to deal with three kids and a hectic week at work. I wasn’t concerned much with the situation, apart from one thing that I dreaded: laundry.
To begin with, you must understand the laundry cycle at our humble home. Let me draw a picture for you:
Everyone in the family dispatches new laundry to the work queue. That is, my missus and I place it in agreed baskets, and the kids just happen to drop it some place around the house: bedroom, corridor, washroom (not to be confused with washing room!), backyard, kitchen table – anything goes. Occasionally kids misplace laundry and place it in the washing room itself, but I attribute it to a temporary lapse of kidsism.
Then either the missus or I collect the laundry both from agreed baskets and from the various exotic locations invented by our kids, and take it to the washing room.
Then either the missus or I (admittedly typically not I) operate the washing machine: divide according to color, treat stains, insert into machine, add detergent and softener, and activate machine. We then transfer laundry to dryer, and place in larger baskets, awaiting folding.
Then, at our convenience (typically during end of day zombie periods) we fold the laundry and return to basket.
Finally the laundry is dispatched back to closets. Preferably this will be done by my wife, as I tend to make a right mess of what goes where.
End of laundry cycle.
So why the dreadful anxiety? This may be seen in the picture, but I will now describe the:
Dysfunctions of The Kirschenbaum Family Laundry Cycle
- Washing machine is operated according to events external to the system. E.g. when Rina or I get home. The batch size is derived from frequency of operating the machine, rather than by responding to the accumulation pace
- Laundry cycle is inherently done in push mode. That is, collecting dispatched laundry drives the entire process
To add to my anxiety, just before Rina went on her long awaited vacation, the system was drained, so it looked like seen below. The thought of Rina coming back to Mount Everest of laundry haunted me.
Now I had several incentives to keep the system maintained:
- Have clothes
- Have vague memory of what belongs to whom to increase Back-to-closet quality adequate
- Have empty-ish laundry room to avoid scalding looks on Missus’ return
I decided to apply lean thinking and to try some simple policies:
- Frequently collect to washing room
- Wash as soon as a certain color type fits about 50% machine capacity or more
- Wash-Dry-Fold with as little waiting time as possible
- Dispatch back to closet frequently
- Start from here working upwards
Within two days I ended up with something like so:
Come end of week, the laundry basket was empty, fewer creased clothes, most of laundry already in place. What more, now with the missus back home, we are following the same concept.
Now what on earth does that have to do with software development?!?!?! Has Ilan finally lost his marbles?
Well, firstly, yes, long time ago 😉 and actually, there is very much in common!
Think about product support:
Tickets coming in –> Rolling up/down to other versions* –> Packaging installable file –> Producing release notes –> …
* roll up/down as a practice should be eliminated altogether. But if you ARE doing it now, you can still save a lot of time by streamlining it
Think about documentation:
Changes to document –> authoring and proofing –> impacting other cross-product documents –> producing result in multiple formats –> …
Think about the standard development cycle:
Designing –> Coding –> Unit testing –> Packaging installable file –> Functional testing –> Regression testing –> Performance testing –> Documenting –> …
Whenever you have pipelining, reducing the batch size will (almost) invariably shorten the cycle time, increase the quality, increase the visibility, reduce inventory-in-motion, and ultimately make happier customers.
In this case, wife.
Now, if you’ll excuse me, I’ve got reds to dry.