Mike Beedle’s position paper for the upcoming Feyerabend workshop at the Santa Fe Institute in April of 2002.

 

Copyright Mike Beedle, 2001

 

Software intelligence should depend on context.  That is, in some cases we do want intelligent software in some cases we want to be completely prescriptive, and most of the time we'd like to be somewhere in the middle that allows humans to have a symbiotic and coevolving relationship with the software.

 

And ecosystem, in my view, can be defined as a collection of interacting organisms, some of them which are made of software and human agents that have a common purpose, and that play cooperative games to help each other.  For example, a set of software and human agents that cooperate with each other for trading stock can be considered a multi-agent.

 

Since we are talking about a general biological framing of computing and software development, maybe it is a good idea to see "the big picture" and include human organization in a larger context.

 

In this context we can talk about a biological frame for the teams and organizations that develop the software in their own right, and even a whole business.  Some work has already been done in this area in the explicit and premeditated application of CAS (Complex Adaptable Systems) principles to software development, for example see: http://www.controlchaos.com http://www.e-architects.com/scrum http://jeffsutherland.com/scrum/

 

In the realm of human organizations, we can propose some blunt hypothesis for a living metaphor of organizations, including the software development activities. 

 

 

1. Living Metaphor of Organizations

 

We can use the same analogies for tissues, organs, organ systems and living organisms to map directly into teams mapping to tissues (case, process, etc.), collections of teams in the within the same business process (mapping to organs), and larger aggregations that correspond to organ systems i.e. like a larger business process such as order fulfillment that may depend on lower level functions like shipping. 

 

 

2. Agents

 

We can propose that the unit of human organization is an individual:

 

            agent == individual

 

and that these agents also satisfy all the previous internal constraints:

 

sensing messages from other agents or the environment,

translating these messages or measurements,

filtering the messages or measurements,

interpreting messages and determining actions,

queuing actions by prioritizing actions according to plans,

generating beliefs,

storing beliefs,

 

and external inter-agent constraints:

 

- individuals in the organization _must_ also play balanced cooperative games, that would allow them to seek their well-being as well as the well-being of the organizations. And again, through this cooperation, individuals may form symbiotic communities that coevolve with each other

 

- the individuals interact with each other through spoken and written languages in the hope to share knowledge and information.  These are the "agent communication languages" at the organizational level.

 

- individuals also have the ability to sense and share knowledge about the overall well being of each community, other communities,  and even the whole, and they must have means of communicating this information.

 

- individual also have shared and non-shared ontologies i.e. individual knowledge, team knowledge, organizational knowledge.  This really boils down to cultural stuff.

 

- individuals and organizations at any level may have a basic set of given contingent plans in case of "system faults" and also be provided with the ability to learn from errors.  At the people level, these are emergency procedures and "lessons learned", things that come from reflection, introspection and feedback.

 

- each team or organization would be semi-independent and would self-organize according its internal control systems, but also affect the whole.  In Scrum we certainly do that. 

 

3. Homeostasis

 

We can seek to maintain homeostasis in the organization by using both internal and external controls.  Internal controls are controls used within a single team or organization.  External controls are checks and balances among different teams and across the organization.

 

As before, most of the control systems depend mostly on negative feedback i.e. they measure states and react inversely to the rate of change to compensate. 

 

4. What are systems?

 

THE INTEGUMENTARY SYSTEM - what is the "skin" of an organization?  Its interfaces with the external world?

THE CIRCULATORY SYSTEM - what is the "circulatory" equivalent?  Do we need this metaphor for an organization?

 

LYMPHATIC SYSTEM AND IMMUNITY - Firing, Corporate moles, security checks, clearances, cameras, tracking systems, audits, etc.

 

THE DIGESTIVE SYSTEM - Probably not an applicable metaphor.  Though some companies do treat their employees like defecation ;-)

 

THE NERVOUS SYSTEM - definitely the main extrinsic and homeostatic system for an organization: spoken language, emails, phones, meetings, the collective consciousness, status meetings, status reports, assignments, agreements, signing up for work, documented plans, executives, the board, etc.

 

THE ENDOCRINE SYSTEM - Don't know how this would apply to organizations.

 

THE REPRODUCTIVE SYSTEM - asexual reproduction makes sense for organizations i.e. fission, budding, fragmentation, cloning, slicing, etc.

 

THE MUSCULAR - don't think we need this metaphor for organizations.

 

SKELETAL SYSTEMS - buildings, hallways, etc.

THE RESPIRATORY SYSTEM - Don't think we need that metaphor for organizations.

 

THE EXCRETORY SYSTEM - Disposing of unusable information of materials?

 

5. Organic Growth and Morphogenesis

In an identical fashion, we can propose that organizations evolve from small embryo teams to full-fledged organisms through morphogenesis.  And again, this morphogenesis is a directed differentiation process dictated by a pattern language kept in every agent i.e. the individual.

 

As the organization grows there would be sensors and rules in place that would determine the existence of a context and trigger the rule - a pattern, to execute and transforms individuals, and teams, into new forms.  The resulting context would then set a new context from where other patterns can be applied.