Too Long; Didn't Read
Complexity: The Emerging Science at the Edge of Order and Chaos -- a book I highly recommend. Complex systems display collective behavior that emerges from interactions between their parts. Software development exhibits many of the properties of complex systems: emergence, non-linearity, and adaption. Software teams, most notably OSS projects, are typically autonomous and self-managed. More importantly, the process of building software is at its heart based on social interactions. This requires software teams to be able to adapt to their changing environment.