Complexity science is a broad field with vague boundaries, so no single book can cover the whole field in depth. In this book, Neil Johnson focuses on a definition of complexity associated with a particular class of computational models, and he describes these models and their resulting behaviors at a level suitable for the general reader (somewhat detailed descriptions, but essentially no formal math). He has a PhD in physics and has himself done considerable research on these types of models (see the references at the end of the book), so his knowledge in this area is fairly authoritative.
For Johnson, a complex system has the following characteristics:
(1) A population of multiple (at least three) interacting objects or "agents" which typically form a network. These objects may be very simple, but they don't have to be.
(2) Competition among the objects for limited resources. As part of this overall competition, there can also be local cooperation within the system.
(3) Feedback processes, which give the system memory and history.
(4) Ability of the objects to adapt their strategies in response to their history.
(5) Ability of the system to interact with its environment.
(6) Self-organization of system behavior, without the need for a central controller.
(7) Emergence of non-trivial patterns of behavior, including a complicated mixture of ordered and disordered behavior. This can include chaotic behavior, as well as extreme ordered behavior (eg, traffic jams, market crashes, human diseases and epidemics, wars, etc.).
Johnson gives many examples of complex systems, and a jazz band is among the most interesting of these examples (the jazz performance is the behavior of the system).
Here are some of the key results from the models he describes:
(1) Even if the objects comprising the population of the system are complicated and heterogeneous (eg, people), this variability tends to "average out" in a way that allows the objects to be modeled as being fairly simple and homogeneous (at least as a first approximation).
(2) Due to competition, the population of objects will often become polarized into two opposing groups (eg, bears and bulls in financial markets, opposing political parties, etc.). This competition tends to reduce fluctuations in the behavior of the system.
(3) It's sometimes possible to steer the behavior of a system by manipulating a subset of the system's objects.
(4) Network structure tends to make complex systems more robust.
(5) The overall behavior of a system, and the ability of individual objects in the system obtain resources, depends on both the amount of available resources and the level of connectivity (network structure) between objects. When resources are only moderate, adding a small amount of connectivity widens the disparity between successful and unsuccessful objects, whereas adding a high level of connectivity reduces this disparity. By contrast, when resources are plentiful, adding a small amount of connectivity is sufficient to increase the average success rate and enable most objects to be successful. These patterns are consistent with what I've observed in the competition among engineering firms over the years (including during the current recession, a time of reduced resources).
(6) The behavioral outcomes of complex systems often follow a power law distribution, with smaller events being most common, but with extreme events also occurring more often than one might expect.
One of my main motivations to read this book was to get insight into how malignant tumors might be modeled as complex systems, with the hope that such models might provide clues regarding more effective ways to treat cancer. I was pleased to see that Johnson does discuss cancer at several points in the book, but I was disappointed to find that his discussion of cancer modeling is relatively superficial. Nevertheless, I'm firmly convinced that cancer is best modeled as a complex system, so I believe that much more research along these lines is (urgently) needed.
Overall, I do recommend this book. Johnson is qualified to write it, and it works well as an easily understood introduction at a level of detail suitable for general readers. However, again, keep in mind that the scope of the book is fairly narrow, so many important topics aren't mentioned at all. As a result, the book provides a good understanding of some of the trees in the forest of complexity science, but not much sense of the overall forest. For a broader introduction to complexity science, I recommend Complexity: A Guided Tour by Melanie Mitchell.