This is an old revision of the document!
“Emergence” is defined in terms that seem, at first, to dance around rhetorical redundancy. Aristotle (384–322 BC) is recognized as the first to describe emergence :
On Aristotle’s view, human beings, like other “secondary” substances, arise from a distinctive arrangement of the four material elements. While the mental powers of human beings require and are necessitated by such an arrangement, these powers are distinct from, and downwardly causally efficacious with respect to, any non-mental powers.
Let's bring this wording forward about 2300 years. Consider a system composed of elemental parts. The elemental parts are considered to be well-known in their properties and interactions. As this system increases in complexity, there can be observed additional behaviors, which are unique and distinct from the total of the properties exhibited by the elemental components. Furthermore, the newly exhibited behaviour of this complex system cannot be explained through any logical examination of the component elements and their properties. The new behaviour has “emerged” from the complex system of elemental components.
Darwin used the idea of emergence to describe new behaviours of living beings that, although possibly explained by evolutionary incremental response to the being's external environment, nevertheless exhibited behaviour to adapt that could not have been predicted in any logical way from analysis of the preceeding environment and behaviours.
We technologists, especially of the software engineering kind, discuss emergence most often in context of SystemArchitecture (and EnterpriseArchitecture). Our systems are built of components, often independent services, which we have created to have very specific, Mathematically complete, API's. Functions of those API, their methods, which we call “behaviour”. This system grows in complexity as we add other component-service to it, accomplishing more and greater processes. At some point, as we continue to observe the operation of this system in real-time, we begin to observe interactions of the system with client-callers that are beyond the original definition of the system nor any of it's component-services. This behaviour has emerged by it's complex composition, exhibiting a behaviour that previously was not predicted. Most often, this new behaviour is often surprising and could not have been predicted by any logical analysis of the component-services and their API functions.