Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming
-
Upload
guest123148 -
Category
Technology
-
view
1.896 -
download
1
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://reader033.fdocuments.co/reader033/viewer/2022052601/5590034b1a28abbc6f8b4792/html5/thumbnails/1.jpg)
12/02/200212/02/20021
www.dsic.upv.es/~letelier
Programación Programación ExtremaExtremaExtreme Extreme
Programming (XP)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://reader033.fdocuments.co/reader033/viewer/2022052601/5590034b1a28abbc6f8b4792/html5/thumbnails/2.jpg)
12/02/200212/02/2002 222
www.dsic.upv.es/~letelier
ContenidosContenidos
– IntroducciónIntroducción– RolesRoles– Captura y especificación de Captura y especificación de
requisitosrequisitos– PlanificaciónPlanificación– ProgramaciónProgramación– Prácticas XPPrácticas XP
![Page 3: Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming](https://reader033.fdocuments.co/reader033/viewer/2022052601/5590034b1a28abbc6f8b4792/html5/thumbnails/3.jpg)
12/02/200212/02/2002 333
www.dsic.upv.es/~letelier
¿Qué es XP? ¿Qué es XP?
Es una metodología ágilEs una metodología ágil– Diseñada para entornos dinámicosDiseñada para entornos dinámicos– Pensada para equipos pequeños (hasta Pensada para equipos pequeños (hasta
10 programadores)10 programadores)– Orientada fuertemente hacia la Orientada fuertemente hacia la
codificacióncodificación– Énfasis en la comunicación informal, Énfasis en la comunicación informal,
verbalverbal
![Page 4: Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming](https://reader033.fdocuments.co/reader033/viewer/2022052601/5590034b1a28abbc6f8b4792/html5/thumbnails/4.jpg)
12/02/200212/02/2002 444
www.dsic.upv.es/~letelier
Historia de XPHistoria de XP
Creado por Kent Beck para la Creado por Kent Beck para la plantilla del proyecto C3 en Chryslerplantilla del proyecto C3 en Chrysler– Kent fue contratado para dirigir el Kent fue contratado para dirigir el
proyectoproyecto– Durante el proceso nació una nueva Durante el proceso nació una nueva
metodología: eXtreme Programming metodología: eXtreme Programming (XP)(XP)
– C3 concluyó exitosamente en 1997 C3 concluyó exitosamente en 1997
![Page 5: Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming](https://reader033.fdocuments.co/reader033/viewer/2022052601/5590034b1a28abbc6f8b4792/html5/thumbnails/5.jpg)
12/02/200212/02/2002 555
www.dsic.upv.es/~letelier
Valores que fomenta XPValores que fomenta XP ComunicaciónComunicación
SimplicidadSimplicidad
RetroalimentaciónRetroalimentación
CorajeCoraje
![Page 6: Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming](https://reader033.fdocuments.co/reader033/viewer/2022052601/5590034b1a28abbc6f8b4792/html5/thumbnails/6.jpg)
12/02/200212/02/2002 666
www.dsic.upv.es/~letelier
Roles XPRoles XP c2.c2.comcom//cgicgi//wiki?ExtremeRoleswiki?ExtremeRoles
Programador Programador (Programmer)(Programmer)
– Responsable de decisiones Responsable de decisiones técnicastécnicas
– Responsable de construir el Responsable de construir el sistemasistema
– Sin distinción entre analistas, Sin distinción entre analistas, diseñadores o programadoresdiseñadores o programadores
– En XP, los programadores En XP, los programadores diseñan, programan y diseñan, programan y realizan las pruebasrealizan las pruebas
Jefe de ProyectoJefe de Proyecto (Manager)(Manager)– Organiza y guía las Organiza y guía las
reunionesreuniones– Asegura condiciones Asegura condiciones
adecuadas para el adecuadas para el proyectoproyecto
ClienteCliente (Customer)(Customer)
– Es parte del equipoEs parte del equipo– Determina qué construir Determina qué construir
y cuándoy cuándo– Establece las pruebas de Establece las pruebas de
aceptación aceptación
![Page 7: Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming](https://reader033.fdocuments.co/reader033/viewer/2022052601/5590034b1a28abbc6f8b4792/html5/thumbnails/7.jpg)
12/02/200212/02/2002 777
www.dsic.upv.es/~letelier
![Page 8: Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming](https://reader033.fdocuments.co/reader033/viewer/2022052601/5590034b1a28abbc6f8b4792/html5/thumbnails/8.jpg)
12/02/200212/02/2002 888
www.dsic.upv.es/~letelier
... Roles XP... Roles XP EntrenadorEntrenador (Coach)(Coach)
– Responsable del Responsable del procesoproceso
– Tiende a estar en un Tiende a estar en un segundo plano a segundo plano a medida que el equipo medida que el equipo maduramadura
Encargado de Encargado de PruebasPruebas ((TesterTester) )
– Ayuda al cliente con Ayuda al cliente con las pruebas de las pruebas de aceptaciónaceptación
– Se asegura de que las Se asegura de que las pruebas aceptación se pruebas aceptación se superansuperan
Rastreador Rastreador ((TrackerTracker))
– Metric ManMetric Man– Observa sin molestarObserva sin molestar– Conserva datos Conserva datos
históricoshistóricos
![Page 9: Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming](https://reader033.fdocuments.co/reader033/viewer/2022052601/5590034b1a28abbc6f8b4792/html5/thumbnails/9.jpg)
12/02/200212/02/2002 999
www.dsic.upv.es/~letelier
Captura de Requisitos en XPCaptura de Requisitos en XP
Historias del Usuario (Historias del Usuario (User-StoriesUser-Stories))– Establecen los requisitos del cliente Establecen los requisitos del cliente – Las establece el clienteLas establece el cliente– Son la base para las pruebas de Son la base para las pruebas de
aceptaciónaceptación– Se caracterizan por prioridad, riesgo y Se caracterizan por prioridad, riesgo y
esfuerzo esfuerzo
![Page 10: Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming](https://reader033.fdocuments.co/reader033/viewer/2022052601/5590034b1a28abbc6f8b4792/html5/thumbnails/10.jpg)
12/02/200212/02/2002 101010
www.dsic.upv.es/~letelier
Captura de Requisitos en Captura de Requisitos en XPXP
Una ficha de Historia de UsuarioUna ficha de Historia de Usuario
![Page 11: Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming](https://reader033.fdocuments.co/reader033/viewer/2022052601/5590034b1a28abbc6f8b4792/html5/thumbnails/11.jpg)
12/02/200212/02/2002 111111
www.dsic.upv.es/~letelier
Planificación en XPPlanificación en XP Planificación por entregas (Planificación por entregas (releasesreleases))
Las Historias de Usuario se priorizan por el Las Historias de Usuario se priorizan por el cliente seleccionando aquellas más cliente seleccionando aquellas más importantes para el negocioimportantes para el negocio
Entregas:Entregas:– Son lo más pequeñas posiblesSon lo más pequeñas posibles– Se dividen en iteraciones (iteración = 2 o 3 Se dividen en iteraciones (iteración = 2 o 3
semanas)semanas)– Cada iteración está compuesta por historias de Cada iteración está compuesta por historias de
usuariousuario
![Page 12: Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming](https://reader033.fdocuments.co/reader033/viewer/2022052601/5590034b1a28abbc6f8b4792/html5/thumbnails/12.jpg)
12/02/200212/02/2002 121212
www.dsic.upv.es/~letelier
Programación en XPProgramación en XP
Cada Historia de Usuario se descompone en Cada Historia de Usuario se descompone en tareas de programacióntareas de programación
La programación de tareas se realiza por La programación de tareas se realiza por parejasparejas
La pareja diseña, prueba, implementa e La pareja diseña, prueba, implementa e integra el código de la tareaintegra el código de la tarea
Código dirigido por las pruebasCódigo dirigido por las pruebas
Código modular, intentando refactorizar Código modular, intentando refactorizar siempre que se puedasiempre que se pueda
![Page 13: Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming](https://reader033.fdocuments.co/reader033/viewer/2022052601/5590034b1a28abbc6f8b4792/html5/thumbnails/13.jpg)
12/02/200212/02/2002 131313
www.dsic.upv.es/~letelier
Programación en XP Programación en XP Una ficha de TareaUna ficha de Tarea
![Page 14: Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming](https://reader033.fdocuments.co/reader033/viewer/2022052601/5590034b1a28abbc6f8b4792/html5/thumbnails/14.jpg)
12/02/200212/02/2002 141414
www.dsic.upv.es/~letelier
Modelo de un Proyecto XPModelo de un Proyecto XP
![Page 15: Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming](https://reader033.fdocuments.co/reader033/viewer/2022052601/5590034b1a28abbc6f8b4792/html5/thumbnails/15.jpg)
12/02/200212/02/2002 151515
www.dsic.upv.es/~letelier
Espacio de trabajo XPEspacio de trabajo XP
Espacio abiertoEspacio abierto Mesas centralesMesas centrales Cubículos en el espacio exteriorCubículos en el espacio exterior
Espacio de trabajo del proyecto C3 de DaimlerChrysler
![Page 16: Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming](https://reader033.fdocuments.co/reader033/viewer/2022052601/5590034b1a28abbc6f8b4792/html5/thumbnails/16.jpg)
12/02/200212/02/2002 161616
www.dsic.upv.es/~letelier
Prácticas XPPrá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 17: Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming](https://reader033.fdocuments.co/reader033/viewer/2022052601/5590034b1a28abbc6f8b4792/html5/thumbnails/17.jpg)
12/02/200212/02/2002 171717
www.dsic.upv.es/~letelier
Prácticas XPPrácticas XPEl Juego de la planificaciónEl Juego de la planificación
Decisiones de negocio (cliente):Decisiones de negocio (cliente):– AlcanceAlcance ¿Cuándo debe estar listo el ¿Cuándo debe estar listo el
producto para que sea valioso en producción?producto para que sea valioso en producción?– PrioridadPrioridad Prioriza la incorporación de las Prioriza la incorporación de las
Historias de UsuarioHistorias de Usuario– Composición de entregasComposición de entregas ¿Qué se necesita ¿Qué se necesita
para que el negocio mejore?para que el negocio mejore?– Fechas de entregaFechas de entrega Fechas cuando el Fechas cuando el
software en operación causaría una gran software en operación causaría una gran diferenciadiferencia
![Page 18: Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming](https://reader033.fdocuments.co/reader033/viewer/2022052601/5590034b1a28abbc6f8b4792/html5/thumbnails/18.jpg)
12/02/200212/02/2002 181818
www.dsic.upv.es/~letelier
Prácticas XPPrácticas XP... ... El Juego de la planificaciónEl Juego de la planificación
Decisiones técnicas (programadores y otros):Decisiones técnicas (programadores y otros):– EstimacionesEstimaciones ¿Cuánto tiempo tardará en ¿Cuánto tiempo tardará en
implementarse una Historia de Usuario?implementarse una Historia de Usuario?– ConsecuenciasConsecuencias Tener en cuenta las Tener en cuenta las
consecuencias técnicas de determinadas decisiones consecuencias técnicas de determinadas decisiones de negociode negocio
– ProcesoProceso Organización del proceso y el equipo Organización del proceso y el equipo– Planificación detalladaPlanificación detallada Dentro de una Dentro de una
entrega, qué entrega, qué Historias de Usuarioi se realizan primero. Intentar Historias de Usuarioi se realizan primero. Intentar
trasladar los segmentos de desarrollo más trasladar los segmentos de desarrollo más arriesgados al principio, intentando respetar las arriesgados al principio, intentando respetar las prioridades del negocioprioridades del negocio
![Page 19: Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming](https://reader033.fdocuments.co/reader033/viewer/2022052601/5590034b1a28abbc6f8b4792/html5/thumbnails/19.jpg)
12/02/200212/02/2002 191919
www.dsic.upv.es/~letelier
Reunión diaria “Reunión diaria “Stand-up MeetingStand-up Meeting”” – Todo el equipoTodo el equipo
ProblemProblemasas SolucionSolucioneses
– De pie en un círculoDe pie en un círculo Evitar discusiones largasEvitar discusiones largas Sin conversaciones separadasSin conversaciones separadas
Prácticas XPPrácticas XP... ... El Juego de la planificaciónEl Juego de la planificación
Reunión diaria XPReunión diaria XP
![Page 20: Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming](https://reader033.fdocuments.co/reader033/viewer/2022052601/5590034b1a28abbc6f8b4792/html5/thumbnails/20.jpg)
12/02/200212/02/2002 202020
www.dsic.upv.es/~letelier
Cada entrega es lo más corta posible:Cada entrega es lo más corta posible:– Incluir requisitos más valiosos del sistema Incluir requisitos más valiosos del sistema
(básicos)(básicos)– Reducir el riesgo Reducir el riesgo mayor retroalimentación mayor retroalimentación
desde el cliente, y más frecuentedesde el cliente, y más frecuente Minimizar el nº de Historias de Usuario que Minimizar el nº de Historias de Usuario que
componen una entrega componen una entrega No realizar No realizar Historias de Usuario a mediasHistorias de Usuario a medias
Prácticas XPPrácticas XPEntregas pequeñasEntregas pequeñas
![Page 21: Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming](https://reader033.fdocuments.co/reader033/viewer/2022052601/5590034b1a28abbc6f8b4792/html5/thumbnails/21.jpg)
12/02/200212/02/2002 212121
www.dsic.upv.es/~letelier
Cada proyecto XP es guiado por una Cada proyecto XP es guiado por una metáfora globalmetáfora global
Da un contexto al equipo para entender Da un contexto al equipo para entender los elementos básicos y sus relacioneslos elementos básicos y sus relaciones
Proporciona integridad conceptualProporciona integridad conceptual
Prácticas XPPrácticas XPMetáforaMetáfora
![Page 22: Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming](https://reader033.fdocuments.co/reader033/viewer/2022052601/5590034b1a28abbc6f8b4792/html5/thumbnails/22.jpg)
12/02/200212/02/2002 222222
www.dsic.upv.es/~letelier
Se diseña “la cosa más simple que pueda Se diseña “la cosa más simple que pueda funcionar”funcionar”
Uso de tarjetas CRCUso de tarjetas CRC Diseño de software correcto, es aquel que:Diseño de software correcto, es aquel que:
– Supera todas las pruebasSupera todas las pruebas– No tiene lógica duplicadaNo tiene lógica duplicada– Pone de manifiesto las intenciones importantes Pone de manifiesto las intenciones importantes
de los programadoresde los programadores– Tiene el mínimo número de clases y métodosTiene el mínimo número de clases y métodos
Prácticas XPPrácticas XPDiseño simpleDiseño simple
![Page 23: Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming](https://reader033.fdocuments.co/reader033/viewer/2022052601/5590034b1a28abbc6f8b4792/html5/thumbnails/23.jpg)
12/02/200212/02/2002 232323
www.dsic.upv.es/~letelier
Las pruebas unitarias se escriben ANTES Las pruebas unitarias se escriben ANTES que el códigoque el código
Pruebas automatizadas Pruebas automatizadas Permiten el desarrollo de proyectos de Permiten el desarrollo de proyectos de
forma rápida y seguraforma rápida y segura Pruebas unitarias Pruebas unitarias programadores programadores Pruebas de aceptación Pruebas de aceptación cliente cliente Resultado Resultado Un programa cada vez más Un programa cada vez más
seguroseguro
Prácticas XPPrácticas XPPruebasPruebas
![Page 24: Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming](https://reader033.fdocuments.co/reader033/viewer/2022052601/5590034b1a28abbc6f8b4792/html5/thumbnails/24.jpg)
12/02/200212/02/2002 242424
www.dsic.upv.es/~letelier
Refactorización = Mejora de la Refactorización = Mejora de la arquitectura sin cambiar el arquitectura sin cambiar el comportamiento del sistemacomportamiento del sistema
Intentar eliminar complejidad Intentar eliminar complejidad
Código duplicado Código duplicado Refactorización Refactorización
Se plantea su aplicación antes de Se plantea su aplicación antes de enfrentar una Historia de Usuario/Tareaenfrentar una Historia de Usuario/Tarea
Prácticas XPPrácticas XPRefactoringRefactoring
www.refactoring.comwww.refactoring.com
![Page 25: Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming](https://reader033.fdocuments.co/reader033/viewer/2022052601/5590034b1a28abbc6f8b4792/html5/thumbnails/25.jpg)
12/02/200212/02/2002 252525
www.dsic.upv.es/~letelier
Toda el código se escribe en parejasToda el código se escribe en parejas– Se produce código de mayor calidad Se produce código de mayor calidad
– Extiende el conocimientoExtiende el conocimiento
““Se realiza el trabajo de 1 persona en Se realiza el trabajo de 1 persona en casi la mitad del tiempo y mejor” casi la mitad del tiempo y mejor” (cuestionable)(cuestionable)
Prácticas XPPrácticas XPProgramación en parejasProgramación en parejas
www.pairprogramming.comwww.pairprogramming.com
![Page 26: Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming](https://reader033.fdocuments.co/reader033/viewer/2022052601/5590034b1a28abbc6f8b4792/html5/thumbnails/26.jpg)
12/02/200212/02/2002 262626
www.dsic.upv.es/~letelier
Cualquiera puede modificar el código en Cualquiera puede modificar el código en cualquier momento cualquier momento Se evitan cuellos Se evitan cuellos de botella en la codificaciónde botella en la codificación
Todos asume las responsabilidades sobre Todos asume las responsabilidades sobre el conjunto del sistemael conjunto del sistema
Todos conocen algo sobre todas las partes Todos conocen algo sobre todas las partes y conocen muy bien aquéllas en las que y conocen muy bien aquéllas en las que trabajantrabajan
Prácticas XPPrácticas XPPropiedad colectivaPropiedad colectiva
![Page 27: Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming](https://reader033.fdocuments.co/reader033/viewer/2022052601/5590034b1a28abbc6f8b4792/html5/thumbnails/27.jpg)
12/02/200212/02/2002 272727
www.dsic.upv.es/~letelier
El código se integra y se prueba El código se integra y se prueba después de pocas horasdespués de pocas horas
Existe una ordenador dedicado para la Existe una ordenador dedicado para la integraciónintegración
Cada pareja integra su código en dicho Cada pareja integra su código en dicho ordenadorordenador
Prácticas XPPrácticas XPIntegración contínuaIntegración contínua
![Page 28: Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming](https://reader033.fdocuments.co/reader033/viewer/2022052601/5590034b1a28abbc6f8b4792/html5/thumbnails/28.jpg)
12/02/200212/02/2002 282828
www.dsic.upv.es/~letelier
Filosofía: “Los programadores que Filosofía: “Los programadores que descansan son más productivos”descansan son más productivos”
El exceso de trabajo es un serio problema El exceso de trabajo es un serio problema en un proyectoen un proyecto
La gente está más fresca y tiene mejores La gente está más fresca y tiene mejores ideasideas
Prácticas XPPrácticas XPSemana de 40 horasSemana de 40 horas
![Page 29: Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming](https://reader033.fdocuments.co/reader033/viewer/2022052601/5590034b1a28abbc6f8b4792/html5/thumbnails/29.jpg)
12/02/200212/02/2002 292929
www.dsic.upv.es/~letelier
Cliente real = Aquel que usará el sistema Cliente real = Aquel que usará el sistema cuando esté en produccióncuando esté en producción
El cliente real debe estar con el equipo de El cliente real debe estar con el equipo de trabajo:trabajo:– Responder preguntasResponder preguntas– Resolver disputasResolver disputas– Establecer prioridadesEstablecer prioridades– Discutir mejorasDiscutir mejoras
Prácticas XPPrácticas XPCliente in situCliente in situ
![Page 30: Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming](https://reader033.fdocuments.co/reader033/viewer/2022052601/5590034b1a28abbc6f8b4792/html5/thumbnails/30.jpg)
12/02/200212/02/2002 303030
www.dsic.upv.es/~letelier
Son fundamentales cuando los Son fundamentales cuando los programadores cambian de pareja o programadores cambian de pareja o hacen hacen refactoringrefactoring del código de otros del código de otros
Se consigue un código con el mismo Se consigue un código con el mismo estilo, homogéneo, legibleestilo, homogéneo, legible
Prácticas XPPrácticas XPEstándares de programaciónEstándares de programación
![Page 31: Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming](https://reader033.fdocuments.co/reader033/viewer/2022052601/5590034b1a28abbc6f8b4792/html5/thumbnails/31.jpg)
12/02/200212/02/2002 313131
www.dsic.upv.es/~letelier
Prácticas XPPrácticas XPInteracción entre PrácticasInteracción entre Prácticas
XP: Kent Beck