8. programacion-extrema (Ágil)
DESCRIPTION
Metodología de desarrollo de software xpTRANSCRIPT
Metodología ágil
• Las metodologías ágiles forman parte del movimiento de desarrollo ágil de software, que se basan en la adaptabilidad de cualquier cambio como medio para aumentar las posibilidades de éxito de un proyecto.
• Dificultades para implantar metodologías tradicionales. Procesos ceremoniosos, herramientas CASE y notaciones de modelado sofisticadas (UML)
• Una solución a medida para un segmento importante de proyectos de desarrollo de software
• Aceptar el cambio
¿Por qué surgen?
AutoresWard CunninghamEn 1989, Cunningham formó un equipo que usaba los principios y muchas de las prácticas que después adoptaría XP, mientras trabajaba para la compañía “Wyatt Software” [Fowler 2000].
Kent BeckSin embargo, se reconoce a Kent Beck como el que
articuló esta propuesta y le dio nombre propio.
Los autores de la Programación Extrema, crearon el sitio web Portland Pattern Repository y empezaron a hablar de ella y promocionarla, de lo que era y cómo realizarla. Estos propulsores de la XP hablaban de ella en cada ocasión que tenían y en cada página que, poco o mucho hablara de temas de programación.
Autores
Relevancia en XP
ImplementaciónRequerimientos Análisis Diseño Prueba Producción
Fig. 1 Relación del costo del cambio contra las etapas del ciclo de vida(adaptado de Beck, 1999)
Cos
to d
el c
ambi
o
“Un proceso ligero, de bajo riesgo, flexible, predecible, científico y
divertido de desarrollar software”.
-Kent Beck
Que es XP?
En la programación extrema se busca:1.Realimentación rápida2.Asumir la simplicidad3.Cambio incremental4.Aceptar el cambio5.Hacer trabajo de calidad.
Principios de la XP
Practicas XP1. El juego de la planificación
2. Entregas pequeñas
3. Metáfora
4. Diseño simple
5. Recodificación
6. Programación en parejas
7. Propiedad colectiva
8. Integración continua
9. Semana de 40 horas
10. Cliente in situ
11. Estándares de programación
12. Pruebas
DISEÑO
CODIFICACION
PLANIFICACION
PRUEBAS
Proceso de XPEl proceso de XP se enfatiza en el carácter interactivo e incremental del desarrollo. una iteración de desarrollo es un período de tiempo en el que se realiza un conjunto de funcionalidades determinadas que en el caso de Xp corresponden a un conjunto de historias de usuarios.
Ciclo de desarrollo XP1. El cliente define el valor de negocio a implementar.2. El programador estima el esfuerzo necesario para
su implementación.3. El cliente selecciona qué construir, de acuerdo con
sus prioridades y las restricciones de tiempo.4. El programador construye ese valor de negocio.5. Vuelve al paso 1.
Fases del proceso XP1. Fase de la exploración (de pocas semanas a pocos
meses).2. Planificación de la Entrega(dura unos pocos días).3. Iteraciones (no mas de 3 semanas).4. Fase de producción(la velocidad de desarrollo
disminuye).5. Mantenimiento (indefinido).6. Muerte del proyecto.
Roles en XPCliente
• Elabora especificaciones de los requerimientos iniciales.
Programador
• Responsable de diseñar, codificar, probar e integrar el producto de software.
Entrenador ( Coach )
• Es responsable del proceso global. Es necesario que conozca a fondo el proceso XP para proveer guías a los miembros del equipo de forma que se apliquen las prácticas XP y se siga el proceso correctamente.
Gestor (Big boss)
• Responsable de coordinador de las actividades de desarrollo y asegurar su cumplimiento, Es el vínculo entre clientes y programadores.
Roles en XPEncargado de pruebas (Tester)
• Ejecuta las pruebas regularmente, difunde los resultados en el equipo y es responsable de las herramientas de soporte para pruebas.
Encargado de seguimiento(Tracker)
• Realiza el seguimiento del progreso de cada iteración y evalúa si los objetivos son alcanzables con las restricciones de tiempo y recursos presentes.
Consultor
• Es un miembro externo del equipo con un conocimiento específico en algún tema necesario para el proyecto. Guía al equipo para resolver un problema específico.
Objetivos de la XP
Son:
1. La satisfacción del cliente.
2. Potenciar el trabajo en grupo, todos están involucrados en
el desarrollo del software.
Ventajas y Desventajas
• -Da lugar a una programación
sumamente organizada.
• -Ocasiona eficiencias en el proceso
de planificación y pruebas.
• -Cuenta con una tasa de errores
muy pequeña.
• -Propicia la satisfacción del
programador.
o -Es recomendable emplearla solo en
proyectos a corto plazo.
o -En caso de fallar, las comisiones son
muy altas.
o -Requiere de un rígido ajuste a los
principios de XP.
o -Puede no siempre ser más fácil que
el desarrollo tradicional.
• Ventajas • Desventajas
Encuesta sobre metodologías agiles
Encuesta realizada por el Observatorio de prácticas de desarrollo de software en MinPyme y pymes de Bogotá, a las pequeñas y medianas empresas desarrolladoras de software en Bogotá, año 2012*
Frente al ítem “¿Que metodologías de desarrollo desoftware utiliza?”, las empresas encuestadas dieron como resultado los siguientes porcentajes:68% la metodología RUP, el 20% utiliza otrasmetodologías en las cuales están inmersas otrascon el 8%, el 12% no emplea ninguna, el 7% lametodología XP, el 3% la SCRUM y el 2% la SADT.
Conclusiones• La programación extrema es una forma ligera, eficiente, flexible, científica y divertida de generar
software.
• La programación extrema se beneficia de la existencia de un gran número de herramientas de software libre que permiten aplicarla con gran productividad.
• El software libre se inspira en algunas de las prácticas de la XP .
• Aprovecha el tiempo de los clientes y ayuda a que un cliente se sienta integrado, evitando que se desmoralice por no saber como preparar pruebas de aceptación.
• Permite identificar historias adicionales que no fueran obvias para el cliente o en las que cliente no hubiese pensado de no enfrentarse a dicha situación.
Bibliografía• http://modulodespecialidad.blogspot.com/2013_11_01_archive.html
• Extreme programming Planning/Feedback Loops by J.Donovan Wells
• http://www.monografias.com/trabajos51/programacion-extrema/programacion-extrema2.shtml#ciclo
• http://www.cyta.com.ar/ta0502/v5n2a1.htm
• *revistas.udistrital.edu.co/ojs/index.php/revcie/article/download/.../5651