15 February 2009

Self-Organization: Flocks, Schools & Colonies

One of the Twelve Principles of Agile Software expressed in the Agile Manifesto, calls for self-organizing teams:

The best architectures, requirements, and designs emerge from self-organizing teams.
Self-organization was recognized in 1955 by Farley and Clark as:


a system that changes its basic structure as a function of its experience and environment
Self-organizing systems are widely observed and recognized in physics, chemistry, mathematics, cybernetics, economics, and biology. The prospect of collective intelligence certainly is intriguing.

What are the characteristics of flock of startlings (above right), schools of fish (left) or a colony bees (below right), that might be relevant to how we form, feed and sustain self-organizing teams?

Birds and Fish
Schools of fish move like a single organism. Schooling reduces the risk of being eaten by a predator because the odds of individual detection are less. Fish, unlike migrating geese who form an aerodynamic vee, do not flock in a regular geometric shape.

Flocks of birds group into a geometric shape for the aerodynamic advantage, but otherwise birds group together obeying similar heuristics as fish. Both organisms perform complex tasks with simple individual behavior. Both groups react instantaneously to external events by spawning different invididual tasks to accomodate external stimuli. Further, small differences in individual behavior might influence the collective behavior of community.

Simulations to mimic flocks of birds use three simple rules:
  1. Collision avoidance - don't crash into a flock-mate;
  2. Velocity matching - move at the same speed as flock-mates;
  3. Centering - strive to stay close to flock-mates.
These simple rules, inate behavior in birds and fish, might spawn a fruitful discussion during your next Retrospective.

Bees, Ants, and Wasps
Colonies of bees and ants perform community tasks by a distributed function that doesn't seem to require a central organizer. The two observed characteristics of interaction are:
  • Hierarchical - one insect asssumes a dominant role and the other submissive
  • Thropic - a community "decision" is made (e.g., ants produce more foragers when food is scarce)
Agile teams need to make community decisions. To be a good Agile teammate, it is important to develop an instinct for the signals of when to exercise dominance and and when to be submissive. You must be capable of both behaviors as events dictate.
A defining property of living systems is that they self-assemble against nature's tendency toward disorder, or entropy ~ Erwin Schrödinger
Many organisms have evolved sophisticated community behaviors. It is instructive to examine other self-organizing communities as we form, feed and sustain our Agile teams.

Want to Read More?