Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming
-
Upload
guest82ea27 -
Category
Technology
-
view
2.356 -
download
3
description
Transcript of Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming
![Page 1: Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming](https://reader036.fdocuments.ec/reader036/viewer/2022062308/5590044e1a28ab372e8b45db/html5/thumbnails/1.jpg)
Programación ExtremaExtreme Programming (XP)
Pablo [email protected]
Facultad de ingieneria y negocios
Universidad de ciencias de la informatica
![Page 2: Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming](https://reader036.fdocuments.ec/reader036/viewer/2022062308/5590044e1a28ab372e8b45db/html5/thumbnails/2.jpg)
2
www.dsic.upv.es/~letelier
Contenidos
IntroducciónRolesCaptura y especificación de requisitosPlanificaciónProgramaciónPrácticas XP
![Page 3: Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming](https://reader036.fdocuments.ec/reader036/viewer/2022062308/5590044e1a28ab372e8b45db/html5/thumbnails/3.jpg)
3
www.dsic.upv.es/~letelier
¿Qué es XP?
Es una metodología ágilDiseñada para entornos dinámicosPensada para equipos pequeños (hasta 10
programadores)Orientada fuertemente hacia la codificaciónÉnfasis en la comunicación informal, verbal
![Page 4: Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming](https://reader036.fdocuments.ec/reader036/viewer/2022062308/5590044e1a28ab372e8b45db/html5/thumbnails/4.jpg)
4
www.dsic.upv.es/~letelier
Historia de XP
Creado por Kent Beck para la plantilla del proyecto C3 en ChryslerKent fue contratado para dirigir el proyectoDurante el proceso nació una nueva
metodología: eXtreme Programming (XP)C3 concluyó exitosamente en 1997
![Page 5: Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming](https://reader036.fdocuments.ec/reader036/viewer/2022062308/5590044e1a28ab372e8b45db/html5/thumbnails/5.jpg)
5
www.dsic.upv.es/~letelier
Valores que fomenta XP
Comunicación
Simplicidad
Retroalimentación
Coraje
![Page 6: Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming](https://reader036.fdocuments.ec/reader036/viewer/2022062308/5590044e1a28ab372e8b45db/html5/thumbnails/6.jpg)
6
www.dsic.upv.es/~letelier
Roles XP c2.com/cgi/wiki?ExtremeRoles
Programador (Programmer) Responsable de decisiones
técnicas Responsable de construir el
sistema Sin distinción entre analistas,
diseñadores o programadores En XP, los programadores
diseñan, programan y realizan las pruebas
Jefe de Proyecto (Manager) Organiza y guía las
reuniones Asegura condiciones
adecuadas para el proyecto
Cliente (Customer) Es parte del equipo Determina qué construir y
cuándo Establece las pruebas de
aceptación
![Page 7: Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming](https://reader036.fdocuments.ec/reader036/viewer/2022062308/5590044e1a28ab372e8b45db/html5/thumbnails/7.jpg)
7
www.dsic.upv.es/~letelier
... Roles XP
Entrenador (Coach) Responsable del proceso Tiende a estar en un
segundo plano a medida que el equipo madura
Encargado de Pruebas (Tester)
Ayuda al cliente con las pruebas de aceptación
Se asegura de que las pruebas aceptación se superan
Rastreador (Tracker)
Metric Man Observa sin molestar Conserva datos
históricos
![Page 8: Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming](https://reader036.fdocuments.ec/reader036/viewer/2022062308/5590044e1a28ab372e8b45db/html5/thumbnails/8.jpg)
8
www.dsic.upv.es/~letelier
Captura de Requisitos en XP
Historias del Usuario (User-Stories)Establecen los requisitos del cliente Las establece el clienteSon la base para las pruebas de aceptaciónSe caracterizan por prioridad, riesgo y
esfuerzo
![Page 9: Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming](https://reader036.fdocuments.ec/reader036/viewer/2022062308/5590044e1a28ab372e8b45db/html5/thumbnails/9.jpg)
9
www.dsic.upv.es/~letelier
Captura de Requisitos en XPUna ficha de Historia de Usuario
![Page 10: Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming](https://reader036.fdocuments.ec/reader036/viewer/2022062308/5590044e1a28ab372e8b45db/html5/thumbnails/10.jpg)
10
www.dsic.upv.es/~letelier
Planificación en XP
Planificación por entregas (releases)
Las Historias de Usuario se priorizan por el cliente seleccionando aquellas más importantes para el negocio
Entregas: Son lo más pequeñas posibles Se dividen en iteraciones (iteración = 2 o 3 semanas) Cada iteración está compuesta por historias de usuario
![Page 11: Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming](https://reader036.fdocuments.ec/reader036/viewer/2022062308/5590044e1a28ab372e8b45db/html5/thumbnails/11.jpg)
11
www.dsic.upv.es/~letelier
Programación en XP
Cada Historia de Usuario se descompone en tareas de programación
La programación de tareas se realiza por parejas
La pareja diseña, prueba, implementa e integra el código de la tarea
Código dirigido por las pruebas
Código modular, intentando refactorizar siempre que se pueda
![Page 12: Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming](https://reader036.fdocuments.ec/reader036/viewer/2022062308/5590044e1a28ab372e8b45db/html5/thumbnails/12.jpg)
12
www.dsic.upv.es/~letelier
Programación en XP Una ficha de Tarea
![Page 13: Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming](https://reader036.fdocuments.ec/reader036/viewer/2022062308/5590044e1a28ab372e8b45db/html5/thumbnails/13.jpg)
13
www.dsic.upv.es/~letelier
Modelo de un Proyecto XP
![Page 14: Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming](https://reader036.fdocuments.ec/reader036/viewer/2022062308/5590044e1a28ab372e8b45db/html5/thumbnails/14.jpg)
14
www.dsic.upv.es/~letelier
Espacio de trabajo XP
Espacio abierto
Mesas centrales
Cubículos en el espacio exterior
Espacio de trabajo del proyecto C3 de DaimlerChrysler
![Page 15: Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming](https://reader036.fdocuments.ec/reader036/viewer/2022062308/5590044e1a28ab372e8b45db/html5/thumbnails/15.jpg)
15
www.dsic.upv.es/~letelier
Prácticas XP
• El juego de la planificación
• Entregas pequeñas
• Metáfora• Diseño simple • Pruebas• Refactoring
• Programación en parejas
• Propiedad colectiva
• Integración contínua
• Semana de 40 horas
• Cliente in situ
• Estándares de programación
![Page 16: Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming](https://reader036.fdocuments.ec/reader036/viewer/2022062308/5590044e1a28ab372e8b45db/html5/thumbnails/16.jpg)
16
www.dsic.upv.es/~letelier
Prácticas XPEl Juego de la planificación
Decisiones de negocio (cliente): Alcance ¿Cuándo debe estar listo el producto para
que sea valioso en producción? Prioridad Prioriza la incorporación de las Historias
de Usuario Composición de entregas ¿Qué se necesita para
que el negocio mejore? Fechas de entrega Fechas cuando el software en
operación causaría una gran diferencia
![Page 17: Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming](https://reader036.fdocuments.ec/reader036/viewer/2022062308/5590044e1a28ab372e8b45db/html5/thumbnails/17.jpg)
17
www.dsic.upv.es/~letelier
Prácticas XP... El Juego de la planificación
Decisiones técnicas (programadores y otros): Estimaciones ¿Cuánto tiempo tardará en
implementarse una Historia de Usuario? Consecuencias Tener en cuenta las consecuencias
técnicas de determinadas decisiones de negocio Proceso Organización del proceso y el equipo Planificación detallada Dentro de una entrega, qué
Historias de Usuarioi se realizan primero. Intentar trasladar los segmentos de desarrollo más arriesgados al principio, intentando respetar las prioridades del negocio
![Page 18: Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming](https://reader036.fdocuments.ec/reader036/viewer/2022062308/5590044e1a28ab372e8b45db/html5/thumbnails/18.jpg)
18
www.dsic.upv.es/~letelier
Reunión diaria “Stand-up Meeting” Todo el equipo
Problemas Soluciones
De pie en un círculo Evitar discusiones largas Sin conversaciones separadas
Prácticas XP... El Juego de la planificación
Reunión diaria XP
![Page 19: Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming](https://reader036.fdocuments.ec/reader036/viewer/2022062308/5590044e1a28ab372e8b45db/html5/thumbnails/19.jpg)
19
www.dsic.upv.es/~letelier
Cada entrega es lo más corta posible: Incluir requisitos más valiosos del sistema
(básicos) Reducir el riesgo mayor retroalimentación
desde el cliente, y más frecuente
Minimizar el nº de Historias de Usuario que componen una entrega No realizar Historias de Usuario a medias
Prácticas XPEntregas pequeñas
![Page 20: Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming](https://reader036.fdocuments.ec/reader036/viewer/2022062308/5590044e1a28ab372e8b45db/html5/thumbnails/20.jpg)
20
www.dsic.upv.es/~letelier
Cada proyecto XP es guiado por una metáfora global
Da un contexto al equipo para entender los elementos básicos y sus relaciones
Proporciona integridad conceptual
Prácticas XPMetáfora
![Page 21: Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming](https://reader036.fdocuments.ec/reader036/viewer/2022062308/5590044e1a28ab372e8b45db/html5/thumbnails/21.jpg)
21
www.dsic.upv.es/~letelier
Se diseña “la cosa más simple que pueda funcionar”
Uso de tarjetas CRC
Diseño de software correcto, es aquel que: Supera todas las pruebas No tiene lógica duplicada Pone de manifiesto las intenciones importantes de los
programadores Tiene el mínimo número de clases y métodos
Prácticas XPDiseño simple
![Page 22: Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming](https://reader036.fdocuments.ec/reader036/viewer/2022062308/5590044e1a28ab372e8b45db/html5/thumbnails/22.jpg)
22
www.dsic.upv.es/~letelier
Las pruebas unitarias se escriben ANTES que el códigoPruebas automatizadas Permiten el desarrollo de proyectos de forma rápida y seguraPruebas unitarias programadoresPruebas de aceptación clienteResultado Un programa cada vez más seguro
Prácticas XPPruebas
![Page 23: Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming](https://reader036.fdocuments.ec/reader036/viewer/2022062308/5590044e1a28ab372e8b45db/html5/thumbnails/23.jpg)
23
www.dsic.upv.es/~letelier
Refactorización = Mejora de la arquitectura sin cambiar el comportamiento del sistema
Intentar eliminar complejidad
Código duplicado Refactorización
Se plantea su aplicación antes de enfrentar una Historia de Usuario/Tarea
Prácticas XPRefactoring
www.refactoring.com
![Page 24: Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming](https://reader036.fdocuments.ec/reader036/viewer/2022062308/5590044e1a28ab372e8b45db/html5/thumbnails/24.jpg)
24
www.dsic.upv.es/~letelier
Toda el código se escribe en parejas Se produce código de mayor calidad
Extiende el conocimiento
“Se realiza el trabajo de 1 persona en casi la mitad del tiempo y mejor” (cuestionable)
Prácticas XPProgramación en parejas
www.pairprogramming.com
![Page 25: Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming](https://reader036.fdocuments.ec/reader036/viewer/2022062308/5590044e1a28ab372e8b45db/html5/thumbnails/25.jpg)
25
www.dsic.upv.es/~letelier
Cualquiera puede modificar el código en cualquier momento Se evitan cuellos de botella en la codificación
Todos asume las responsabilidades sobre el conjunto del sistema
Todos conocen algo sobre todas las partes y conocen muy bien aquéllas en las que trabajan
Prácticas XPPropiedad colectiva
![Page 26: Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming](https://reader036.fdocuments.ec/reader036/viewer/2022062308/5590044e1a28ab372e8b45db/html5/thumbnails/26.jpg)
26
www.dsic.upv.es/~letelier
El código se integra y se prueba después de pocas horas
Existe una ordenador dedicado para la integración
Cada pareja integra su código en dicho ordenador
Prácticas XPIntegración contínua
![Page 27: Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming](https://reader036.fdocuments.ec/reader036/viewer/2022062308/5590044e1a28ab372e8b45db/html5/thumbnails/27.jpg)
27
www.dsic.upv.es/~letelier
Filosofía: “Los programadores que descansan son más productivos”
El exceso de trabajo es un serio problema en un proyecto
La gente está más fresca y tiene mejores ideas
Prácticas XPSemana de 40 horas
![Page 28: Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming](https://reader036.fdocuments.ec/reader036/viewer/2022062308/5590044e1a28ab372e8b45db/html5/thumbnails/28.jpg)
28
www.dsic.upv.es/~letelier
Cliente real = Aquel que usará el sistema cuando esté en producción
El cliente real debe estar con el equipo de trabajo: Responder preguntas Resolver disputas Establecer prioridades Discutir mejoras
Prácticas XPCliente in situ
![Page 29: Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming](https://reader036.fdocuments.ec/reader036/viewer/2022062308/5590044e1a28ab372e8b45db/html5/thumbnails/29.jpg)
29
www.dsic.upv.es/~letelier
Son fundamentales cuando los programadores cambian de pareja o hacen refactoring del código de otros
Se consigue un código con el mismo estilo, homogéneo, legible
Prácticas XPEstándares de programación
![Page 30: Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming](https://reader036.fdocuments.ec/reader036/viewer/2022062308/5590044e1a28ab372e8b45db/html5/thumbnails/30.jpg)
30
www.dsic.upv.es/~letelier
Prácticas XPInteracción entre Prácticas
XP: Kent Beck