The chaos model is an approach to the software development process that uses ideas from chaos theory to address common issues while working in a team setting. It endeavors to unify the best programming methodologies with the best project management techniques; ideally forming an overall superior strategy. The chaos model's relationship to chaos theory is the idea that large-scale architectural issues cannot be stabilized without also stabilizing the "smaller" issues in the software. Including the individual lines of code.
The chaos model focuses on defining, implementing, and integrating the life cycles of the various smaller aspects of a software development project, on the following levels:
- The project as a whole.
- The various interconnected systems being developed.
- The various modular aspects of the software.
- The software's functions.
- The individual lines of code.
Chaos model strategy
The strategy of the chaos model is to identify pertinent issues and "always resolve the most important issue first" according to the following definitions:
- An issue is an incomplete programming task.
- The most important issue is a combination of big, urgent, and robust: big issues are those which provide value to users in the form of functionality; urgent issues are those which will hold up other work until they are resolved; robust issues are those that are trusted and tested when resolved.
- To resolve an issue is to bring it to a point of stability.