SlideShare uma empresa Scribd logo
1 de 33
Baixar para ler offline
XP
  (Programación eXtrema)




Universidad de los Andes
      Demián Gutierrez
       Octubre 2012
Modelos ágiles
(XP)

      XP (eXtreme Programing): Es una estrategia de
    desarrollo de software creada hace aproximadamente
   hace unos diez años que ha causado gran impacto entre
          el colectivo de programadores del mundo


       Kent Beck, su autor, es un programador que ha
             trabajado en múltiples empresas


   Con sus teorías ha conseguido el respaldo de gran parte
    de la industria del software y el rechazo de otra parte

                   http://www.extremeprogramming.org
Modelos Incrementales
(Modelo Incremental)


               advertencia
   La Programación Extrema (XP) y otros
     métodos no significan desarrollar
              “sin método”
     Los métodos ágiles requieren en el
     fondo mucha disciplina para poder
     ejecutarlos y mantener el orden de
             forma satisfactoria
Esto NO es XP
           (video)
   http://youtu.be/xczAJctmdH0
uno de los
 mejores libros
  que he leído
sobre ingeniería
  de software
Modelos ágiles
(Mito: El costo del cambio)




          Tomado de Extreme Programming Explained (Kent Beck)
Modelos ágiles
(Objetivo: El costo del cambio)




          Tomado de Extreme Programming Explained (Kent Beck)
Modelos ágiles
(XP)


                                                      Desarrollo
                                                      guiado por
                                                       pruebas




    Versión inicial de la               Iteraciones cortas          Entregas
  arquitectura, prototipos                 1-4 semanas             frecuentes
    para mitigar riesgos
      técnicos o para
   comprender mejor el       http://www.extremeprogramming.org
          dominio
Modelos ágiles
(XP)

                                                       Valor para el cliente


             Importancia del
                Software                                 Transparencia
              Funcionando



    Dentro de
       una
    Iteración
                                                         Auto-organización
                 Daily Meeting

                   http://www.extremeprogramming.org
Modelos ágiles
(XP)

                 ¿Suena Conocido?




        Scrum
¿requisitos?
(¿qué debe hacer el producto?)
Historias de Usuarios
(Modelos ágiles – XP, SCRUM)

     Una historia de usuario es una narración que describe
    cierta funcionalidad del sistema que tiene valor para un
                 usuario o comprador particular
         Se recogen en unas sencillas tarjetas de forma
          esquemática y en un lenguaje claro y preciso.

                Aprobación de nuevos usuarios


   ¿quién?    Yo como administrador del foro 
            quisiera poder aceptar o rechazar los 
            nuevos usuarios registrados para así     ¿qué?
             poder evitar que el foro se llene de 
¿por    qué?             spammers
Historias de Usuarios
(Modelos ágiles – XP, SCRUM)
               Aprobación de nuevos usuarios

                 Yo como administrador del foro 
               quisiera poder aceptar o rechazar los 
               nuevos usuarios registrados para así 
                poder evitar que el foro se llene de 
                            spammers

    Las historias de usuario sirven de “recordatorio” de la
      funcionalidad que es necesario implementar en el
                            sistema
   Antes de implementar una funcionalidad en particular se
       produce una discusión con el usuario, se refina y
       extiende la información de la historia de usuario
¿prácticas?
Modelos ágiles
(XP / Prácticas)

  ●   El desarrollo del plan: Determinar rápidamente el alcance de
      la siguiente iteración / entrega en base a las prioridades del
      negocio (cliente) y los estimados técnicos. Estar dispuestos a
      cambiar el plan a medida que es necesario.
  ●   Liberar mucho, en incrementos pequeños: Poner el sistema
      en producción los más rápido posible (el mínimo necesario) y
      desarrollar las siguientes versiones con el ciclo lo mas corto
      posible.
  ●   Contar con una “Metáfora” para el sistema: Una historia o
      una idea simple, compartida, de como funciona todo el
      sistema.
Modelos ágiles
(XP / Prácticas)

  ●   Diseño simple: Mantener el diseño lo más simple posible
      (KISS: Keep it Simple Stup$%#id), concentrarse en el presente
      y no en el futuro: (YAGNI: You ain't going to need it)
  ●   Pruebas Unitarias (automatizadas): Sirven para evitar que
      los programadores se equivoquen, para evitar las “parcelas” de
      código y para validar constantemente la aplicación. Los
      clientes también pueden escribir pruebas para validar /
      demostrar ciertas características del sistema.
  ●   Refactor: Los programadores reestructuran el sistema
      siempre que es necesario, eliminando la duplicación,
      mejorando la comunicación, simplificando o añadiendo
      flexibilidad.
Modelos ágiles
(XP / Prácticas)


  ●   Programación en parejas: Todo el código a ponerse en
      producción es escrito en parejas. ¿Sabe usted por qué?
  ●   Propiedad colectiva: Nadie es dueño de ninguna clase, de
      ningún artefacto, de ninguna parte del código. (La prueba del
      camión... ¿sabe usted cuantos desarrolladores pueden ser
      atropellados por un camión antes de que el proyecto esté en
      peligro?)
  ●   Integración continua: Las características del sistema se
      desarrollan y se integran a diario. Luego se corren las pruebas
      y se verifica que la aplicación corra correctamente.
Modelos ágiles
(XP / Prácticas)



  ●   40 horas a la semana: Nadie. ¡NADIE! Trabaja horas extra.
      ¿Sabe usted porque?
  ●   El cliente involucrado en el ambiente de desarrollo: El
      cliente (o un representante) es un miembro más del equipo de
      desarrollo.
  ●   Estándares de codificación: Se definen estándares
      adecuados de codificación y se respetan. Sobre todo aquellos
      que enfatizan la “auto-documentación” y adecuada
      documentación del código.
Modelos ágiles
(XP / Prácticas)




          Tomado de Extreme Programming Explained (Kent Beck)
Modelos ágiles
(XP / Niveles de Planificación)




 ¿planificación a distintos niveles?
             ¿qué es planificar?
  ¿qué cosas se pueden planificar?
Modelos ágiles
(XP / Niveles de Planificación)


 ¿planificación a distintos niveles?
Valores
¿Por qué será esto importante?
           (fix XP)
Modelos ágiles
(XP / Valores)
    Simplicidad: Es la base de la programación extrema. La idea es
     simplificar el diseño lo más posible para agilizar el desarrollo y
                         facilitar el mantenimiento.




           Tomado de Extreme Programming Explained (Kent Beck)
Modelos ágiles
(XP / Valores)



             Comunicación: Se realiza de diferentes formas:
   1) Para los programadores el código comunica mejor. La simplicidad del
           código hace que este sea legible. Es mejor tener “código
          autodocumentado” que código con grandes cantidades de
      documentación, ya que la documentación corre el riesgo de quedar
          desfasada con el código a medida que este es modificado.
    2) Las pruebas unitarias comunican, ya que describen el diseño de las
        clases y métodos al mostrar ejemplos concretos de como usar su
                                 funcionalidad.
       3) Los programadores se comunican constantemente gracias a la
                         programación en parejas.
    4) La comunicación con el cliente es fluida ya que el cliente es parte del
                                    equipo.
Modelos ágiles
(XP / Valores)



     Retroalimentación (feedback): El cliente está integrado en el
    proyecto de modo que su opinión sobre el estado del proyecto se
      conoce en tiempo real. Como las iteraciones son muy cortas
     (1-4 semanas) se minimiza el tener que rehacer partes que no
       cumplen con los requisitos y ayuda a los programadores a
                 centrarse en lo que es más importante


     Respeto: Todo el mundo recibe y siente el respeto que merece
   como miembro valioso del equipo de desarrollo. Todos en el equipo
     aportan valor, aun si es simple entusiasmo. Los desarrolladores
     respetan la experiencia de sus clientes y viceversa. La gerencia
      respeta el derecho del equipo de aceptar la responsabilidad y
                recibir la autoridad sobre su propio trabajo
Modelos ágiles
(XP / Valores)

                 Coraje o Valentía
      Hacer XP es difícil... requiere mucha disciplina
    Para los gerentes, muchas de las prácticas de XP
    pueden parecer poco intuitivas o inclusive erradas
   (programación en parejas, simplicidad, no pensar en
            la flexibilidad a futuro, entre otras)
   Para los programadores, muchas de las prácticas de
        XP pueden parecer a contracorriente y poco
   intuitivas (TDD, programación en parejas, propiedad
                       colectiva, etc).
      Es necesario mucho “coraje” para aceptar las
            prácticas y vencer los prejuicios
XP y Scrum
Scrum + XP



     Scrum provee un marco de gestión,
     pero no dice nada sobre el cómo se
   debería hacer el software o cuales son
   las prácticas técnicas que se deberían
                    usar
    Scrum se puede usar para gestionar
    muchos tipos de proyectos, no sólo
          proyectos de software
Scrum + XP




    XP provee un marco de gestión, pero
      hace mucho más énfasis en las
     prácticas técnicas necesarias para
            desarrollar software
      Es muy común que se utilice una
        combinación de Scrum + XP
Scrum + XP
Más Información




      Extreme Programming (XP)
             http://www.extremeprogramming.org/



                       Scrum
                  http://www.scrumalliance.org/
                        http://scrum.org/
XP y el Curso




                ¿qué cree usted?

      ¿qué prácticas de XP
       puede aplicar en el
     desarrollo del producto
         de este curso?
Gracias




   ¡Gracias!

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

Fundamentos de Diseño - Grupo Delta
Fundamentos de Diseño - Grupo DeltaFundamentos de Diseño - Grupo Delta
Fundamentos de Diseño - Grupo Delta
 
Is clase 13_metodos_y_procesos
Is clase 13_metodos_y_procesosIs clase 13_metodos_y_procesos
Is clase 13_metodos_y_procesos
 
Modelos de software ventajas y desventajas
Modelos de software ventajas y desventajasModelos de software ventajas y desventajas
Modelos de software ventajas y desventajas
 
Modelos de Ciclos de Vida
Modelos de Ciclos de VidaModelos de Ciclos de Vida
Modelos de Ciclos de Vida
 
diapositivas
diapositivasdiapositivas
diapositivas
 
Tipos de ciclos de vida
Tipos de ciclos de vidaTipos de ciclos de vida
Tipos de ciclos de vida
 
Proyecto de word.
Proyecto de word.Proyecto de word.
Proyecto de word.
 
Modelos para el desarrollo de software V3
Modelos para el desarrollo de software V3Modelos para el desarrollo de software V3
Modelos para el desarrollo de software V3
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Modelos d (1)
Modelos d (1)Modelos d (1)
Modelos d (1)
 
Ciclo de vida clasico
Ciclo de vida clasicoCiclo de vida clasico
Ciclo de vida clasico
 
Tipos de ciclo de vida
Tipos de ciclo de vidaTipos de ciclo de vida
Tipos de ciclo de vida
 
15 el-desarrollo-del-software
15 el-desarrollo-del-software15 el-desarrollo-del-software
15 el-desarrollo-del-software
 
I ciclos de vida
I ciclos de vidaI ciclos de vida
I ciclos de vida
 
Prototipos
PrototiposPrototipos
Prototipos
 
Is clase 13_metodos_y_procesos
Is clase 13_metodos_y_procesosIs clase 13_metodos_y_procesos
Is clase 13_metodos_y_procesos
 
Desarrollo de software
Desarrollo de softwareDesarrollo de software
Desarrollo de software
 
Modelos de desarrollo de software
Modelos de desarrollo de softwareModelos de desarrollo de software
Modelos de desarrollo de software
 
Modelos de Desarrollo de Software - INF162 - 2017
Modelos de Desarrollo de Software - INF162 - 2017Modelos de Desarrollo de Software - INF162 - 2017
Modelos de Desarrollo de Software - INF162 - 2017
 
Metodologia De Desarrollo De Software
Metodologia De Desarrollo De SoftwareMetodologia De Desarrollo De Software
Metodologia De Desarrollo De Software
 

Destaque

Destaque (20)

Clase 05a calidad verificacion validacion
Clase 05a calidad verificacion validacionClase 05a calidad verificacion validacion
Clase 05a calidad verificacion validacion
 
Hg mini manual
Hg mini manualHg mini manual
Hg mini manual
 
Clase 10 mvc
Clase 10 mvcClase 10 mvc
Clase 10 mvc
 
Clase 09a frameworks_ejemplo
Clase 09a frameworks_ejemploClase 09a frameworks_ejemplo
Clase 09a frameworks_ejemplo
 
Clase 05b pruebas introduccion
Clase 05b pruebas introduccionClase 05b pruebas introduccion
Clase 05b pruebas introduccion
 
Clase 05d cobertura de codigo
Clase 05d cobertura de codigoClase 05d cobertura de codigo
Clase 05d cobertura de codigo
 
Clase 08c ejemplo_maquina_virtual
Clase 08c ejemplo_maquina_virtualClase 08c ejemplo_maquina_virtual
Clase 08c ejemplo_maquina_virtual
 
Clase 12a uml_clases
Clase 12a uml_clasesClase 12a uml_clases
Clase 12a uml_clases
 
Clase 08b ejemplo_capas_cleda
Clase 08b ejemplo_capas_cledaClase 08b ejemplo_capas_cleda
Clase 08b ejemplo_capas_cleda
 
Clase 05c niveles de pruebas
Clase 05c niveles de pruebasClase 05c niveles de pruebas
Clase 05c niveles de pruebas
 
Clase 07b patrones_diseno_ejemplo
Clase 07b patrones_diseno_ejemploClase 07b patrones_diseno_ejemplo
Clase 07b patrones_diseno_ejemplo
 
Clase 11 uml_casos_de_uso
Clase 11 uml_casos_de_usoClase 11 uml_casos_de_uso
Clase 11 uml_casos_de_uso
 
Clase 07a patrones_diseno
Clase 07a patrones_disenoClase 07a patrones_diseno
Clase 07a patrones_diseno
 
Clase 08a estilos_arquitectonicos
Clase 08a estilos_arquitectonicosClase 08a estilos_arquitectonicos
Clase 08a estilos_arquitectonicos
 
Clase 14b uml_actividades
Clase 14b uml_actividadesClase 14b uml_actividades
Clase 14b uml_actividades
 
Clase 13 uml_paquetes
Clase 13 uml_paquetesClase 13 uml_paquetes
Clase 13 uml_paquetes
 
Clase 04b requerimientos documentacion
Clase 04b requerimientos documentacionClase 04b requerimientos documentacion
Clase 04b requerimientos documentacion
 
Clase 14a uml_estados
Clase 14a uml_estadosClase 14a uml_estados
Clase 14a uml_estados
 
Clase 04 diseno_ui
Clase 04 diseno_uiClase 04 diseno_ui
Clase 04 diseno_ui
 
Estructuras de Datos Espaciales (Topico Especial)
Estructuras de Datos Espaciales (Topico Especial)Estructuras de Datos Espaciales (Topico Especial)
Estructuras de Datos Espaciales (Topico Especial)
 

Semelhante a Clase 03 XP

Metodologias agiles Programacion Xtrema
Metodologias agiles Programacion Xtrema Metodologias agiles Programacion Xtrema
Metodologias agiles Programacion Xtrema Lis Pater
 
Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming
Seminario MetodologíAs áGiles Y Xp, Tema 3   Extreme ProgrammingSeminario MetodologíAs áGiles Y Xp, Tema 3   Extreme Programming
Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programmingguest123148
 
Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming
Seminario MetodologíAs áGiles Y Xp, Tema 3   Extreme ProgrammingSeminario MetodologíAs áGiles Y Xp, Tema 3   Extreme Programming
Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programmingguest123148
 
Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming
Seminario MetodologíAs áGiles Y Xp, Tema 3   Extreme ProgrammingSeminario MetodologíAs áGiles Y Xp, Tema 3   Extreme Programming
Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programmingguest82ea27
 
Metodologías de desarrollo ágiles: Scrum, XP
Metodologías de desarrollo ágiles: Scrum, XPMetodologías de desarrollo ágiles: Scrum, XP
Metodologías de desarrollo ágiles: Scrum, XPejordi
 
Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming
Seminario MetodologíAs áGiles Y Xp, Tema 3   Extreme ProgrammingSeminario MetodologíAs áGiles Y Xp, Tema 3   Extreme Programming
Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programmingguest82ea27
 
Is.EXP.1.327117 Programación Extrema
Is.EXP.1.327117 Programación ExtremaIs.EXP.1.327117 Programación Extrema
Is.EXP.1.327117 Programación Extremaperaltag
 
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 Sistemasgrupo7inf162
 
Modelo xp para desarrollo de proyecto
Modelo xp para desarrollo de proyectoModelo xp para desarrollo de proyecto
Modelo xp para desarrollo de proyectoJohita Guerrero
 
Metodología ágil de programación extrema
Metodología ágil de programación extremaMetodología ágil de programación extrema
Metodología ágil de programación extremaRafael Hernandez
 
Metodología ágil de programación extrema
Metodología ágil de programación extremaMetodología ágil de programación extrema
Metodología ágil de programación extremaMiguelGonzalezLo
 
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 sistemasgrupo7inf162
 
Unidad I - Desarrollo rápido de software
Unidad I - Desarrollo rápido de softwareUnidad I - Desarrollo rápido de software
Unidad I - Desarrollo rápido de softwareAlejandro Flores
 
Metodos agiles
Metodos agilesMetodos agiles
Metodos agilesCrisCobol
 
Metodos agiles
Metodos agilesMetodos agiles
Metodos agilesCrisCobol
 

Semelhante a Clase 03 XP (20)

Metodologias agiles Programacion Xtrema
Metodologias agiles Programacion Xtrema Metodologias agiles Programacion Xtrema
Metodologias agiles Programacion Xtrema
 
Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming
Seminario MetodologíAs áGiles Y Xp, Tema 3   Extreme ProgrammingSeminario MetodologíAs áGiles Y Xp, Tema 3   Extreme Programming
Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming
 
Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming
Seminario MetodologíAs áGiles Y Xp, Tema 3   Extreme ProgrammingSeminario MetodologíAs áGiles Y Xp, Tema 3   Extreme Programming
Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming
 
Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming
Seminario MetodologíAs áGiles Y Xp, Tema 3   Extreme ProgrammingSeminario MetodologíAs áGiles Y Xp, Tema 3   Extreme Programming
Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming
 
Metodologías de desarrollo ágiles: Scrum, XP
Metodologías de desarrollo ágiles: Scrum, XPMetodologías de desarrollo ágiles: Scrum, XP
Metodologías de desarrollo ágiles: Scrum, XP
 
Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming
Seminario MetodologíAs áGiles Y Xp, Tema 3   Extreme ProgrammingSeminario MetodologíAs áGiles Y Xp, Tema 3   Extreme Programming
Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming
 
Is.EXP.1.327117 Programación Extrema
Is.EXP.1.327117 Programación ExtremaIs.EXP.1.327117 Programación Extrema
Is.EXP.1.327117 Programación Extrema
 
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
 
Modelo xp para desarrollo de proyecto
Modelo xp para desarrollo de proyectoModelo xp para desarrollo de proyecto
Modelo xp para desarrollo de proyecto
 
Alternativas metodológicas
Alternativas metodológicasAlternativas metodológicas
Alternativas metodológicas
 
Metodología ágil de programación extrema
Metodología ágil de programación extremaMetodología ágil de programación extrema
Metodología ágil de programación extrema
 
Metodología ágil de programación extrema
Metodología ágil de programación extremaMetodología ágil de programación extrema
Metodología ágil de programación extrema
 
Diapositivas xp
Diapositivas xpDiapositivas xp
Diapositivas xp
 
Metodologia XP
Metodologia XPMetodologia XP
Metodologia XP
 
Sesion09 quiz_5_metodologías agiles_xp
 Sesion09 quiz_5_metodologías agiles_xp Sesion09 quiz_5_metodologías agiles_xp
Sesion09 quiz_5_metodologías agiles_xp
 
xp-1.pptx
xp-1.pptxxp-1.pptx
xp-1.pptx
 
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
 
Unidad I - Desarrollo rápido de software
Unidad I - Desarrollo rápido de softwareUnidad I - Desarrollo rápido de software
Unidad I - Desarrollo rápido de software
 
Metodos agiles
Metodos agilesMetodos agiles
Metodos agiles
 
Metodos agiles
Metodos agilesMetodos agiles
Metodos agiles
 

Último

La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxGESTECPERUSAC
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
Explorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramExplorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramDIDIERFERNANDOGUERRE
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel tallerValentinaTabares11
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxMariaBurgos55
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOnarvaezisabella21
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 

Último (20)

La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptx
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
Explorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramExplorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ram
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel taller
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 

Clase 03 XP

  • 1. XP (Programación eXtrema) Universidad de los Andes Demián Gutierrez Octubre 2012
  • 2. Modelos ágiles (XP) XP (eXtreme Programing): Es una estrategia de desarrollo de software creada hace aproximadamente hace unos diez años que ha causado gran impacto entre el colectivo de programadores del mundo Kent Beck, su autor, es un programador que ha trabajado en múltiples empresas Con sus teorías ha conseguido el respaldo de gran parte de la industria del software y el rechazo de otra parte http://www.extremeprogramming.org
  • 3. Modelos Incrementales (Modelo Incremental) advertencia La Programación Extrema (XP) y otros métodos no significan desarrollar “sin método” Los métodos ágiles requieren en el fondo mucha disciplina para poder ejecutarlos y mantener el orden de forma satisfactoria
  • 4. Esto NO es XP (video) http://youtu.be/xczAJctmdH0
  • 5. uno de los mejores libros que he leído sobre ingeniería de software
  • 6. Modelos ágiles (Mito: El costo del cambio) Tomado de Extreme Programming Explained (Kent Beck)
  • 7. Modelos ágiles (Objetivo: El costo del cambio) Tomado de Extreme Programming Explained (Kent Beck)
  • 8. Modelos ágiles (XP) Desarrollo guiado por pruebas Versión inicial de la Iteraciones cortas Entregas arquitectura, prototipos 1-4 semanas frecuentes para mitigar riesgos técnicos o para comprender mejor el http://www.extremeprogramming.org dominio
  • 9. Modelos ágiles (XP) Valor para el cliente Importancia del Software Transparencia Funcionando Dentro de una Iteración Auto-organización Daily Meeting http://www.extremeprogramming.org
  • 10. Modelos ágiles (XP) ¿Suena Conocido? Scrum
  • 12. Historias de Usuarios (Modelos ágiles – XP, SCRUM) Una historia de usuario es una narración que describe cierta funcionalidad del sistema que tiene valor para un usuario o comprador particular Se recogen en unas sencillas tarjetas de forma esquemática y en un lenguaje claro y preciso. Aprobación de nuevos usuarios ¿quién? Yo como administrador del foro  quisiera poder aceptar o rechazar los  nuevos usuarios registrados para así  ¿qué? poder evitar que el foro se llene de  ¿por qué? spammers
  • 13. Historias de Usuarios (Modelos ágiles – XP, SCRUM) Aprobación de nuevos usuarios Yo como administrador del foro  quisiera poder aceptar o rechazar los  nuevos usuarios registrados para así  poder evitar que el foro se llene de  spammers Las historias de usuario sirven de “recordatorio” de la funcionalidad que es necesario implementar en el sistema Antes de implementar una funcionalidad en particular se produce una discusión con el usuario, se refina y extiende la información de la historia de usuario
  • 15. Modelos ágiles (XP / Prácticas) ● El desarrollo del plan: Determinar rápidamente el alcance de la siguiente iteración / entrega en base a las prioridades del negocio (cliente) y los estimados técnicos. Estar dispuestos a cambiar el plan a medida que es necesario. ● Liberar mucho, en incrementos pequeños: Poner el sistema en producción los más rápido posible (el mínimo necesario) y desarrollar las siguientes versiones con el ciclo lo mas corto posible. ● Contar con una “Metáfora” para el sistema: Una historia o una idea simple, compartida, de como funciona todo el sistema.
  • 16. Modelos ágiles (XP / Prácticas) ● Diseño simple: Mantener el diseño lo más simple posible (KISS: Keep it Simple Stup$%#id), concentrarse en el presente y no en el futuro: (YAGNI: You ain't going to need it) ● Pruebas Unitarias (automatizadas): Sirven para evitar que los programadores se equivoquen, para evitar las “parcelas” de código y para validar constantemente la aplicación. Los clientes también pueden escribir pruebas para validar / demostrar ciertas características del sistema. ● Refactor: Los programadores reestructuran el sistema siempre que es necesario, eliminando la duplicación, mejorando la comunicación, simplificando o añadiendo flexibilidad.
  • 17. Modelos ágiles (XP / Prácticas) ● Programación en parejas: Todo el código a ponerse en producción es escrito en parejas. ¿Sabe usted por qué? ● Propiedad colectiva: Nadie es dueño de ninguna clase, de ningún artefacto, de ninguna parte del código. (La prueba del camión... ¿sabe usted cuantos desarrolladores pueden ser atropellados por un camión antes de que el proyecto esté en peligro?) ● Integración continua: Las características del sistema se desarrollan y se integran a diario. Luego se corren las pruebas y se verifica que la aplicación corra correctamente.
  • 18. Modelos ágiles (XP / Prácticas) ● 40 horas a la semana: Nadie. ¡NADIE! Trabaja horas extra. ¿Sabe usted porque? ● El cliente involucrado en el ambiente de desarrollo: El cliente (o un representante) es un miembro más del equipo de desarrollo. ● Estándares de codificación: Se definen estándares adecuados de codificación y se respetan. Sobre todo aquellos que enfatizan la “auto-documentación” y adecuada documentación del código.
  • 19. Modelos ágiles (XP / Prácticas) Tomado de Extreme Programming Explained (Kent Beck)
  • 20. Modelos ágiles (XP / Niveles de Planificación) ¿planificación a distintos niveles? ¿qué es planificar? ¿qué cosas se pueden planificar?
  • 21. Modelos ágiles (XP / Niveles de Planificación) ¿planificación a distintos niveles?
  • 22. Valores ¿Por qué será esto importante? (fix XP)
  • 23. Modelos ágiles (XP / Valores) Simplicidad: Es la base de la programación extrema. La idea es simplificar el diseño lo más posible para agilizar el desarrollo y facilitar el mantenimiento. Tomado de Extreme Programming Explained (Kent Beck)
  • 24. Modelos ágiles (XP / Valores) Comunicación: Se realiza de diferentes formas: 1) Para los programadores el código comunica mejor. La simplicidad del código hace que este sea legible. Es mejor tener “código autodocumentado” que código con grandes cantidades de documentación, ya que la documentación corre el riesgo de quedar desfasada con el código a medida que este es modificado. 2) Las pruebas unitarias comunican, ya que describen el diseño de las clases y métodos al mostrar ejemplos concretos de como usar su funcionalidad. 3) Los programadores se comunican constantemente gracias a la programación en parejas. 4) La comunicación con el cliente es fluida ya que el cliente es parte del equipo.
  • 25. Modelos ágiles (XP / Valores) Retroalimentación (feedback): El cliente está integrado en el proyecto de modo que su opinión sobre el estado del proyecto se conoce en tiempo real. Como las iteraciones son muy cortas (1-4 semanas) se minimiza el tener que rehacer partes que no cumplen con los requisitos y ayuda a los programadores a centrarse en lo que es más importante Respeto: Todo el mundo recibe y siente el respeto que merece como miembro valioso del equipo de desarrollo. Todos en el equipo aportan valor, aun si es simple entusiasmo. Los desarrolladores respetan la experiencia de sus clientes y viceversa. La gerencia respeta el derecho del equipo de aceptar la responsabilidad y recibir la autoridad sobre su propio trabajo
  • 26. Modelos ágiles (XP / Valores) Coraje o Valentía Hacer XP es difícil... requiere mucha disciplina Para los gerentes, muchas de las prácticas de XP pueden parecer poco intuitivas o inclusive erradas (programación en parejas, simplicidad, no pensar en la flexibilidad a futuro, entre otras) Para los programadores, muchas de las prácticas de XP pueden parecer a contracorriente y poco intuitivas (TDD, programación en parejas, propiedad colectiva, etc). Es necesario mucho “coraje” para aceptar las prácticas y vencer los prejuicios
  • 28. Scrum + XP Scrum provee un marco de gestión, pero no dice nada sobre el cómo se debería hacer el software o cuales son las prácticas técnicas que se deberían usar Scrum se puede usar para gestionar muchos tipos de proyectos, no sólo proyectos de software
  • 29. Scrum + XP XP provee un marco de gestión, pero hace mucho más énfasis en las prácticas técnicas necesarias para desarrollar software Es muy común que se utilice una combinación de Scrum + XP
  • 31. Más Información Extreme Programming (XP) http://www.extremeprogramming.org/ Scrum http://www.scrumalliance.org/ http://scrum.org/
  • 32. XP y el Curso ¿qué cree usted? ¿qué prácticas de XP puede aplicar en el desarrollo del producto de este curso?
  • 33. Gracias ¡Gracias!