During the talk of Giovanna Di Marzo Serugendo I learned a new term: Stigmergy.
It stems from biology (from 1959, actually) and describes self-organizing systems in which the next actions are determined by the state of the environment. This way, agents don't even need to have a memory or communicate. They leave their environment in some state, and whoever wants to do further work there knows how to go on.
There are to ways to do this:
- Leave a marker, for example the pheromone traces of ants carrying information on where to go.
- Leave the work in a state. The wasps, for example, build hives in hexagons. Whatever the actual state of the hive is, it is obviously defined by some simple rules which every wasp knows where to build the next hexagon.
Systems like this have a property that I think I remember from autopoietic systems: The single actors are not needed for the system to survive (since their memory or their communication holds no existential information).
I noticed in a discussion with Gabriel yesterday that this is a vision of professional programmer teams:
In programming, the number of hidden assumtions rises all the time and code that isn't reviewed to be readable most likely does what it should, but it becomes more and more unclear for other humans what the code intends to do as it grows. The current mantra is top let the code be so clean, documented and self-describing that any developer can quit the team without taking the whole project down with him. This 'clean-code' mentality requires a lot of discipline by developers and adherence to standards.
These standards develop during discussions in the programming community. The tendency to demanding stable systems makes the individual programmer less important. And they help making this possible by themselves. Fascinating.