Cybernetics or the Science of Systems

It is probably not hard to figure out that one of my main interests in computer science has always been the concept of "systems" and how to build and understand them, their complexity and "liveness". And of course these aspects can be found in many other areas, e.g. social or biological. And perhaps even in machines.

So let me take you on a tour-de-force through some of the papers and books which had the most influence on me over the years. But if you need to know things faster: Principia Cybernetica will give you a good explanation on systems and cybernetics.

It started with Frederic Vester and his books on learning and ecology. He explained the concepts of feedback loops but also made it clear that there are many ways towards understanding.

Next came Ross Ashby, the father of cybernetics. (His classic text on cybernetics is out of print but still available as an e-book from principia cybernetica ). Here the abstract concept of system qualities can be found.

Then came my social studies where I read books on social systems (e.g. native communities). Social biology came up at that time (Riedl, Wilson, Gould) but somehow I found their stuff lacking in methodology, especially when it came to separating genectics and social systems. Part of those studies involved the science of science where I loved Kuhn's ideas on the structure of scientific revolutions - or how scientifc ideas propagate in social systems.

Bateson's ecology of the mind made a deep impression, especially because he seemed to be able to cover so many different areas (technical and social systems) without getting lost. With him I realized there are common things behind systems which are only hidden by the surface characteristics of real systems - the idea behind cybernetics.

When I started working as a Unix kernel hacker I had a large system to play with - the kernel. Even though at that time the inner workings of Unix where not spelled out explicitly, it was clear that the whole thing had system characteristics: components had clearly defined tasks and places and only when everything worked together an operating system emerged.

At that time I realized a paradox: the larger a system became the easier it (or components in it) became. The rationale behind this is simple: a large system needs a good structure to survice. This structure decreases the degrees of freedom for every component and makes them easier to understand with respect to their roles and behavior.

Then I moved into frameworks and distributed systems. I realized that operating systems where nothing else than framworks. Distributed systems showed an interesting feature: their algorithms where different from local ones. They where "found" instead of developed. And on top of this distributed systems showed extreme liveness: they did what they wanted (;-). Peter Wegner created the idea of interaction machines being computationally more powerful than regular turing machines. I was not sure about this but from that time on emergent qualities of systems became a fascination.

Then came Kevin Kelly with "the biology of the new machines" where he shows lots of examples for emergent behaviors.

At that time I also started to look at the interaction between social and technical systems, e.g. in software developement teams. And nowadays it is exactly this interaction that is even more exciting than just studying systems in isolation. At conferences like the ETECH (O'Reilly emergent technology conference) you can learn a lot about this interaction.

So let me end with the conclusion that cybernetics is the real science behind what we call computer science and that IT is just one engineering arm of cybernetics. But the same principles apply in many different technologies. While I was studying such a mixture of methods and sciences was sneered at by the academic establishment but I have the feeling that interdisciplinary approaches will be much more common in the future.