After watching an excellent BBC documentary called The Secret Life of Chaos, I was interested to see if anyone had written about the association between chaos theory and the unpredictable nature of software development.
I came across these papers written in 1995 by L.B.S. Raccoon:
The Chaos Model and the Chaos Life Cycle
Raccoon (1995) The Chaos Model and the Chaos Life Cycle, in ACM Software Engineering Notes, Volume 20, Number 1, Pages 55 to 66, January 1995, ACM Press. (PDF available here).
The chaos model combines a linear problem-solving loop with fractals to suggest that a project consists of many interrelated levels of problem solving. The behaviour of a complex system emerges from the combined behaviour of the smaller building blocks.
The chaos life cycle defines the phrases of the software development life cycle in terms of fractals that show that all phrases of the life cycle occur within other phrases.
This suggests an iterative, outside-in development process, which is one of the fundamental principles of Behaviour-Driven Development (BDD).
The Chaos Strategy
Raccoon (1995) The Chaos Strategy, in ACM Software Engineering Notes, Volume 20, Issue 5, Pages 40 to 47, December 1995, ACM Press. (PDF available here).
The main rule in chaos strategy is always resolve the most important issue first. This reflects the Just-in-Time production ideology as promoted by Lean Software Development.
It’s interesting to note that today’s popular agile software methodologies use some of the principles of chaos theory as presented in these papers. It seems that software development is recognised as an example of complexity at work.
Agile software development follows a natural, evolving, chaotic cycle. The smallest variation in conditions can result in a massive difference in outcome. There will never be a way of accurately predicting the outcome of a complex software project. We simply have to accept chaos as a fact of life and embrace an evolutionary development process.
Rob Bowley has also posted some good resources on chaos and what it means to software development:
http://blog.robbowley.net/2010/01/17/understanding-chaos-and-what-it-means-to-software-development/
For a discussion of a suite of effective theories that describe the behavior of software, see my blog on softwarephysics at:
http://softwarephysics.blogspot.com/
Specifically, take a look at this posting:
Software Chaos
http://softwarephysics.blogspot.com/2008/04/introduction-to-softwarephysics.html
When searching for a professional real estate dealer, enquire about their main
income source. The representative’s response ought to be available and honest and really should help it become obvious if the likes and dislikes and guidelines of your firm are in accordance with yours. Be certain you understand specifically which area of the firm’s purchase
with you will be rewarding for your company.
“Software Development and Chaos Theory Tim Ross – Software Developer”
was indeed a delightful posting, cannot wait to look
at a lot more of your blogs. Time to spend a lot of time online lolz.
Thanks for your effort ,Barney