# Software Development as a Complex Adaptive System

DevFeed: [Software Development as a Complex Adaptive System](<https://devfeed.tech/articles/software-development-is-complex-adaptive-system-no-doubt-30409.md>)

Original publisher: [Read original article](<https://www.mdubakov.com/posts/software-development-cas-2/>)

Published: 2008-11-24T15:41:57Z

Content type: opinion

Language: en

Sources: [Blog by Michael Dubakov](<https://devfeed.tech/sources/blog-by-michael-dubakov.md>)

Topics: [Complex Systems](<https://devfeed.tech/topics/complex-systems.md>), [content addressed store](<https://devfeed.tech/topics/content-addressed-store.md>), [Development](<https://devfeed.tech/topics/development.md>), [Software Engineering](<https://devfeed.tech/topics/software-engineering.md>)

Tags: [complex-systems](<https://devfeed.tech/tags/complex-systems.md>), [complexity](<https://devfeed.tech/tags/complexity.md>), [development-process](<https://devfeed.tech/tags/development-process.md>), [software-development](<https://devfeed.tech/tags/software-development.md>)

## AI overview

The article explains software development through the lens of Complex Adaptive Systems (CAS). It introduces CAS as adaptive, decentralized networks of interacting agents and relates their properties--such as self-organization, feedback, information exchange, cooperation, and adaptation--to software development.

## Source excerpt

Complexity science is very young. Cybernetics, ecology, sociology, meteorology all study complexity. In general, a complex system consists of interacting components. The result of this interaction can't be predicted by observing an individual component. For example, human brain consists of neurons. The brain has 'memory', while each neuron doesn't. Ants' colony behavior can't be predicted from the behavior of an individual ant. And it is impossible to understand software development process looking at how just one developer works. We are especially interested in a particular case of complex systems called Complex Adaptive Systems (CAS). The main difference is that CAS may learn and change (adapt) over time based on previous experience. CAS remember the history, and that is the main difference from chaotic systems. There is no common definition of Complex Adaptive System (CAS). One of the most popular definition was offered by John H. Holland A Complex Adaptive System (CAS) is a dynamic network of many agents (which may represent cells, species, individuals, firms, nations) acting in parallel, constantly acting and reacting to what the other agents are doing. The control of a CAS tends to be highly dispersed and decentralized. If there is to be any coherent behavior in the system, it has to arise from competition and cooperation among the agents themselves. The overall behavior of the system is the result of a huge number of decisions made every moment by many individual agents. CAS has quite many common properties. However, hardly a system should have all of them to be CAS. Moreover, researches define different sets of CAS properties. Let's try to review the most common properties and see how software development process can be described in terms of those properties. CAS Property Software Development interpretation Agent System component People in development team and others involved (product owners, stakeholders). Feedback Each agent in CAS reacts to information fl