Desarrollo de software adaptativo


El desarrollo de software adaptativo ( ASD ) es un proceso de desarrollo de software que surgió del trabajo de Jim Highsmith y Sam Bayer sobre el desarrollo rápido de aplicaciones (RAD). Encarna el principio de que la adaptación continua del proceso al trabajo en cuestión es el estado normal de las cosas.

El desarrollo de software adaptativo reemplaza el ciclo de cascada tradicional con una serie repetitiva de ciclos de especulación , colaboración y aprendizaje . Este ciclo dinámico prevé el aprendizaje continuo y la adaptación al estado emergente del proyecto. Las características de un ciclo de vida de ASD son que se centra en la misión, se basa en funciones, es iterativo , está limitado en el tiempo, está orientado al riesgo y es tolerante al cambio. Al igual que con RAD, ASD también es un antecedente para el desarrollo ágil de software .

La palabra especular se refiere a la paradoja de la planificación: es más probable suponer que todas las partes interesadas están igualmente equivocadas en ciertos aspectos de la misión del proyecto, al tratar de definirla. Durante la especulación, se inicia el proyecto y se lleva a cabo la planificación del ciclo adaptativo. La planificación adaptativa del ciclo utiliza la información de iniciación del proyecto: la declaración de la misión del cliente, las restricciones del proyecto (p. ej., fechas de entrega o descripciones de usuarios) y los requisitos básicos, para definir el conjunto de ciclos de lanzamiento (incrementos de software) que se requerirán para el proyecto.

La colaboración se refiere a los esfuerzos para equilibrar el trabajo en función de partes predecibles del entorno (planificarlas y guiarlas) y adaptarse a la mezcla incierta de cambios que provocan diversos factores, como la tecnología, los requisitos, las partes interesadas y los proveedores de software. Los ciclos de aprendizaje , que desafían a todas las partes interesadas, se basan en iteraciones cortas con diseño, construcción y prueba. Durante estas iteraciones, el conocimiento se recopila cometiendo pequeños errores basados ​​en suposiciones falsas y corrigiendo esos errores, lo que conduce a una mayor experiencia y, finalmente, a un dominio del dominio del problema. [1]