Software Development and Chaos Theory

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.

Advertisements

5 Responses to “Software Development and Chaos Theory”


  1. 1 timross January 17, 2010 at 4:42 pm

    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/

  2. 2 Steve Johnston February 27, 2011 at 2:41 pm

    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

  3. 3 Lan November 21, 2012 at 1:25 am

    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.

  4. 4 http://tinyurl.com/workbray47875 January 11, 2013 at 10:49 pm

    “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


  1. 1 rob bowley - adventures in software craftsmanship » Blog Archive » Understanding chaos and what it means to software development Trackback on January 18, 2010 at 7:31 am

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s





%d bloggers like this: