Full utilization and whitespace

Recently, I found myself having conversations, both at work and online, on the topics of Sprint Tetris, backlog length, and cognitive load.

I had the feeling that I was having the same conversation over and over again, but was unsure of what the connective tissue was until I remembered Dave Farley’s most excellent talk on “Taking back software engineering” at YOW2017, where he drew some parallels between manufacturing and software engineering.

In manufacturing, there were three distinct eras: craftsmanship, mass production, and lean.

In software, we are mostly still building using the craftsmanship approach. We skipped mass production as a boneheaded idea, and have not quite yet achieved lean-like-parity, although agile software development, devops, et al. are some transitional lean-like artefacts.

I suspect the fact that mass production is a boneheaded idea for software may, however, have escaped some people’s notice. This may explain the appearance of some artefacts which are usually associated with “cost and efficiency” mindsets rather than a value mindset.

In mass production, for instance, if you want to churn out a metric bajillion of gizmos, you get your hands on as many gizmo components as you can and put them on a conveyor belt leading to the gizmo-assembling machine. Assembled gizmos get carted off to the packing plant and shipped off to parts unknown. Want more gizmos? More machines! More components! Run 3 shifts a day! MORE!

And if we were trying to apply the ill-advised parallel in software, what would we do?

We could, for instance, have a gigantic backlog of stories, going forward quarters, years, even! From our enlightened bird’s-eye view, we could manage the dependencies and ensure simultaneous delivery!

We could treat each iteration as an opportunity to fully utilise our teams and extract the maximum amount of work from them! Every man-hour accounted for, with flawless precision, full utilisation! MORE!

The results are as predictable as they are unavoidable.

an illustration of a congested, polluted road
The unavoidable - and smelly! - outcome

A fully utilised highway resembles nothing so much as a malodorous parking lot.

Likewise, the productivity of a technology delivery team has clearly diminishing returns after a certain level of utilisation. Some reasons for this:

At this point in my draft, my wife was looking at the illustration and reading over my shoulder. She said: “Ah, it’s like visual design with insufficient whitespace”. Gentle reader, I was floored. Her piercing insight has, yet again, led me to conclude she keeps me around to reach the high shelves and provide occasional entertainment value.

A “fully utilised team” is, indeed, exactly like a design with insufficient whitespace. Let’s look at some of the jobs we hire whitespace to do in design:

And when you think of it, are these not the very same things we want to enable in our work?

Once you step away from “full utilisation” and create the appropriate amount of whitespace in your work, a few things may happen:

How do you feel “whitespace” — or the lack thereof — impacts your work?