Adaptivni razvoj softvera je princip dizajna za stvaranje softverskih sustava. Princip se usredotočuje na brzo stvaranje i razvoj softverskih sustava. Nikada ne postoji razdoblje u kojem je softver gotov; postoje samo stabilna razdoblja između novih izdanja. Metoda adaptivnog razvoja izrasla je iz metode brzog razvoja aplikacija. Ove dvije metode su slične strukture, ali brzi razvoj aplikacija omogućuje vrijeme kada je projekt gotov, dok adaptivni razvoj softvera ne.
Fokus adaptivnog razvoja je u računalnom kodu. Umjesto da unaprijed planiraju softver, programeri imaju osnovnu ideju u svojim glavama i kreću na posao. Kada se dijelovi trebaju promijeniti ili prilagoditi novom sustavu, koderi to jednostavno učine. Ako program treba zakrpu, netko to jednostavno napravi.
Općenito, nedostatak koraka prije planiranja omogućuje programerima da vrlo brzo naprave softver. Iako će to povremeno rezultirati softverom koji ne obavlja precizne potrebne funkcije, to općenito nije problem. Razvojni ciklus u ovom procesu je toliko kratak da nova verzija s dodatnim značajkama može izaći vrlo brzo. Ovaj proces ili brza izrada prototipa je kamen temeljac i adaptivnog razvoja softvera i brzog razvoja aplikacija.
Mjesto na kojem se dvije metode razlikuju je u konačnoj krajnjoj točki. Za adaptivni razvoj softvera ne postoji stvarna krajnja točka, samo vrijeme kada softver više nije potreban ili se kod prenosi u aplikaciju više generacije. S druge strane, brzi razvoj aplikacije omogućuje završetak projekta, vrijeme kada softver nema bugova i ispunjava zahtjeve kupca.
Adaptivni razvoj softvera sastoji se od tri koraka, od kojih se svaki vrti oko kodiranja programa. Prvi korak su spekulacije. Tijekom ove faze koderi pokušavaju razumjeti točnu prirodu softvera i zahtjeve korisnika. Ova se faza oslanja na izvješća o greškama i korisnicima za usmjeravanje projekta. Nema dostupnih izvješća, programeri koriste osnovne zahtjeve koje je naveo kupac.
Faza suradnje je kada pojedinačni programeri učvršćuju ono što svaki rade i kako kombinirati svoje dijelove. Ova je faza općenito u potpunosti unutar kuće. Programerima ne trebaju nikakve dodatne informacije ili vanjski unos za upravljanje ovim dijelom softvera.
Zadnji korak je učenje. Tijekom faze učenja, korisnicima se izdaje najnovija verzija softvera. To generira izvješća o greškama i korisnička izvješća koja se koriste tijekom prve faze projekta, a ciklus se ponavlja.