This post is the result of having taken up Ben Mosior‘s offer to help unblock writer’s block. Looks like it worked 😉
We ended up talking about Wardley Mapping, the Theory of Constraints, and the relation between them.
Now after we’ve created our Wardley Map, the first question we usually ask about a component is, “Why are we using a custom-built version instead of a commodity version?” Wardley Maps enable us to see what’s there, reduce duplication, and, as this question points out, reduce our bias.
But the Theory of Constraints recommends that we should ask a different question first . . .
Where is the constraint?
As Wardley’s doctrine points out, making use of commodities is a common-sense thing to do, but if all it accomplishes is making our non-constraints very efficient, we’ll be in twice the trouble if we fail to touch our bottleneck! After all, the bottleneck(s) determine the throughput of the whole system.
The Theory of Constraints describes five focusing steps:
- Identify the constraint
- Exploit the constraint
- Subordinate everything else to the constraint
- Elevate the constraint
- And repeat!
If our constraint is that thing we’re custom-building, then if we push it to Stage 4 of Evolution (Commodity or Utility) phase, it’s like working through steps two through four.
The Theory of Constraints teaches us that it’s actually not a problem for non-constraints to be idle or for them to be custom built, but if we optimize our non-constraints by indiscriminately reducing bias, the system performance will actually get worse.
From this, a couple of interesting questions come up, which we’ll get into another time; such as, “is it the case that Wardley Mapping doesn’t work here? How does this whole evolution thing apply?”
The Tea Example
To illustrate both of these ways of finding the constraint, we’ll use the example of a shop that provides cups of tea (from https://twitter.com/swardley/status/1068822023126827010 ).
In general, we’re looking in our map for something that slows us down. The first idea is that if we consider not the evolutionary flow, but the process flow, we can find candidates in the things that aren’t happening as fast as we’d like. A second idea is to find something that slows us down and is also hard to change, perhaps due to inertia.
Let’s say we have 20 orders to fill every hour. We need water, we need a kettle, and so on. But we find that our kettle can only serve maybe 10 cups an hour, so our production cannot keep up with the remaining 10 orders. We won’t be able to fulfill our obligation to our customers in the timeframe we have.
And then if it’s a kettle left by my great-ancestor, and we’re running a more authentic tea shop that has a lot of history, then getting rid of the kettle is going to be problematic. It has sentimental value and may be part of our branding. And so it’s hard to change, but we still have the problem of meeting our obligation of serving 20 cups.
Identify the constraint
Once we’ve identified that the kettle is the constraint, and once we’ve realized that it’s very hard to change, we can run through the rest of the five focusing steps.
Exploit the constraint
To exploit the constraint, we can make sure the kettle is in use continually and is never starved of work. One idea could be: Never take the kettle off from the stove except to pour the tea into a cup. There’d a “special” hose/pipe whose sole job is to refill the kettle.
Subordinate everything else to the constraint
To subordinate the rest of the system to that constraint, we might have everyone sit in a small tea room that conveniently has about 10 chairs. In addition, the dress code can be traditional attire that’s worn to serve this kind of tea, much like the attire of those serving during Octoberfest in Munich.
Elevate the constraint
To elevate the constraint is to increase our capacity, i.e., the number of tea cups we can serve in an hour. For this, having another larger kettle that doesn’t have sentimental value is helpful. This larger kettle wouldn’t be part of the brand story like my ancestor’s kettle, but it could help us meet our obligation of 20 orders.
Questions to explore
- How does Evolution fit into the picture?
- Would you apply Doctrine to Constraints and Non-Constraints in the same way?