There are those among us who believe that a puddle of primoridal ooze, a Ball of Mud, if you will, can, if you leave it alone for four billion years or so, turn into a sentient primate that can ponder his or her own existence without the benefit of “intelligent” design. Indeed, such an “intelligent” creature might him or herself design marvelous software artifacts to burnish mighty civilizations. What ever one might think of the plausibility of biological evolution, surely no one would dispute that software is the product of, if not omnicient, at least semi-intelligent designers.
Teleonomy is the science of adaptation. It is “the quality of apparent purposefulness in living organisms that derives from their evolutionary adaptation”. The term was coined to stand in contrast with teleology. A teleological process is one that is planned in a purposeful way by a sentient, intelligent being. Artifacts that emerge from such a process are the products of foresight, and intent. A teleonomic process, such as evolution, produces products of stunning intricacy without the benefit of such a guiding intelligence. Instead, it blindly accrues information about what has worked, exploiting feedback from the environment via the selection and survival of fitter coalitions of such insight. It unwittingly choreographs a grand audition of a horde of variations on what it has learned thus far, culling the also-rans, and casting the winners in its next production. It hoards hindsight, and uses it to make “predictions” about how to cope with the future.
The Agile movement is itself a product of an emergent zeitgeist that arose around the turn of the last century. It emphasizes adaptation and feedback, hindsight over foresight.
This talk will explore some of the striking parallels between sofware evolution and natural evolution, and examine whether these commonalities are coincidental, or indicative of more fundamental principles of evolution in any complex system.
For instance, practices like pairing have the same benefit in development orgranizations that sexual reproduction has for the genome: best practices are rapidly disseminated throught a population. Similar parallels can be found for short iterations. Even practices not generally regarded as agile, such as copy and paste, have striking biological analogs. Phenomena akin to speciation can be seen in the cultivation of code bases. An examination of evolution in other realms can cast traditional academic thinking regarding modularity and reuse in a fresh light.
I’ve been wanting to develop some of the rough notions in http://www.laputan.org/chaos/chaos.html for, gee, eight years now….