Feedback, Stable Systems, and the Ball Of Mud

Every system that deals with change, has to utilize feedback loops. I utilize the feedback from my eyes to help me walk through the room. Even if I knew where everything was, if I try to walk through it with my eyes closed, I would bump into things, probably. Feedback loops help us to error correct, and deal with unexpected obstacles as well.

The longer the feedback loop, the more sluggish the response. Thus, if you are sending a robot to the Moon, you have a bit of a sluggish response if you are trying to remote control it, because the signal takes a second or two to get there, and also to get back to mission control. If you are sending a robot to Mars, the problem is much worse, so NASA found it needed to have a robot capable of much more autonomous movement, in order to explore on Mars. Long feedback loops are bad for error correction, and also bad for responding to the unexpected. This is one of the main advantages that small businesses have over large ones, and it is one which in some cases entirely outweighs the advantage of scale.

It is also one of the main reasons why communist economies had problems competing with capitalist ones. Contrary to popular opinion, the advantage of capitalist economies had little to do with greed, because the introduction of quota bonuses into communist economies did little to close the gap. Moreover, if being threatened with death in Siberia is not enough to motivate you to work harder, then greed is not going to help, and Stalin (and Mao and Pol Pot and etc.) were certainly no shrinking violets with regard to using the threat of violence to motivate. Capitalism has, in most cases, tighter feedback loops than communism, because decisions on production and consumption can get made by individuals much closer to the action. If a business owner sees that he has more customers wanting widgets, he can decide to make more, rather than having to send the suggestion up five levels of bureaucracy and waiting for the answer to come back down.

Recently, though, we have been making a kind of capitalism which has, in some respects, very long feedback loops. For example, the tradeoff between environmental damage and productivity is always difficult to make well, but we made it a lot better when the environmental damage wasn't happening on the other side of the globe. Ditto with the tradeoff between worker conditions and the cost of consumer goods. Ditto the tradeoff between having your food be cheap, and having it be safe; if you make the food so far away that none of the people eating it, see it being grown/raised, then it is more difficult to make that tradeoff wisely. In each case, the feedback loop is too long.

One often hears the argument that, "it's a globalized economy now, so we all have to work together to solve our problems." One rarely hears the same fact put in a different way: "because of globalization, we cannot solve our problems unless we can get everyone in the world to agree to the solution." This is because putting it that way makes it sound rather depressing. Of course, some things (like the chemicals we put into the atmosphere) are going to cross borders regardless, but it's hard to argue we are doing better with First World demand for consumer goods, being satisfied in countries with Third World environmental, health, and safety laws. If we made our consumer goods in the First World, they would be more expensive, in large part because of those environmental, health, and safety laws. That would mean, probably, that we would buy somewhat fewer of those consumer goods. I am not convinced this would be a bad thing, in the long run, and I'm not even convinced that the extra consumer goods we are currently buying are making us any happier. I don't want to have a Third World income, but I wouldn't mind having the amount of consumption that a First World income would get you if you had to pay First World prices for their production, and especially if that way there were First World environmental laws governing their production.

Stable systems are made of many smaller subunits, with limited connections between them. Biological systems are usually constructed this way, and they have evolved over countless generations to handle rapid change. Large systems with many connections between them are brittle, and difficult (eventually impossible) to debug. Globalization is an economic Ball of Mud, like a piece of software with too much "spaghetti code" where any one part connects to every other part, until you cannot fix anything without it all coming apart. The most important thing to do to refactor any large, messy, unreliable piece of software, is to find a way to break it into smaller pieces that run as loosely coupled modules or microservices. The current economy is badly designed, optimized for fragility, and all the most important feedback loops are too long and too slow to correct for errors and react to changes. We need to refactor.

It will be painful. In the way of cleaning up any mess, though, or refactoring any big piece of software, the longer we put it off, the more painful it will be. The worst scenario would be the one where we put it off until it breaks down in some way we cannot fix.