La ingeniería de software ágil combina
una filosofía con un conjunto de lineamientos
de desarrollo.
¿QUÉ ES LA AGILIDAD?
Nota:
La agilidad se ha convertido en la palabra mágica de hoy para describir un proceso del software moderno.
Es difícil predecir qué
requerimientos de software
persistirán y cuáles
cambiarán.
Para muchos tipos de
software, el diseño y la
construcción están
imbricados.
El análisis, el diseño, la
construcción y las
pruebas
AGILIDAD Y EL COSTO DEL CAMBIO
Nota:
Los costos de hacer que esto funcione son mínimos, y el tiempo requerido no perjudicará
el resultado del proyecto.
Principios de agilidad
Nota:
La prioridad más alta es
satisfacer al cliente
Hay que desarrollar los
proyectos con individuos
motivados
El método más eficiente y eficaz para transmitir información
Las personas de negocios
y los desarrolladores
deben trabajar juntos
Son bienvenidos los
requerimientos
cambiantes
La medida principal
de avance es el
software que
funciona.
Entregar con
frecuencia software
que funcione
Factores humanos
Nota:
Habilidad para tomar decisiones.
Colaboración
Enfoque común
Organización propia
Capacidad para resolver problemas difusos
Competencia
Confianza y respeto mutuos
PROGRAMACIÓN EXTREMA (XP)
Nota:
Valores XP:
Beck [Bec04a] define un conjunto de cinco valores que establecen el fundamento para todo trabajorealizado como parte de XP: comunicación, simplicidad, retroalimentación, valentía yrespeto. Cada uno de estos valores se usa como un motor para actividades, acciones y tareasespecíficas de XP.
OTROS
MODELOS
ÁGILES DE
PROCESO
Nota:
Desarrollo adaptativo de software (DAS)
Scrum
Método de desarrollo de sistemas dinámicos (MDSD)
Cristal
Desarrollo impulsado por las características (DIC)
Desarrollo esbelto de software (DES)
Modelado ágil (MA)
Proceso unificado ágil (PUA)
Desarrollo adaptativo de software (DAS)
Nota:
El desarrollo adaptativo de software (DAS) fue propuesto por Jim Highsmith [Hig00] como una
técnica para elaborar software y sistemas complejos. Los fundamentos filosóficos del DAS se
centran en la colaboración humana y en la organización propia del equipo.
Scrum
Nota:
Los principios Scrum son congruentes con el manifiesto ágil y se utilizan para guiar actividades
de desarrollo dentro de un proceso de análisis que incorpora las siguientes actividades estructurales:
requerimientos, análisis, diseño, evolución y entrega.
Método de desarrollo
de sistemas dinámicos
(MDSD)
Nota:
El método de desarrollo de sistemas dinámicos (MDSD) [Sta97] es un enfoque de desarrollo ágil
de software que “proporciona una estructura para construir y dar mantenimiento a sistemas que
cumplan restricciones apretadas de tiempo mediante la realización de prototipos incrementales
en un ambiente controlado de proyectos”
Cristal
Nota:
Para lograr la maniobrabilidad, Cockburn y Highsmith definieron un conjunto de metodologías,
cada una con elementos fundamentales comunes a todos, y roles, patrones de proceso,
producto del trabajo y prácticas que son únicas para cada uno.
Desarrollo
impulsado por las
características (DIC)
Nota:
El desarrollo impulsado por las características (DIC) lo concibió originalmente Peter Coad y sus
colegas [Coa99] como modelo práctico de proceso para la ingeniería de software orientada a objetos.
Desarrollo esbelto de software (DES)
Nota:
El desarrollo esbelto de software (DES) adapta los principios de la manufactura esbelta al mundo
de la ingeniería de software. Los principios de esbeltez que inspiran al proceso DES se resumen
como sigue ([Pop03], [Pop06a]): eliminar el desperdicio, generar calidad, crear conocimiento, aplazar
el compromiso, entregar rápido, respetar a las personas y optimizar al todo.
Modelado ágil (MA)
Nota:
Hay muchas situaciones en las que los ingenieros de software deben construir sistemas grandes
de importancia crítica para el negocio.
El proceso unificado
ágil (PUA)
Nota:
El proceso unificado ágil (PUA) adopta una filosofía “en serie para lo grande” e “iterativa para lo
pequeño” [Amb06] a fin de construir sistemas basados en computadora.
CONJUNTO DE
HERRAMIENTAS PARA EL
PROCESO ÁGIL
Nota:
Algunos defensores de la filosofía ágil afirman que las herramientas automatizadas de software
(por ejemplo, las de diseño) deben verse como un complemento menor de las actividades del
equipo, y no como algo fundamental para el éxito.