Software development is a complex operation that requires a business acumen and fundamental understanding of technology. Many frameworks have been defined and used in the computer software industry to ensure software meets the needs of the customer. The chaos model is a software development model that uses components of agile development framework and the waterfall development framework but looks at the unique needs of problem solving to create effective software code.
The chaos model and chaos life cycle were first introduced by L.B.S. Raccoon in 1994. Within this model all projects are defined with a linear problem solving loop and the effects of group dynamics within an organization and software development team. Each problem within the model is broken into a smaller problem solving loop based on the layer within the organization.
Linear problem solving is the process where a problem is resolved in a linear manner through steps or processes. The chaos model linear problem solving loop consists of a problem definition, technical development, solution integration, and status quo. The key element within the model is the linear problem solving loop is used at all levels of the program and organization.
Within the chaos model there are multiple levels of requirements. These are program level, component level, function level, and one line of code level. The core idea behind the model is that software code is a complex integration of thousands of modules, functions, and lines of code. This chaos of integration warrants a method that defines the integration between the entire program and the code that defines that program.
Most software development methodologies today focus on communication and detail development process. This approach creates a transparency between the high level management desires and the development team understanding of the issues and priorities. The chaos model defines a necessary lower level of interpretation and attempts to address software development from a linear problem solving process, which is fundamental in all software development.
Agile frameworks require customers to prioritize business functionality for implementation. The chaos model seeks to resolve the most important issues first from the top-level program to the lowest level code generation. This full program view of a software application highlights the critical need to include the single code level design that must be accomplished to meet the program level requirements.
This model accounts for the humanistic side of a development effort. The development team is made of individuals who must design and configure the modules within the software application. Each team member must make critical decisions in the code that could impact the entire program. The chaos model accounts for the interaction among the team members when making coding changes.
The linear problem solving loop assumes that the development team must be communicative with the team and ensure the proper technique is implemented. This approach will limit the risk of over engineering a solution. Software developers using the chaos model develop products with a linear problem solving loop and sub-components to manage complex software creation.