Complexity isn’t a bad thing. If we are willing to accept that it is there, maybe we will be able to embrace it. And start taking it as a given instead of something we should try to conquer. It’s the way we try to distribute complexity where things can go wrong. A very natural tendency we seem to have is to consider a complex case, abstract by leaving out all things we don’t want to see and then renew partially. Look at today’s larger organizations: they are often large, complex social systems. And yet we seem to support them predominantly with swiss-army-knive type architectures because that makes things easier for at least a part of the organization. It’s in fact a brute force method for which you need brute force governance. And it most probably leads to suboptimization which is not bad perse but if we could make it better, why not? So that is where a few simple renewal principles might come to help. A flock of birds needs only two principles to stay airborne: know the distance and speed of your direct neighbors and adapt your own distance and speed to that. The flock principles. Now suppose we tried to handle complex cases in our complex social systems based on these flock principles. And suppose we abstracted out all redundant information, we would already be able to “stay airborne” and still renew locally. Abstracting out would imply leaving out all relationships that are not directly connected (or to compare with the flock: no direct visibility). Then you only need to handle the direct relationships (the ones that have direct visibility) but you may never change the global “flock” principles. So if we would limit the number of direct relationships and trust on eachother that the total still would work optimal, this could possibly help us architecting distributed concepts.
December 14, 2011