Social systems are complicated, and people are not machines.
I personally find it unacceptable to speak of "cause-and-effect" in the traditional, "intuitive sense" in that kind of domain.
In accepting that kind of system as "a complicated network of interactions between people," there is the realization that an observer herself specifies the boundaries of processes, or the beginnings and ends of particular causal chains. Objects and events are not out there, so much as they appear fixed, as a consequence of some stability in an observer's own behavior.
For precisely where in the world can we localize the cause[s] of socio-economic inequality, or of institutionalized racism, acts of terrorism, or of political corruption, etc? For where in the world can we find the beginning of an idea, or the framing of a question?
If the organization of systems of people were strictly linear, it would be trivial to demonstrate, by trial-and-error, precisely where such things are located. However, this does not appear to be the case -- and there are often times where I think there may be more danger than utility in taking this to be the case.
In essence, this approach asks us to define a machine, a function, or a map. What problems like down this path?
Firstly, because the space is incomprehensibly large, one cannot even concretely specify all of the possible states. Instead, a particular observer makes a decision to cut the system into a set of states that are interesting.
Naturally, we cannot behold the entire state of the thing all-at-once. Instead, an observer makes a decision about which part of the system is relevant, and necessarily disregards the rest of the [arguably uncountable] ways in which the thing should be inter-related to the world.
In practice, a perfect specification is not possible because it is a tangle: of heterarchies, of networks, of complex interactions between human actors whose individual behaviors are themselves also indeterminable.
Such an act, in all respects, necessarily involves drawing boundaries. One frames a question, and in doing so, necessarily constrains the possible domain of answers.
Of course, systems exhibit regularities and stable behaviours, but the nature of the attempted description is backwards. One may only specify or articulate the problem given that our universe has been cut down into something concrete. I'd like to point to a transcript of a lecture given by Heinz von Foerster in honor of the sociologist Niklas Luhmann, entitled How Recursive is Communication?:
But consider also that although one can indeed make the inference from given operations to their eigen-behaviours, one cannot make the converse deduction from a stable behaviour, an eigen-behaviour, to the corresponding generative operations.
For example, "one" is the eigen-value of infinitely many different operations. Therefore, the inference from the recursive eigen-value "one" to the square-root operator as the generator is not valid, because the fourth, the tenth, the hundredth root, recursively applied, yield the same eigen-value "one."
Consider that I have become completely perplexed by the number "10". I want
to understand the nature of "10," and the process by which it comes into being.
Now, say I ask you to define me a function
g(), which produces the number
"10." First, you will specify a domain, and then you will specify the map.
Given that there are an infinite number of possible answers which yield "10",
your function tells me very, very little about "10."
However, the outcome is more interesting in a sense. Instead, the function you give me will tell me more about you than it will about the number "10."
In this way, your function
g() becomes a token which signifies your own idea
of how we 'ought to specify "10," or your own idea of the things which are
relevant, or interesting, or beautiful enough to be allowed into a
definition of "10."