Razvoj softvera je složena operacija koja zahtijeva poslovnu sposobnost i temeljno razumijevanje tehnologije. Mnogi okviri definirani su i korišteni u industriji računalnog softvera kako bi se osiguralo da softver zadovoljava potrebe korisnika. Model kaosa je model razvoja softvera koji koristi komponente agilnog razvojnog okvira i vodopada razvojnog okvira, ali gleda na jedinstvene potrebe rješavanja problema za stvaranje učinkovitog softverskog koda.
Model kaosa i životni ciklus kaosa prvi je uveo LBS Raccoon 1994. godine. Unutar ovog modela svi projekti su definirani linearnom petljom rješavanja problema i učincima grupne dinamike unutar organizacije i tima za razvoj softvera. Svaki problem unutar modela podijeljen je u manju petlju rješavanja problema na temelju sloja unutar organizacije.
Linearno rješavanje problema je proces u kojem se problem rješava na linearni način kroz korake ili procese. Linearna petlja rješavanja problema kaosnog modela sastoji se od definicije problema, tehničkog razvoja, integracije rješenja i statusa quo. Ključni element unutar modela je linearna petlja rješavanja problema koja se koristi na svim razinama programa i organizacije.
Unutar modela kaosa postoji više razina zahtjeva. To su razina programa, razina komponente, razina funkcije i jedna linija koda. Osnovna ideja modela je da je softverski kod složena integracija tisuća modula, funkcija i linija koda. Ovaj kaos integracije jamči metodu koja definira integraciju između cijelog programa i koda koji definira taj program.
Većina metodologija razvoja softvera danas se usredotočuje na komunikaciju i proces razvoja detalja. Ovaj pristup stvara transparentnost između želja visoke razine menadžmenta i razumijevanja problema i prioriteta razvojnog tima. Model kaosa definira nužnu nižu razinu interpretacije i pokušava riješiti razvoj softvera iz linearnog procesa rješavanja problema, što je temeljno u razvoju cjelokupnog softvera.
Agilni okviri zahtijevaju od korisnika da daju prioritet poslovnoj funkcionalnosti za implementaciju. Model kaosa nastoji najprije riješiti najvažnije probleme od programa najviše razine do generiranja koda najniže razine. Ovaj cjeloviti programski prikaz softverske aplikacije naglašava kritičnu potrebu za uključivanjem dizajna na razini jednog koda koji se mora postići kako bi se zadovoljili zahtjevi na razini programa.
Ovaj model objašnjava humanističku stranu razvojnog napora. Razvojni tim se sastoji od pojedinaca koji moraju dizajnirati i konfigurirati module unutar softverske aplikacije. Svaki član tima mora donijeti kritične odluke u kodu koje bi mogle utjecati na cijeli program. Model kaosa uzima u obzir interakciju među članovima tima prilikom izmjena kodiranja.
Linearna petlja rješavanja problema pretpostavlja da razvojni tim mora biti komunikativan s timom i osigurati implementaciju odgovarajuće tehnike. Ovaj pristup će ograničiti rizik od prekomjernog projektiranja rješenja. Programeri softvera koji koriste model kaosa razvijaju proizvode s petljom linearnog rješavanja problema i podkomponentama za upravljanje stvaranjem složenog softvera.