I’m fascinated by correspondence — when we see the same pattern in more than one place, or even a very different domain. A good example is Postel’s Law, sometimes known as The Robustness Principle. It states that when you are designing components in software you should design them so that they are open to accepting many kinds of input yet careful about what they produce. It makes connection easier when all of its parts conform to this rule. Larry Wall pointed out that the same guidance can be useful in social systems. For example, if you’re at a gathering and you encounter people who are wildly enthusiastic about a particular sports team, your temptation might be to argue when one of them tells you that their team is the best in the world. But, it’s often better to just accept that input and be careful about your output in the conversation. If you do this, you are applying Postel’s Law in a social context — you accept that you will hear many things but you are careful about what you say.
Why does the same technique work in both software and social systems?
Typically, when people talk about this sort of situation they use the word metaphor. They say “you’re using software as a metaphor for social systems.” The view is that you are transferring an insight from one field to another and that you should be cautious about taking that insight literally. Misapplied metaphors can be dangerous, or they can just miss the mark, but as George Lakoff points out, they are foundational to the way that we think and perceive the world.
This might be a good launching point for something different. In the example I just gave, we took an insight from software and applied it socially. What if we did it the other way around? What if we had started out with that observation about how people can get along at gatherings and then transferred it to software? If we did that, we could say that we were using something in the social world as a metaphor for software.
What does it mean when we can just as easily use an example from software as metaphor for something in a social system and use that thing in the social system as a metaphor for the original thing in the software system? To me, this points to the idea that there is something going on that is deeper than metaphor. These correspondences are discernible; they can be named.
There's a briefer way to describe this relation: If A can be taken as a metaphor for B and B can be taken as a metaphor for A, then that implies a third thing, the intersection — C.
Right now, I'm calling these forms and it seems like there are a set of elemental ones that can describe a wide range of domain-independent phenomena - patterns that occur in structure regardless of the medium (physical, software, social).
Here’s another example of one. I’m going to make up a word now. The word is Exot. It is a form, a thing that exists in some way. I’ll give a few examples. Maybe you can think of others.
A system is in Exot when constraints are applied that inhibit new growth. When the state of the system is such that growth will happen, that growth will happen elsewhere. A very base example would be placing a metal ring around a tree as it is growing. If the ring is stronger than the tree, the tree grows around it. It has no choice if it is going to grow. Seen one way this is just reaction to constraints, but it is a very specific kind of reaction — growing elsewhere.
Let’s look at another cases of Exot. A small company grows and becomes more bureaucratic. Some employees, realizing that they don’t have the opportunities to grow that they would like, decide to leave and form a new company. While this is happening, the system is in Exot.
So what is this thing Exot? At its base it is a structure with certain forces in play. The structure for Exot is an entity with forces applied against it that constrain growth, along with reaction — growth elsewhere. The growth is new structure. Sometimes it is the creation of a new entity, but sometimes it is growth within part of the original entity in a different direction. The dynamic is: there is an obstacle, so growth or change happens in other direction.
Let’s imagine the case of a band with a guitarist, bassist and a drummer. The band members meet a new person who is an excellent musician. This musician happens to play guitar. The band decides it would be good for the new person to join the band and play guitar, so the original guitarist switches to playing keyboards. A three-piece band become a four-piece band. It is more differentiated. Exot happens at the role level here. A new role is established (keyboardist), and the band grows in a new direction. It would also be Exot if the original guitarist decided to leave and form a new band.
Notice that there are two frames we can apply to each of the scenarios above. We can say that the system is reacting to constraints — or that it is seeking advantages. From a behavioral point of view, these are actually the same. If you have $10 you many not see it as a constraint unless you suddenly want to have $20. At the same time that you recognize the constraint you can also recognize the removal of that constraint as an advantage to seek. What is interesting is that they are part of the same form: Exot. It is a form that you can see in physical, social and technical systems.
A form is — a pattern of structure and forces that we can see across disparate domains.
Why haven’t we named these things? I don't know for sure, but my guess is that we've made a cultural choice to hesitate and it is tied to our conception of science. Hippocrates applied the concept of Four Humors to medicine, and medicine was side-tracked for centuries — people theorized that disease conditions were caused by imbalances of humors in the body. Likewise, in their day, alchemists posited many things about the physical world. It took quite a bit of work in the 19th and 20th centuries to put things on a more solid basis in science. Outside of science, though, we do this sort of soft classification often under the heading of sense-making. I think that, as long as we accept these form terms as provisional, and make no strong epistemological claims around them, we're ok.
A few people I've spoken to about forms have asked why I started creating new words for them. There are a few reasons. One is that all existing terminology comes with connotation, or at least lineage that often biases us toward a single domain. Postel's Law, for instance, is relatively unheard of outside of software development. It might seem like a stretch to start to use it in, say, sociological circles. Also, new words allow us to developed a seeded understanding of an abstraction across many domains simultaneously. In some of the writing I'm doing about forms I call Postel's Law Lavin and I talk about its opposite Endot. Endot is another word I coined — there really doesn't seem to be a word for structural constriction that is used across domains.
This forms work is a bit tangential to my work in software development, but kind of related too. I hope to put out material soon about a few more of them and invite everyone to participate. Approaching phenomena at this level is fun and rewarding.