
The relation is its own thing
When it comes to systems thinking you can take different routes how to make up the model. I have not looked into the 50+ different approaches to system thinking that I found in a list earlier this year. But I assume that connecting two elements has to be part of every approach, somehow.
When you look at two elements with a relation, the relation is actually an element of its own. In IT one of the more obvious examples is the network connection between a client and a server. On some models it might be just a line. But in reality it’s network cables, hubs, routers, and so on.
Look at it from a service architecture perspective. There are two services. When they are related we sometimes call them provider and consumer. The provider offers a service, and the consumer uses it. So in a model of the system, the provider has an endpoint to offer a service, and the consumer has a client to request the service from that endpoint. Or a service generates an output and provides it via a client call to a consumer endpoint. Clearly those two services are related and share a connection.
Now you can take the silo-route and say the endpoint determines how the message body is defined. Or you can move that interface definition between the two services. Some might call it contract. It is a document of some sort that describes how a request has to look like and what response to expect in return.
So there is now a new element in the model which is the relation between consumer and provider. And the relation is having parts of its own, e.g. the contract with its definitions. You might have heard of contract testing as an approach. Very much simplified, its an approach to test the relation without the availability of one partner of the connection. When both partners have successfully tested the integration with the contract you can assume that the integration between the two services is compatible.
The contract describes the rules for interaction, it describes the way to connect. In a successful live integration the contract is implemented in the services and implicitly used. System A doesn’t send a message to some thing in the middle representing a contract and that hands it over to System B. A sends the message directly to B, respecting the contract. When doing contract testing you replace either A or B with an explicit element as representation of the contract. But that helper is not part of the actual integration between A and B.
Treating the relation as its own element was for me a fascinating insight. And it helped me to cope better with certain situations. Let me give you an example.
In my company I temporarily stepped in as maintainer of our SDLC process. The company produces medical device software, so a rather regulated environment. Accordingly convoluted is our process. I restructured the model behind the SDLC to adapt it to my view on the system from end to end to describe the status quo. The process spans a long time frame and many roles. When presenting the adjusted model I got mostly critique. In the olden days I would have taken this personally. I would be devastated.
What is my relation to the model? I’m the person who tried to visualize a common understanding of all the process steps in the company. These process steps are not me, the model is not me. I collected parts of these steps from other people. The model was reviewed and adjusted. So when the model gets critiqued, it’s the model, or the process or the fact that we work in such a way. I am not this model. I only helped to update the written representation of it.
My actual mental model of this process has reached a complexity that I don’t barely understand myself anymore. Four to five dimensions are needed. While I’m content with the way I described the model, I’m not happy with the actual process it reflects. But that was not me. I barely had influence in any of these decisions. I’m just the person who tried to describe it.
Think about relations around you. Maybe you find examples where you take something very personal, even if something is critiqued, that is not actually you. It’s just related to you. Then look at the relation and analyze the relation. How much of you is really in the something?
As a wood turner I create objects. When someone likes the object, they like the object, not me. When they “hate” the object, they hate the object, not me. I have created the object. Maybe I have put my heart into it. I might be hurt. But the critique is against an object that is the outcome of my work, not me. Two different things. Many people take these things personal, I took these things very personal. Not to that extend anymore, at least not all the time. If someone criticizes me personally, fair enough, then I can take it personally, because it is about me.
If you don’t like this blog post. That is a fair evaluation. If you don’t like the way I think, and you think I’m an idiot. I understand. Maybe I will take it personal. But maybe I will look at the relation between you and me, and then decide if I take it actually personal or not. Because most probably you only come to the conclusion that I’m an idiot, based on my writings or limited interactions with you. If we know each other personally, and interact regularly, and you still think I’m an idiot. Fair enough. Most probably I will agree.