Razvoj programske opreme je zapletena operacija, ki zahteva poslovno žilico in temeljno razumevanje tehnologije. V industriji računalniške programske opreme so bili opredeljeni in uporabljeni številni okviri, da se zagotovi, da programska oprema ustreza potrebam stranke. Model kaosa je model razvoja programske opreme, ki uporablja komponente agilnega razvojnega okvira in razvojnega okvira slapa, vendar gleda na edinstvene potrebe reševanja problemov za ustvarjanje učinkovite programske kode.
Model kaosa in življenjski cikel kaosa je prvič predstavil LBS Raccoon leta 1994. V tem modelu so vsi projekti opredeljeni z linearno zanko reševanja problemov in učinki skupinske dinamike znotraj organizacije in ekipe za razvoj programske opreme. Vsak problem znotraj modela je razdeljen na manjšo zanko za reševanje problemov, ki temelji na sloju znotraj organizacije.
Linearno reševanje problemov je proces, pri katerem se problem rešuje na linearni način s koraki ali procesi. Linearna zanka za reševanje problemov modela kaosa je sestavljena iz definicije problema, tehničnega razvoja, integracije rešitve in statusa quo. Ključni element v modelu je linearna zanka reševanja problemov, ki se uporablja na vseh ravneh programa in organizacije.
Znotraj modela kaosa obstaja več ravni zahtev. To so nivo programa, nivo komponente, nivo funkcije in ena vrstica ravni kode. Osnovna ideja modela je, da je programska koda kompleksna integracija tisočerih modulov, funkcij in vrstic kode. Ta kaos integracije upravičuje metodo, ki definira integracijo med celotnim programom in kodo, ki ta program definira.
Večina metodologij razvoja programske opreme se danes osredotoča na komunikacijo in razvoj podrobnosti. Ta pristop ustvarja preglednost med željami vodstva na visoki ravni in razumevanjem vprašanj in prednostnih nalog razvojne ekipe. Model kaosa opredeljuje potrebno nižjo raven interpretacije in poskuša obravnavati razvoj programske opreme iz linearnega procesa reševanja problemov, ki je temeljnega pomena pri razvoju vse programske opreme.
Agilni okviri od strank zahtevajo, da za implementacijo dajo prednost poslovni funkcionalnosti. Model kaosa skuša najprej rešiti najpomembnejša vprašanja od programa najvišje ravni do generiranja kode najnižje ravni. Ta celoten programski pogled na programsko aplikacijo poudarja kritično potrebo po vključitvi zasnove na ravni ene kode, ki jo je treba izvesti za izpolnjevanje zahtev programske ravni.
Ta model upošteva humanistično stran razvojnega prizadevanja. Razvojno ekipo sestavljajo posamezniki, ki morajo načrtovati in konfigurirati module znotraj programske aplikacije. Vsak član ekipe mora v kodi sprejemati kritične odločitve, ki bi lahko vplivale na celoten program. Model kaosa upošteva interakcijo med člani ekipe pri spreminjanju kodiranja.
Zanka za linearno reševanje problemov predpostavlja, da mora biti razvojna ekipa komunikativna z ekipo in zagotoviti, da se izvaja ustrezna tehnika. Ta pristop bo omejil tveganje prekomernega oblikovanja rešitve. Razvijalci programske opreme, ki uporabljajo model kaosa, razvijajo izdelke z linearno zanko za reševanje problemov in podkomponentami za upravljanje ustvarjanja kompleksne programske opreme.