It’s a bit ironic that I study complexity science and suffer personally from the butterfly effect. You know this is where a butterfly flapping its wings in Neasden can cause a tornado in New York; well for me it means that any small thought or interruption sends me flying off in a completely different direction of thought. This effect continues until I end up thinking about too much and have to reset myself before my head explodes. Given this I’m both amazed and proud that I have got as far as I have with this website. Anyway there I was happily working on a first design of a simple simulation of a typical development-test feedback process, when I suddenly returned to worry about one of the most pervasive issues in complexity that sticks in my mind like a shard of glass.
The big problem for me is how I can reconcile applying any of the ideas from complexity science when the systems upon which these ideas are based are so fundamentally different in nature to software projects. How can I ever be sure that what I’m talking about is appropriate?
The whole idea of complexity is that small seemingly insignificant changes can make a huge difference. So if the nature of a project as a system is very different from other systems the concepts and their application may also be completely different. I could just take the easy way out which everyone else seems to be doing and just sort of take the scientific concepts such as emergence, chaos, self-organisation and many others and apply some unsubstantiated pseudo-science to come up with a new approach to managing complexity within projects, but that doesn’t sit comfortably with me.
So where do my worries originate?
Complexity science is focused on investigating the characteristics of complexity for complexity’s sake and not to find out more about the system itself. Therefore complexity science tends to investigate systems that are just complex enough to generate the required types of behaviour. These tend to be simplistic and idealised systems that have been pared down to the bone. Because these systems are simple we tend to know a lot about their components, their interactions and the rules that govern them. Such systems can be categorised into one of three types:
- Simple mechanical systems. In these systems we know a lot about the physics and can describe them in mathematical terms.
- Computational systems. These are usually simple cellular automata. A cellular automata (CA) can be considered as a grid and each cell in the grid can have a state (black or white, or 1 or 0) and each cell has a standard set of rules that decided the state of the cell based upon its current state and that of all of its neighbours. Once again it is simple, we set the rules and we can watch and control the progress of the CA as each cell changes because all of its neighbours are changing (classic feedback).
- Mathematical systems. There happen to be certain mathematical equations that are simple in structure, but produce highly complex results; the most well know is the logistic map. In many respects the mechanical systems are mathematical systems.
Now the good thing about maths is if you have a mathematical description of the system (an equation or two) then you can say things like, “well when its stable then the next calculated state will be the same as the current calculated state”. Then you can plug this idea into the equation and find out under what circumstances this can happen. From this sort of jiggery pokery we can get a feel for specific domains of behaviour and under what circumstances they may appear. Complexity science has analysed these systems to the extremes in an attempt to describe and better understand what it is about systems that cause them to move through the spectrum of complexity. However it is important to realise that none of these systems are very representative of real systems, but they all share a particular characteristic that in certain circumstances the behaviour of these systems becomes repeatable, or periodic.
From the mathematical and mechanical systems we have identified a concept called bifurcation. Bifurcation causes this periodic behaviour to increase in period and in the number of repeatable states resulting in a phenomenon called period doubling, where the number of states that are repeated keeps doubling. As this rate of doubling increases so does the complexity until we reach a point where the repeatability over any realistic period disappears and every state is unique and this is what we define as deterministic chaos.
Meanwhile, in the world of cellular automata; from a lot of detailed analysis Stephen Wolfram (a big cheese in complexity) has defined 4 generic classes of behaviour of the patterns made by the whole class of simple CAs (all 256 of them).
- Class 1 – the system eventually settle into one pattern that may include no pattern (they decay)
- Class 2 – the system eventually settles into many patterns some of which never change and other that repeat (periodicity again).
- Class 3 – the system never settles but is a sea of variability where localised class 1 or class 2 patterns appear in an unpredictable manner (more periodicity).
- Class 4 – again a sea of unpredictable patterns but with localised short and long lived patterns (some periodic) appear and move around interacting with the volatile environment.
Wolfram has further discovered that if you perturb a pattern in a specific class then we can see generalise responses:
- Class 1 – the perturbation decays.
- Class 2- the perturbation has an effect that stays localised.
- Class 3 – the perturbation is transmitted through the entire pattern at a fairly constant rate.
- Class 4- the perturbation is transmitted through the entire pattern but at a varying and unpredictable rate.
This is another way of understanding the way specific classes of system traverse the complexity spectrum. So does this mean we can make a giant leap to infer how the influence of change in an organisation may propagate through it? I don’t think so! My problem is that there are major differences between the simple types of systems from which these discoveries have been made and projects, or more generally any human social endeavours.The list below is my current ‘worry list’:
- As already stated the systems used by complexity science are far from representative of even the simplest real systems.
- Software projects aren’t periodic in any significant way; a characteristic upon which much of the analysis of complexity science seems to be centred. For example the idea of an ordered or stable domain is closely related with regularity, one significant form of which is periodicity.
- Project activities build to a crescendo, which may well equate to a maximal level of complexity (the complexity storm) and then the number of activities decline to zero once the product is delivered. None of the systems explored by complexity science have such a feature.
- Software projects are complex adaptive systems and the localised adaptation plays a significant role in regulating the complex behaviour, this is again something that is not greatly considered in current complexity science. Ok, there is a lot of research into complex adaptive systems but I’m not sure how universal the results are.
- As far as I can ascertain projects cannot be modelled by mathematical methods, cellular automata or simple physical systems and hence the current methods of complexity science cannot be confidently applied.
So where does this leave us, or more importantly me as I’m the one worrying about this stuff. Well firstly I need to make everyone aware of these issues so that we can all make better judgements about what is an appropriate response to all the pseudo-science out there (including my own); it’s not all bad, but we need to be choosy. Secondly I need to justify my viewpoint when applying aspects of complexity science to the understanding of the complex behaviour of projects; that’s why some of the stuff on this website is hard going. Thirdly I need to do more research into developing simple simulations of project based systems so as to look at more realistic behaviour patterns that are appropriate to our needs; I’m on it.
Right back to the simulation models until another perturbation comes along.