Chaos model
Encyclopedia
In computing
Computing
Computing is usually defined as the activity of using and improving computer hardware and software. It is the computer-specific part of information technology...

, the Chaos model is a structure of software development
Software development
Software development is the development of a software product...

. Its creator, L.B.S. Raccoon, noted that project management models such as the spiral model
Spiral model
The spiral model is a software development process combining elements of both design and prototyping-in-stages, in an effort to combine advantages of top-down and bottom-up concepts. Also known as the spiral lifecycle model , it is a systems development method used in information technology...

 and waterfall model
Waterfall model
The waterfall model is a sequential design process, often used in software development processes, in which progress is seen as flowing steadily downwards through the phases of Conception, Initiation, Analysis, Design, Construction, Testing, Production/Implementation and Maintenance.The waterfall...

, while good at managing schedules and staff, didn't provide methods to fix bugs or solve other technical problems. At the same time, programming methodologies, while effective at fixing bugs and solving technical problems, do not help in managing deadlines or responding to customer requests. The structure attempts to bridge this gap. Chaos theory
Chaos theory
Chaos theory is a field of study in mathematics, with applications in several disciplines including physics, economics, biology, and philosophy. Chaos theory studies the behavior of dynamical systems that are highly sensitive to initial conditions, an effect which is popularly referred to as the...

 was used as a tool to help understand these issues.

Software development life cycle

The chaos model notes that the phases of the life cycle apply to all levels of projects, from the whole project to individual lines of code.
  • The whole project must be defined, implemented, and integrated.
  • Systems must be defined, implemented, and integrated.
  • Modules must be defined, implemented, and integrated.
  • Functions must be defined, implemented, and integrated.
  • Lines of code are defined, implemented and integrated.


One important change in perspective is whether projects can be thought of as whole units, or must be thought of in pieces. Nobody writes tens of thousands of lines of code in one sitting. They write small pieces, one line at a time, verifying that the small pieces work. Then they build up from there. The behavior of a complex system emerges from the combined behavior of the smaller building blocks.

Chaos Strategy

The chaos strategy is a strategy of software development based on the chaos model. The main rule is always resolve the most important issue first.
  • An issue is an incomplete programming task.
  • The most important issue is a combination of big, urgent, and robust.
    • Big issues provide value to users as working functionality.
    • Urgent issues are timely in that they would otherwise hold up other work.
    • Robust issues are trusted and tested. Developers can then safely focus their attention elsewhere.
  • To resolve means to bring it to a point of stability.


The chaos strategy resembles the way that programmers work toward the end of a project, when they have a list of bugs to fix and features to create. Usually someone prioritizes the remaining tasks, and the programmers fix them one at a time. The chaos strategy states that this is the only valid
way to do the work.

The chaos strategy was inspired by Go
Go (board game)
Go , is an ancient board game for two players that originated in China more than 2,000 years ago...

 strategy.

Connections with Chaos theory

There are several tie-ins with chaos theory
Chaos theory
Chaos theory is a field of study in mathematics, with applications in several disciplines including physics, economics, biology, and philosophy. Chaos theory studies the behavior of dynamical systems that are highly sensitive to initial conditions, an effect which is popularly referred to as the...

.
  • The chaos model may help explain why software tends to be so unpredictable.
  • It explains why high-level concepts like architecture
    Computer architecture
    In computer science and engineering, computer architecture is the practical art of selecting and interconnecting hardware components to create computers that meet functional, performance and cost goals and the formal modelling of those systems....

    cannot be treated independently of low-level lines of code.
  • It provides a hook for explaining what to do next, in terms of the chaos strategy.

Further reading

  • Roger Pressman (1997) Software Engineering: A Practitioner's Approach 4th edition, pages 29–30, McGraw Hill.
  • 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.
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK