Desarrollo adaptativo de software (ASD) es un proceso de desarrollo de software que proviene del desarrollo rápido de aplicaciones por Jim Highsmith y Sam Bayer. Encarna el principio de que el estado normal se basa en la continua adaptación del proceso de desarrollo al trabajo real.
El desarrollo adaptativo de aplicaciones reemplaza el proceso originado del uso del modelo en cascada con una serie repetitiva de ciclos de especulación, colaboración y aprendizaje. Este ciclo dinámico provee al estado emergente del proyecto de un aprendizaje y adaptación continuas. Un ciclo de vida de ASD debe estar enfocado a la misión, basado en características, iterativo, planeado de acuerdo al tiempo, guiado por riesgos y tolerante al cambio.
Es especulativo debido a la paradoja de la planeación - asumir que todos los interesados del proyecto se encuentran equivocados en ciertos aspectos de la misión del proyecto mientras tratan de definirlos-. Durante la especulación, el proyecto se inicia y la planeación del ciclo adaptativo es conducido. La planeación del ciclo adaptativo utiliza información de iniciación del proyecto --la misión del cliente, las restricciones del proyecto (ej. fechas límites o descripciones del usuario) y requerimientos básicos-- para definir el conjunto de ciclos de lanzamiento (incrementos de software) que serán requeridos para el proyecto.
Colaboración se refiere a los esfuerzos por balancear el trabajo basado en partes predecibles del ambiente (planeando y guiándoles) y adaptándoles a la mezcla incierta de cambios causada por varios factores, tales como la tecnología, requerimientos, interesados y vendedores de software.[1] Los ciclos de aprendizaje, retando a los interesados, están basados en las cortas iteraciones con diseño, construcción y pruebas. Durante éstas iteraciones el conocimiento es conseguido haciendo pequeños errores basados en falsas suposiciones y corrigiendo esos errores, así guiando a mayor experiencia y finalmente maestría en el dominio del problema.[2]