Yesterday, I reviewed The Phoenix Project, an excellent novel about IT, DevOps, and helping your business win. In the book, Kim et al talk a lot about resource utilization, task queues, idle time, and unplanned work. These are all topics that make some sense at an intuitive level; but, aren't always easy to articulate. One metaphor that I have found to be very helpful in this respect is, "sand in the gears".
This metaphor comes to me by way of Rich Armstrong, my Engineering Manager at InVision. Rich is a wizard with metaphors; and, has an uncanny ability to draw upon a diversity of resources in order to synthesize ideas. In this metaphor, the depth of meshing between gears represents the degree to which people's work capacity is being consumed. Deep meshing indicates high utilization; shallowing meshing indicates low utilization:
These gears represent our engineers chugging away on their planned work: clearing tickets, creating Pull-Requests, deploying code, monitoring system performance, etc.
Now, let's talk about the sand. The Sand in this metaphor represents unplanned work. This is the "fire fighting" work, the high-urgency work, the "low-urgency C-Level" work, and anything else that comes up randomly and knocks you off-course. When this kind of sand gets poured into a set of high utilization gears, there's nowhere for the sand to go and the system locks up:
Let's contrast this with our lower utilization gears. With shallower meshing between the gears, tolerance is built into the system. Therefore, when sand gets poured into these gears, the system continues to operate properly:
As you can see, when the system isn't operating at capacity, it can easily accept unplanned work without affecting the high-level throughput.
For me, this metaphor really drives the concept home. It's one thing to look at a graph that demonstrates how queue-size shoots through the roof after a team passes 80% utilization. But, it's an entirely different experience to be able to visualize disruption of a physical system. The "sand in the gears" works for me because it takes this concept and makes it very tangible.
Of course, the real kicker in all of this is that you have to plan for unplanned work. Unplanned work is reality. You can't stop it. You can't "waterfall" it out of existence. You have to accept that it is going to happen; and, you have to design a system (team) that has tolerance for unplanned work built into it from day-one.
I´m a translator from English to Brazilian Portuguese.
While translating a DevOps material, I came up with the expression "sand in the gears". That´s how I visited your blog.
Thank you for the explanation and drawings related to this metaphor. It helped me a lot.
Have a nice weekend!
Very cool -- I'm glad that you found this on-point with the kind of work you are translating. DevOps is some exciting stuff (much of it goes over my head).
I've been thinking about this a lot lately because I've been working at full utilization the last few months. And, it's had a pretty negative impact on my life. I wrote down some reflections: