  Our technologies complexify our environments. Thus, new technologies need to
deal with more and more complexity. Several efforts have been made to deal with
this complexity using the concept of self-organization. However, in order to
promote its use and understanding, we must first have a pragmatic understanding
of complexity and self-organization. This paper presents a conceptual framework
for speaking about self-organizing systems. The aim is to provide a methodology
useful for designing and controlling systems developed to solve complex
problems. First, practical notions of complexity and self-organization are
given. Then, starting from the agent metaphor, a conceptual framework is
presented. This provides formal ways of speaking about "satisfaction" of
elements and systems. The main premise of the methodology claims that reducing
the "friction" or "interference" of interactions between elements of a system
will result in a higher "satisfaction" of the system, i.e. better performance.
The methodology discusses different ways in which this can be achieved. A case
study on self-organizing traffic lights illustrates the ideas presented in the
paper.
