Proyecto integrador. Las TIC en la sociedad S4.pptx
Metología Agiles Desarrollo Software (XP)
1. Universidad de los Andes
Facultad de Humanidades y Educación
Maestría en Educación Mención Informática y Diseño Instruccional
Metodologías Ágiles para
Desarrollo de Software
eXtreme Programming (XP)
Participante:
Ramón Torres
Mérida, Julio 2009
2. Metodologías Ágiles (livianas) para
Desarrollo de Software
Simplicidad – Velocidad – Entrega Productos - Retroalimentación
Son un paradigma de Desarrollo de Software basado en procesos
. ágiles los cuales intentan evitar los conflictos (retardos, complejidad,
conflictividad, costos, otros) de las metodologías tradicionales.
Incremental – Cooperativo – Sencillo - Adaptable
Promueve el logro de iteraciones a lo largo del ciclo de vida del
Proyecto, buscando productos de software con bajos costos y
minimizando riesgos
Promueven la comunicación cara a cara entre los miembros del
Proyecto y los clientes, evitando el trabajo de documentación
fijado por las metodologías tradicionales
Se fundamenta en trabajo organizado de equipos para la continua
Revisión y Tratamiento de los productos de software alcanzados
en cada iteración - reunión
Son cuestionados y etiquetados como “Indisciplinados”, por el
Estilo de trabajo y la poca producción de documentación técnica
3. Metodologías Ágiles (livianas) para
Desarrollo de Software
Metodologías Tradicionales Metodologías Ágiles
.
Mayores instrumentos de Documentación Pocos instrumentos de Documentación de
de modelos, el cual es esencial y se modelos. El modelado es prescindible y
requiere su mantenimiento. hasta desechables.
Actores con mayores roles específicos y Actores con pocos roles, más genéricos y
funcionales flexibles
El cliente interactúa con el equipo de El Cliente es parte del equipo de
desarrollo mediante reuniones desarrollo (además in-situ)
La arquitectura se define previamente La arquitectura del Software se va
en el proyecto (análisis – diseño) definiendo y mejorando a lo largo del
proyecto
Énfasis en la definición del proceso: Énfasis en los aspectos humanos: el
roles, actividades y artefactos individuo y el trabajo en equipo
Se espera que no ocurran cambios de Se esperan cambios durante el proyecto
gran impacto durante el proyecto
Tomado de Penandes (2002)
4. Metodologías Ágiles (livianas) para
Desarrollo de Software
VALORES DEL MANIFIESTO AGIL
. Kent Beck, Mike Beedle, Arie van Bennekum, Alistair Cockburn y otros
Se valora al individuo y las Se valora al desarrollo de software que
interacciones del equipo de desarrollo Funciones más que lograr una
sobre el proceso y las herramientas. Buena documentación.
Se valora la colaboración con Se valora el responder a los cambios
el cliente mas que la negociación más que el seguimiento
de un contrato Estricto de un plan
5. Metodologías Ágiles (livianas) para
Desarrollo de Software
PRINCIPALES METODOLOGÍAS
.
SCRUM Crystal Methodologies
Indicada para proyectos con Orientada al equipo desarrollo y
rápidos cambios de requisitos la reducción de documentos
Dynamic Systems Adaptive Software Development
Development Method (ASD)
(DSDM)
Orientada a componentes de
Trabajo cooperativo equipo
desarrollo – usuario. Software más que a las tareas
EXTREME PROGRAMMING (XP)
Relaciones interpersonales (clave del éxito)
Retroalimentación cliente – equipo
Simplicidad de productos software
6. Metodologías Ágiles (livianas) para
Desarrollo de Software
EXTREME PROGRAMMING (XP)
.
ADAPTABILIDAD vs PREVISIBILIDAD
Relaciones
Interpersona
Comunicación – Simplicidad
Retroalimentación – Coraje
Requisitos
Trabajo en
Imprecisos
Equipo
cambiantes
XP
Alto
Riesgo FeedBack
Técnico
Enfrentar
Cambios
7. Metodologías Ágiles (livianas) para
Desarrollo de Software
EXTREME PROGRAMMING (XP)
. Elementos de Estudio
• Especifican requisito de software
• Requiere el apoyo del cliente
• Tratamiento Dinámico y Flexible
HISTORIAS DE USUARIOS
• Procesada en corto tiempo (programada)
• Precisa la Granularidad del proceso
• Asignan tareas a los programadores
8. Metodologías Ágiles (livianas) para
Desarrollo de Software
EXTREME PROGRAMMING (XP)
. Elementos de Estudio
• Programador
• Cliente
• Encargado de Pruebas (tester)
ROLES DE ACTORES • Encargado de Seguimiento (tracker)
• Entrenador (coach)
• Consultor
• Gestor ( big boss)
9. Metodologías Ágiles (livianas) para
Desarrollo de Software
EXTREME PROGRAMMING (XP)
. Elementos de Estudio
• Definición del valor del negocio (cliente)
• Estimación de recursos (Programador)
PROCESOS • Seleccionan que construir (cliente)
según prioridades y recursos
• Construcción del Producto (programador)
• Reinician el proceso (Ambos)
ETAPAS - FASES
10. Metodologías Ágiles (livianas) para
Desarrollo de Software
Fases Actividades
.
Plantean las Historia de usuarios (requisitos)
Selección y uso de tecnología, herramientas, recursos,
otros.
Exploración
Prototipo de Arquitectura del sistema
Trabajo en Corto tiempo (depende de herramientas)
Priorizan las Historias de Usuarios (requisitos) y se
estiman recursos.
Establecen acuerdos de contenidos y cronograma de
Planificación entrega.
de la Entrega Calculan la cantidad de iteraciones - reuniones
Planifican las iteraciones del producto a entregar
Prever ajustes al proyecto XP
11. Metodologías Ágiles (livianas) para
Desarrollo de Software
Fases
.
Actividades
Desarrollo del Plan de Iteraciones considerando
Historias de usuarios, Velocidad del proyecto, Recursos,
Prioridades del cliente.
Iteraciones Distribución de iteraciones en tareas de programación.
Asignación de iteraciones por parejas de programadores
Organizan la entrega de resultados/iteración
Organización de actividades del equipo de Desarrollo.
Desarrollo productos simples, funcionales y
Producción
estandarizados
Desarrollo de pruebas (unitarias y funcionales).
Prever reajuste en desarrollo de los productos
Puesta en marcha del producto
13. Metodologías Ágiles (livianas) para
Desarrollo de Software
Fases
. Actividades
Organizar
tareas de soporte al cliente (puesta en
marcha)
Mantenimiento Actualizaciones según requisitos del cliente (Historias
de Usuario)
Ajustar o adaptar cambios (requeridos) al proyecto
14. Metodologías Ágiles (livianas) para
Desarrollo de Software
EXTREME PROGRAMMING (XP)
. Casos Prácticos
Software para la evaluación Online
bajo el enfoque de procesos