Adaptiv mjukvaruutveckling är en designprincip för att skapa mjukvarusystem. Principen fokuserar på snabbt skapande och utveckling av mjukvarusystem. Det finns aldrig en period då programvaran är färdig; det är bara stabila perioder mellan nya releaser. Den adaptiva utvecklingsmetoden växte fram ur den snabba applikationsutvecklingsmetoden. Dessa två metoder liknar strukturen, men snabb applikationsutveckling tillåter en tid när projektet är färdigt, medan adaptiv mjukvaruutveckling inte gör det.
Fokus för adaptiv utveckling ligger i datorkoden. Istället för att planera programvaran i förväg har utvecklarna en grundidé i huvudet och de går till jobbet. När delar behöver ändras eller anpassas till ett nytt system, gör kodarna helt enkelt det. Om programmet behöver en patch, gör någon det bara.
Sammantaget gör avsaknaden av förplaneringssteg det möjligt för utvecklarna att göra programvaran mycket snabbt. Även om detta ibland kommer att resultera i programvara som inte utför de exakta funktioner som krävs, är det i allmänhet inte ett problem. Utvecklingscykeln i denna process är så kort att en ny version med ytterligare funktioner kan komma ut mycket snabbt. Denna process eller snabba prototyper är hörnstenen i både adaptiv mjukvaruutveckling och snabb applikationsutveckling.
Platsen där de två metoderna skiljer sig är i den slutliga slutpunkten. För adaptiv mjukvaruutveckling finns det ingen riktig slutpunkt, bara en tidpunkt då programvaran inte längre behövs eller koden porteras till en högre generations applikation. Å andra sidan möjliggör snabb applikationsutveckling slutet på ett projekt, en tid då programvaran är buggfri och har uppfyllt köparens krav.
Adaptiv mjukvaruutveckling består av tre steg, vart och ett kretsar kring kodningen av ett program. Det första steget är spekulationer. Under denna fas försöker kodare förstå programvarans exakta natur och användarnas krav. Denna fas förlitar sig på fel- och användarrapporter för att vägleda projektet. Eftersom inga rapporter är tillgängliga använder utvecklarna de grundläggande kraven som anges av köparen.
Samarbetsfasen är när de enskilda utvecklarna stelnar vad de var och en gör och hur de ska kombinera sina portioner. Denna fas är i allmänhet helt internt. Utvecklarna behöver ingen ytterligare information eller extern input för att hantera denna del av programvaran.
Det sista steget är att lära. Under inlärningsfasen släpps den senaste versionen av programvaran till användarna. Detta genererar bugg- och användarrapporter som användes under projektets första fas, och cykeln upprepar sig.