SlideShare una empresa de Scribd logo
1 de 48
T x 5: T ips &  T ricks... T ools,  T echniques &  T echnologies eXtreme Programming Juan Carlos Fidalgo Fernández T echniques
T x 5 – XP Convenciones usadas y aclaraciones ,[object Object],[object Object],[object Object],[object Object]
T x 5 – XP Agile Development, Extreme Programming (XP) 2ª ed. 2004 2004
T x 5 – XP Test-Driven Development (TDD) 2002 2010
T x 5 – XP Refactoring 1999 2007
T x 5 – XP Patterns 2004 2002 1996 1994
T x 5 – XP Modelo waterfall (en cascada) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
T x 5 – XP La crisis del software  I: Standish Group  I ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
T x 5 – XP La crisis del software  I: Standish Group  II ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
T x 5 – XP La crisis del software  I: Standish Group  y III ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
T x 5 – XP Agile (“Agilismo”)  I ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
T x 5 – XP Agile (“Agilismo”)  II ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
La orientación a objetos  El desarrollo convencional vs. el desarrollo OO  II ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
La orientación a objetos  “ ¿Si cambian los requisitos?  Ah, entonces no me preocupa …” “ (*)  El desarrollo iterativo es un enfoque en el que el desarrollo se organiza en una serie de mini-proyectos cortos, de duración fija (p. ej., cuatro semanas) llamados iteraciones. El resultado de cada uno es un sistema que puede ser probado, integrado y ejecutado.  (**) Cada iteración incluye sus propias actividades de análisis de requisitos, diseño, implementación y pruebas. (…) El subtítulo de un libro que trata el desarrollo iterativo es  Aceptar el cambio  [Beck00]. Esta frase evoca una aptitud clave del desarrollo iterativo:  en lugar de luchar contra el inevitable cambio que ocurre en el desarrollo de software intentando (normalmente sin éxito) especificar, congelar y ‘firmar’ de manera completa y correcta a partir de un conjunto de requisitos fijos y diseñar antes de implementar, el desarrollo iterativo se basa en una aptitud de aceptación del cambio y la adaptación como motores  inevitables  y, de hecho,  esenciales . Esto no quiere decir que el desarrollo iterativo (y el UP) fomenten un proceso dirigido por ‘una adición de características’ de manera incontrolada y reactiva. El UP llega a un equilibro entre la necesidad – por un lado – de llegar a un acuerdo y estabilizar un conjunto de requisitos, y – por otro lado – la realidad de los requisitos cambiantes, cuando el personal involucrado clarifica su visión o cambia el mercado .”  (***) “ UML y patrones” – Craig Larman
T x 5 – XP Agile (“Agilismo”)  y III ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
T x 5 – XP ¿Qué es eXtreme Programming (XP)?  I ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
T x 5 – XP ¿Qué es eXtreme Programming (XP)?  y II ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
T x 5 – XP Las 12 prácticas de XP  I ,[object Object],[object Object]
T x 5 – XP Las 12 prácticas de XP  y II ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
T x 5 – XP Los valores de XP ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
T x 5 – XP Los roles de XP  I ,[object Object],[object Object],[object Object],[object Object],[object Object]
T x 5 – XP Los roles de XP  II ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
T x 5 – XP Los roles de XP  y III ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
T x 5 – XP XP vs. Agile ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
T x 5 – XP La crisis del software  y II: MIT Sloan Management Review ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
T x 5 – XP La tierra llamando al Jefe… ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
T x 5 – XP User Stories ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
T x 5 – XP User Stories: características ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
T x 5 – XP User Stories: beneficios ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
T x 5 – XP User Stories: limitaciones e inconvenientes ,[object Object],[object Object],[object Object]
T x 5 – XP User Stories vs. IEEE 830 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
T x 5 – XP User Stories vs. Use Cases  I ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
T x 5 – XP User Stories vs. Use Cases  y II ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
T x 5 – XP CCPPT: User Stories ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
T x 5 – XP ATDD  I ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
T x 5 – XP ATDD  II
T x 5 – XP ATDD  III ,[object Object],[object Object],[object Object],[object Object]
T x 5 – XP ATDD  y IV ,[object Object],[object Object]
T x 5 – XP CCPPT: Acceptance Tests ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
T x 5 – XP TDD  I ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
T x 5 – XP TDD  II ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
T x 5 – XP TDD  y III ,[object Object],[object Object],[object Object],[object Object]
T x 5 – XP Críticas a XP  I ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
T x 5 – XP Críticas a XP  y II ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
T x 5 – XP Bajando el telón  I ,[object Object],[object Object],[object Object],[object Object]
T x 5 – XP Bajando el telón  II ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
T x 5 – XP Sumario  I ,[object Object],[object Object],[object Object],[object Object]
T x 5 – XP Sumario  y II ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Coste del cambio en los modelos basados en el ciclo de vida en cascada Fuente :  http://osl.iu.edu/~lums/swc/www/swc.html (la gráfica equivalente en XP es menos pronunciada, casi lineal)

Más contenido relacionado

La actualidad más candente

Modelo xp para desarrollo de proyecto
Modelo xp para desarrollo de proyectoModelo xp para desarrollo de proyecto
Modelo xp para desarrollo de proyecto
Johita Guerrero
 
Metodologias modernas para el desarrollo de software
Metodologias modernas para el desarrollo de softwareMetodologias modernas para el desarrollo de software
Metodologias modernas para el desarrollo de software
Deisy Sapaico
 
Metodologia xp
Metodologia xpMetodologia xp
Metodologia xp
gmjuan
 

La actualidad más candente (20)

Modelo xp para desarrollo de proyecto
Modelo xp para desarrollo de proyectoModelo xp para desarrollo de proyecto
Modelo xp para desarrollo de proyecto
 
Monografia Metodologia Agil XP
Monografia Metodologia Agil XPMonografia Metodologia Agil XP
Monografia Metodologia Agil XP
 
Introducción Ágil a eXtreme Programming
Introducción Ágil a eXtreme ProgrammingIntroducción Ágil a eXtreme Programming
Introducción Ágil a eXtreme Programming
 
Monografia de xp
Monografia de xpMonografia de xp
Monografia de xp
 
Metodologia xp cortesserranoeliud
Metodologia xp cortesserranoeliudMetodologia xp cortesserranoeliud
Metodologia xp cortesserranoeliud
 
Metodologia xp
Metodologia xpMetodologia xp
Metodologia xp
 
00000350
0000035000000350
00000350
 
Diapositivas xp
Diapositivas xpDiapositivas xp
Diapositivas xp
 
Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde
Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa CondeProceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde
Proceso para el desarrollo de software Ponencia M.C.Ivet Espinosa Conde
 
Pst metodologia xp
Pst metodologia xpPst metodologia xp
Pst metodologia xp
 
Metodologias modernas para el desarrollo de software
Metodologias modernas para el desarrollo de softwareMetodologias modernas para el desarrollo de software
Metodologias modernas para el desarrollo de software
 
Metodologías ágiles para el desarrollo de software - XP
Metodologías ágiles para el desarrollo de software - XPMetodologías ágiles para el desarrollo de software - XP
Metodologías ágiles para el desarrollo de software - XP
 
Metodologia xp
Metodologia xpMetodologia xp
Metodologia xp
 
Monografia metodologia xp
Monografia   metodologia xpMonografia   metodologia xp
Monografia metodologia xp
 
Metodologia XP
Metodologia XPMetodologia XP
Metodologia XP
 
Metodologia msf
Metodologia msfMetodologia msf
Metodologia msf
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
Metología Agiles Desarrollo Software (XP)
Metología Agiles Desarrollo Software (XP)Metología Agiles Desarrollo Software (XP)
Metología Agiles Desarrollo Software (XP)
 
Metodologias todas
Metodologias todasMetodologias todas
Metodologias todas
 
Unidad 2. Metodologías de Desarrollo
Unidad 2. Metodologías de DesarrolloUnidad 2. Metodologías de Desarrollo
Unidad 2. Metodologías de Desarrollo
 

Similar a Introducción a la programación extrema (XP)

La programación extrema o e xtreme programming
La programación extrema o e xtreme programmingLa programación extrema o e xtreme programming
La programación extrema o e xtreme programming
JoseMariaAndujar
 
Elmanifiestoylosprincipiosgiles 131007145716-phpapp01
Elmanifiestoylosprincipiosgiles 131007145716-phpapp01Elmanifiestoylosprincipiosgiles 131007145716-phpapp01
Elmanifiestoylosprincipiosgiles 131007145716-phpapp01
esgar1989
 
Metodologias agiles
Metodologias agilesMetodologias agiles
Metodologias agiles
mmanuelo
 
Unidad 1.2 B Metodos Agiles 1
Unidad 1.2 B Metodos Agiles  1Unidad 1.2 B Metodos Agiles  1
Unidad 1.2 B Metodos Agiles 1
Sergio Sanchez
 
SEPG LA 2005 Presentation "Practicas Agiles En Mejora De Procesos"
SEPG LA 2005 Presentation "Practicas Agiles En Mejora De Procesos"SEPG LA 2005 Presentation "Practicas Agiles En Mejora De Procesos"
SEPG LA 2005 Presentation "Practicas Agiles En Mejora De Procesos"
Walter Ariel Risi
 
Metodologías ágiles en el desarrollo de software
Metodologías ágiles en el desarrollo de softwareMetodologías ágiles en el desarrollo de software
Metodologías ágiles en el desarrollo de software
princeos
 

Similar a Introducción a la programación extrema (XP) (20)

La programación extrema o e xtreme programming
La programación extrema o e xtreme programmingLa programación extrema o e xtreme programming
La programación extrema o e xtreme programming
 
Elmanifiestoylosprincipiosgiles 131007145716-phpapp01
Elmanifiestoylosprincipiosgiles 131007145716-phpapp01Elmanifiestoylosprincipiosgiles 131007145716-phpapp01
Elmanifiestoylosprincipiosgiles 131007145716-phpapp01
 
El manifiesto y los principios ágiles
El manifiesto y los principios ágilesEl manifiesto y los principios ágiles
El manifiesto y los principios ágiles
 
Los metodos agiles
Los metodos agilesLos metodos agiles
Los metodos agiles
 
Metodologias agiles
Metodologias agilesMetodologias agiles
Metodologias agiles
 
Metodologias agiles
Metodologias agilesMetodologias agiles
Metodologias agiles
 
Unidad 1.2 B Metodos Agiles 1
Unidad 1.2 B Metodos Agiles  1Unidad 1.2 B Metodos Agiles  1
Unidad 1.2 B Metodos Agiles 1
 
SEPG LA 2005 Presentation "Practicas Agiles En Mejora De Procesos"
SEPG LA 2005 Presentation "Practicas Agiles En Mejora De Procesos"SEPG LA 2005 Presentation "Practicas Agiles En Mejora De Procesos"
SEPG LA 2005 Presentation "Practicas Agiles En Mejora De Procesos"
 
Metodologías ágiles en el desarrollo de software
Metodologías ágiles en el desarrollo de softwareMetodologías ágiles en el desarrollo de software
Metodologías ágiles en el desarrollo de software
 
Todo agilok
Todo agilokTodo agilok
Todo agilok
 
Articulo agiles metodos
Articulo agiles metodosArticulo agiles metodos
Articulo agiles metodos
 
Metodologías agiles
Metodologías agilesMetodologías agiles
Metodologías agiles
 
Metodologia
MetodologiaMetodologia
Metodologia
 
METODOLOGIAS AGILES
METODOLOGIAS AGILESMETODOLOGIAS AGILES
METODOLOGIAS AGILES
 
Exposicion
ExposicionExposicion
Exposicion
 
Programacion Extrema
Programacion ExtremaProgramacion Extrema
Programacion Extrema
 
Metodología Cascada
Metodología CascadaMetodología Cascada
Metodología Cascada
 
METODOLOGÍAS ÁGILES EN TI
METODOLOGÍAS ÁGILES EN TIMETODOLOGÍAS ÁGILES EN TI
METODOLOGÍAS ÁGILES EN TI
 
METODOLOGÍAS ÁGILES
METODOLOGÍAS ÁGILESMETODOLOGÍAS ÁGILES
METODOLOGÍAS ÁGILES
 
Metodologias de analisis y diseño de sistemas
Metodologias de analisis y diseño de sistemasMetodologias de analisis y diseño de sistemas
Metodologias de analisis y diseño de sistemas
 

Último

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
FagnerLisboa3
 

Último (15)

Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
presentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptxpresentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptx
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Presentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmerilPresentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmeril
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 

Introducción a la programación extrema (XP)

  • 1. T x 5: T ips & T ricks... T ools, T echniques & T echnologies eXtreme Programming Juan Carlos Fidalgo Fernández T echniques
  • 2.
  • 3. T x 5 – XP Agile Development, Extreme Programming (XP) 2ª ed. 2004 2004
  • 4. T x 5 – XP Test-Driven Development (TDD) 2002 2010
  • 5. T x 5 – XP Refactoring 1999 2007
  • 6. T x 5 – XP Patterns 2004 2002 1996 1994
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14. La orientación a objetos “ ¿Si cambian los requisitos? Ah, entonces no me preocupa …” “ (*) El desarrollo iterativo es un enfoque en el que el desarrollo se organiza en una serie de mini-proyectos cortos, de duración fija (p. ej., cuatro semanas) llamados iteraciones. El resultado de cada uno es un sistema que puede ser probado, integrado y ejecutado. (**) Cada iteración incluye sus propias actividades de análisis de requisitos, diseño, implementación y pruebas. (…) El subtítulo de un libro que trata el desarrollo iterativo es Aceptar el cambio [Beck00]. Esta frase evoca una aptitud clave del desarrollo iterativo: en lugar de luchar contra el inevitable cambio que ocurre en el desarrollo de software intentando (normalmente sin éxito) especificar, congelar y ‘firmar’ de manera completa y correcta a partir de un conjunto de requisitos fijos y diseñar antes de implementar, el desarrollo iterativo se basa en una aptitud de aceptación del cambio y la adaptación como motores inevitables y, de hecho, esenciales . Esto no quiere decir que el desarrollo iterativo (y el UP) fomenten un proceso dirigido por ‘una adición de características’ de manera incontrolada y reactiva. El UP llega a un equilibro entre la necesidad – por un lado – de llegar a un acuerdo y estabilizar un conjunto de requisitos, y – por otro lado – la realidad de los requisitos cambiantes, cuando el personal involucrado clarifica su visión o cambia el mercado .” (***) “ UML y patrones” – Craig Larman
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36. T x 5 – XP ATDD II
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.

Notas del editor

  1. (*) Antes de iniciar este slide, hablar del desarrollo en cascada y de su problemática asociada: amplificación de los errores, poca y tardía participación de los usuarios en un proyecto, etc., etc. (**) Símil del desarrollo iterativo con las muñecas rusas (Matrioshkas) (***) Cuando tras días de prototipaje el usuario ve éste y dice que no es lo que esperaba, ¿es para cabrearse o para alegrarse? RE: para alegrarse; el usuario ha clarificado su visión gracias al prototipo y de no ser por éste el desarrollo completo habría implicado seguramente bastante más tiempo
  2. (*) Filosofías: “Los programadores que descansan son más productivos” y “La frescura aporta mejores ideas” El exceso de trabajo es un serio problema en los proyectos (síndrome del quemado o burn-out: http://es.wikipedia.org/wiki/Burn-out) (**) 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, así como evitar las clásicas situaciones “esto no puede modificarse hasta que venga Pepito de sus vacaciones; lo lleva él y es el único que sabe cómo funciona…” (***) El mejor diseño es el más simple de todos aquellos que pasen todos los tests Para XP simple significa (por orden de prioridad): El sistema (tanto el código como los tests) deben comunicar todo lo que se deba comunicar El sistema no debe contener código duplicado Debe tener la menor cantidad de clases Debe tener la menor cantidad de métodos