The Most Famous Loop

Kevin Kwok had a great essay the other day on Figma, and how its runaway success is based on hundreds of successful loops baked into its product and business model:

Why Figma Wins | Kevin Kwok

It got me thinking about loops. Loops are important and they are everywhere. Businesses are fundamentally made out of them. It’s obvious to say that a business is a collection of repeatable processes; but it’s worth going the next step to specify: if a process is truly reputable, then it must be a loop, because you have to end at the same place you started if you want to do it again. If you don’t see the loop, then either you don’t understand the loop, or it’s not truly repeatable. 

So this seems like a good week to talk about an idea about loops I’ve been chewing on for a bit: if we want to learn about how loops work, one interesting place to look might be thermodynamics. Furthermore, there may be an important (although highly abstract) business lesson embedded in arguably the most famous loop in scientific history: the Carnot cycle. 

The most famous loop: the Carnot Cycle

Until the 1800s, the dominant way we thought about science, technology, and industry was framed in terms of Newton’s classical mechanics. When people thought about conservation of motion and mechanical force, they’d picture something like a waterwheel. Waterwheels transform the force and power of falling water into a different sort of force and power, a spinning wheel that could power a loom or a factory. We thought about a lot of natural and even political science in these kinds of mechanical terms: the world as a set of interlocking gears, transferring energy and power from one place to another. 

Then a paradigm shift took place. The Watt Steam Engine (originally built in 1775) reached mass adoption, and we began think about heat, and the heat engine as an energy source that powered movement and industry. We established a new kind of science, with a completely new field of unknowns to work out: thermodynamics

If you look back in art and culture, you see a shift around this time in how we thought about the order and logic of the world. We left behind the idea of the world as an intricate mechanical machine, like a ticking clock. We found new imagery: the world as a furnace belching steam. 

The common thread between mechanical engines (like a water wheel) and heat engines (like a steam piston) is that they both preform a recurring loop of work, over and over. That loop has to do two jobs. First, it has to perform useful work on the outside world. Second, it has to return to its initial state, to start the loop again. “Efficient” machines go through this loop with as little energy wasted as possible. 

In 1824, Sadi Carnot considered this question: what makes a machine efficient? What are the principal causes of inefficiency and loss? By applying the physics of his time, and some common sense, Carnot reasoned that an inefficient machine is one where moving parts smash into each other at high speed and opposing momentum, resulting in loss of useful energy. Efficiency, in Carnot’s framework, means that no part of the machine ever comes into contact with another part that’s moving at a different velocity

Carnot took this thinking a step further, and into scientific immortality, by reasoning that the same principle should apply to heat engines. The driving source of a heat engine is the difference in temperature between two reservoirs: a hot coal furnace versus the cool outside world. Carnot figured that the equivalent of mechanical engine parts smashing into each other would be hot and cool temperature reservoirs that directly touch each other, and spoil their useful energy potential. 

So an ideal heat engine has to pull off something tricky: draw useful work out of a difference in temperature between two bodies, while never letting them actually touch each other. For this to work, we’re going to need a loop that has more than two steps. Why? A two-step loop that goes back and forth between hot and cool will necessary be inefficient, like a machine that smashes against itself continuously. There needs to be some other quantity, other than temperature, getting exchanged in the loop.

Carnot figured out the first half of this puzzle, describing an ideal system (which we now call a Carnot Engine) where a gas in a piston can expand and contract as it moves back and forth. As steam gets exchanged between a hot energy reservoir (like a coal furnace) and a cool outside world, it goes through four steps of a cycle. Two of them are held at constant temperature, as the gas expands and pushes (or contracts, as it’s pushed by) a piston doing work. In the other two, further expansion or contraction will cause the gas to cool down, or heat up, until it reaches the same temperature as the cool (or hot) reservoir. This theoretical loop pulls off the paradox of theoretically efficient transformation of heat differential into mechanical differential. The math works out to a perfect, closed cycle.

But Carnot himself didn’t actually understand the most important part of how we achieve this in real life. That took the insight of Rudolf Clausius, who focused on the part of the system Carnot ignored. For a heat engine to work, fuel gets burned. Something irreversible happens, even though his loop is completely conserved. Clausius worked out the concept of entropy: the amount of disorder in the gas, which is distinct from temperature, and goes through the cycle “perpendicularly” to heat transfer. 

You can see this illustrated in the graph on the right. The amount of heat in the gas and the amount of disorder in the gas are not the same – an efficient heat engine exploits this difference. Steps one and three are isoentropic: if you heat a gas from low to high temperature while also compressing it at the same time, the amount of entropy in the gas will stay constant. (Same in reverse.) Meanwhile, steps two and four are isothermic: at constant temperature, as a hot gas expands, its disorder increases. 

The cycle is conserved: the loop ends up back at its starting point, every time. Yet something irreversible happens: when we burn fuel to create heat, entropy increases. The secret of heat engines, which Carnot articulated without realizing it, is that they capture this increase in entropy in the expanding gas, and then later on dump the entropy on the outside world. We have a four-step loop: in addition to “heat in” (1) and “heat out” (3), we have two new steps: “disorder in” (2) and “disorder out” (4). 

In real life, you’ll never encounter a Carnot engine in the wild, because actual heat engines differ in two important ways: first, they have to deal with mechanical realities like fixed volumes. (The thermodynamic Otto Cycle, in your car engine, is kind of like a Carnot Cycle turned 90 degrees sideways, and with fixed volumes not temperatures.) Second, they reflect the reality of entropy getting continually created and dumped on the outside world, which the Carnot cycle doesn’t actually acknowledge. 

Let Disorder Happen

Still, there is a deep idea here. “Disorder” and “Efficiency” are not at odds with each other. One is actually required for the other: expansion and contraction of disorder is an essential part of efficient loops. 

This got me thinking about business loops, like the kind Kevin is talking about in Figma and in other successful products. (Or, just as well, the internal loops that continually run inside of companies as they function. Eugene Wei once described these to me as ‘circadian rhythms’, and the concept has stuck with me since.) 

It seems reasonable to me that all loops should try to obey three simple properties:

  1. They start and end at the same place. If they didn’t, they wouldn’t be loops. All loops generate useful work output, but also require different work as input, so you can end up where you started.
  2. They pass through a difference in ‘potential energy’. If they didn’t, then they couldn’t accomplish any useful work. Potential Energy here can mean whatever you like: resources, motivation, attention, invested effort, whatever. 
  3. They acknowledge that disorder gets created. If they didn’t, then they’d be kidding themselves. 

We can attempt to draw this out, as if it were a heat engine. I’m not going to bother too much with faithfully interpreting every axis, but I’m going to substitute “high and low temperature” in a heat engine with “high and low potential energy” – whatever it is we contribute, like priority, resources or human effort, that drives useful work as an output. Furthermore, our equivalent for Volume moving back and forth (like the piston in our heat engine) is substituted for “Getting work out of the system” (like a piston expanding) and “Putting work back into the system” (contracting). 

I realize this is super abstract, but I think there are a couple important ideas expressed here. First, it acknowledges that there are two ways you can get work out of a loop. The first is to spend potential energy, no surprise. But the second is to let disorder increase. Not forever; ideally only in the controlled circumstance of your imaginary heat engine. You can get a lot of work done if you freely let disorder run its course. You will have to pay it back later, but it will work. 

In practice, these are both ways that you can get work out of a loop. Of course, in order to get back to where you’ve started, you’ll have to clean up the disorder eventually. You’ll need to clean up that code base, and work through the management debt you’ve accumulated. Or maybe in a smaller scale loop, you have to constrict a range of possibilities you’d opened up somewhere else. 

The second insight in here is that if you allow the ebb and flow of disorder, your loop can pass between high and low potential energy states a lot more efficiently. I think of this in terms of the Andy Grove line from High Output Management, “Let chaos reign, and then rein in chaos.” It’s useful to think of this advice as taking place perpendicularly, but across the same loop, as investing and then harvesting time and resources. 

If you don’t allow for that ebb and flow of disorder, you’re going to lose a whole lot of effectiveness across your loop, although you may not see it. You’ll be forcing the high potential energy part of your loop in direct contact with the low potential energy part, and you’ll spoil the efficiency of your loop. To imagine why you might not want this in practice, replace high potential energy and low potential energy with well-resourced and under-resourced, high morale and low morale, high focus and low focus, or any number of discontinuities. 

I’ll think about this more, I need to fill in a lot of gaps in this idea, but I do think they’re something correct about this. 

Like this post? Get it in your inbox every week with Two Truths and a Take, my weekly newsletter enjoyed by 20,000 people each week.