METODOLOGÍAS ÁGILES
“EXTREME PROGRAMMING”
          (XP)

         •Clemente   Méndez, Fco. Javier
        •Rodríguez   Cotorruelo, Enrique
1. INTRODUCCIÓN
2. OBJETIVOS
3. CARACTERÍSTICAS
4. PRINCIPIOS DEL MÉTODO XP
5. PRÁCTICAS BASADAS EN XP
6. CICLO DE VIDA
7. VENTAJAS E INCONVENIENTES
1. INTRODUCCIÓN
                              ¿Qué es la Programación
Breve Reseña Histórica
                                  Extrema o XP?
La programación extrema         Metodología liviana de
 o eXtreme Programming           desarrollo de software.
 (XP) es un enfoque de la      Conjunto de practicas y
                                reglas empleadas para
ingeniería de software
                                 desarrollar software.
formulado por Kent Beck,
                              Basada en diferentes ideas
  autor del primer libro        acerca de cómo enfrentar
sobre la materia, Extreme        ambientes cambiantes.
Programming Explained:          En vez de planificar,
 Embrace Change (1999).        analizar y diseñar para el
Es el más destacado de los     futuro, hacer todo esto un
                               poco cada vez, a través de
   procesos ágiles de
                                   todo el proceso de
 desarrollo de software.               desarrollo.
2. OBJETIVOS

 Establecer las mejores prácticas de Ingeniería de Software
  en los desarrollo de proyectos.

 Mejorar la productividad de los proyectos.

 Garantizar la Calidad del Software desarrollando, haciendo
  que este supere las expectativas del cliente.

 Asumir que con cierta planificación, codificación y pruebas
  se puede decidir si se está siguiendo un camino correcto o
  equivocado, evitando retroceder cuando sea demasiado
  tarde.
3. CARACTERÍSTICAS

   Metodología basada en prueba y error para obtener un
    software que funcione realmente.

   Fundamentada en Principios.

   Expresada en forma de 12 Prácticas (conjunto completo,
    complementándose unas a otras). Las cuales son conocidas
    pero su novedad es juntarlas.

   Esta orientada hacia quien produce y usa el software (el
    cliente participa muy activamente).
3. CARACTERÍSTICAS

   Reduce el coste del cambio en todas las etapas del ciclo de
    vida del sistema.

   Combina las que han demostrado ser las mejores prácticas
    para desarrollar software, y las lleva al extremo.

   Cliente bien definido.

   Los requisitos pueden cambiar.

   Grupo pequeño y muy integrado (2 - 12 personas).
    Fundamentalmente se trabaja en parejas.

   Equipo con formación elevada y capacidad de aprender.
4. PRINCIPIOS DEL MÉTODO X.P.
Este método se basa principalmente en 4 valores o principios
bien definidos:

1.   Simplicidad: La simplicidad consiste en desarrollar sólo el
     sistema que realmente se necesita. Implica resolver en cada
     momento sólo las necesidades actuales.

2.   Feedback: Una metodología basada en el desarrollo
     iterativo de pequeñas partes, con entregas y pruebas
     frecuentes y continuas, proporciona un flujo de retro-
     información     valioso   para   detectar   los   problemas   o
     desviaciones.
4. PRINCIPIOS DEL MÉTODO X.P.
3.   Decisión:
    Implica saber tomar decisiones difíciles.

    Reparar un error cuando se detecta.

    Mejorar el código siempre que tras el feedback y las
     sucesivas iteraciones.

4.   Comunicación : Algunos problemas en los proyectos tienen
     origen en que alguien no dijo algo importante en algún
     momento. XP hace casi imposible la falta de comunicación, ya
     que pone en comunicación directa y continua a clientes y
     desarrolladores.
5. PRÁCTICAS BASADAS EN X.P.
1.   Equipo completo: Forman parte del equipo todas las
     personas que tienen algo que ver con el proyecto, incluido
     el cliente y el responsable del proyecto.

2.   Planificación: Se hacen las historias de usuario y se
     planifica en qué orden se van a hacer y las mini-versiones.
     La planificación se revisa continuamente.

3.   Test del cliente: El cliente, con la ayuda de los
     desarrolladores, propone sus propias pruebas para validar
     las mini-versiones.
5. PRÁCTICAS BASADAS EN X.P.
4.   Versiones pequeñas: Las mini-versiones deben ser lo
     suficientemente pequeñas como para poder hacer una cada
     pocas semanas. Deben ser versiones que ofrezcan algo útil
     al usuario final y no fragmentos de código que no pueda
     ver funcionando.

5.   Diseño simple: Hacer siempre lo mínimo imprescindible
     de la forma más sencilla posible. Mantener siempre
     sencillo el código.

6.   Pareja de programadores: Los programadores trabajan
     por parejas (dos delante del mismo ordenador) y se
     intercambian las parejas con frecuencia.
5. PRÁCTICAS BASADAS EN X.P.
7.   Desarrollo guiado por las pruebas automáticas: Se
     deben realizar programas de prueba automática y deben
     ejecutarse con mucha frecuencia. Cuantas más pruebas se
     hagan, mejor.

8.   Integración     continua:   Deben   tenerse   siempre   un
     ejecutable del proyecto que funcione y en cuanto se tenga
     una nueva pequeña funcionalidad, debe recompilarse y
     probarse. Es un error mantener una versión congelada dos
     meses mientras se hacen mejoras y luego integrarlas todas
     de golpe.
5. PRÁCTICAS BASADAS EN X.P.
9.    El código es de todos: Cualquiera puede y debe tocar y
      conocer cualquier parte del código. Para eso se hacen las
      pruebas automáticas.

10.   Normas de codificación: Debe haber un estilo común de
      codificación (no importa cual), de forma que parezca que
      ha sido realizado por una única persona.

11.   Metáforas: Hay que buscar unas frases o nombres que
      definan cómo funcionan las distintas partes del programa,
      de forma que sólo con los nombres se pueda uno hacer una
      idea de qué es lo que hace cada parte del programa.
5. PRÁCTICAS BASADAS EN X.P.
12.   Ritmo sostenible: Se debe trabajar a un ritmo que se
      pueda mantener indefinidamente. Esto quiere decir que no
      debe haber días muertos en que no se sabe qué hacer y que
      no se deben hacer un exceso de horas otros días. Hay que
      trabajar para conseguir el objetivo cercano de terminar
      una historia de usuario o mini-versión.
5. PRÁCTICAS BASADAS EN X.P.
6. CICLO DE VIDA
   Ejemplo gráfico:
7. VENTAJAS E INCONVENIENTES
   Ventajas:

   Da lugar a una programación sumamente organizada.

   Cuenta con una tasa de errores muy pequeña.

   Propicia la satisfacción del programador.

   Facilita los cambios.

   Permite ahorrar mucho tiempo y dinero.

   Puede ser aplicada a cualquier lenguaje de programación.

   El cliente tiene el control sobre las prioridades.

   Se hacen pruebas continuas durante el proyecto.
7. VENTAJAS E INCONVENIENTES
   Inconvenientes:

   Es recomendable emplearla solo en proyectos a corto plazo.

   En caso de fallar, las comisiones son muy altas.

   Requiere de un rígido ajuste a los principios de XP.

   Puede no siempre ser más fácil que el desarrollo tradicional.
METODOLOGÍAS ÁGILES
“EXTREME PROGRAMMING”
          (XP)

         •Clemente   Méndez, Fco. Javier
        •Rodríguez   Cotorruelo, Enrique

Metodología xp

  • 1.
    METODOLOGÍAS ÁGILES “EXTREME PROGRAMMING” (XP) •Clemente Méndez, Fco. Javier •Rodríguez Cotorruelo, Enrique
  • 2.
    1. INTRODUCCIÓN 2. OBJETIVOS 3.CARACTERÍSTICAS 4. PRINCIPIOS DEL MÉTODO XP 5. PRÁCTICAS BASADAS EN XP 6. CICLO DE VIDA 7. VENTAJAS E INCONVENIENTES
  • 3.
    1. INTRODUCCIÓN ¿Qué es la Programación Breve Reseña Histórica Extrema o XP? La programación extrema  Metodología liviana de o eXtreme Programming desarrollo de software. (XP) es un enfoque de la  Conjunto de practicas y reglas empleadas para ingeniería de software desarrollar software. formulado por Kent Beck,  Basada en diferentes ideas autor del primer libro acerca de cómo enfrentar sobre la materia, Extreme ambientes cambiantes. Programming Explained:  En vez de planificar, Embrace Change (1999). analizar y diseñar para el Es el más destacado de los futuro, hacer todo esto un poco cada vez, a través de procesos ágiles de todo el proceso de desarrollo de software. desarrollo.
  • 4.
    2. OBJETIVOS  Establecerlas mejores prácticas de Ingeniería de Software en los desarrollo de proyectos.  Mejorar la productividad de los proyectos.  Garantizar la Calidad del Software desarrollando, haciendo que este supere las expectativas del cliente.  Asumir que con cierta planificación, codificación y pruebas se puede decidir si se está siguiendo un camino correcto o equivocado, evitando retroceder cuando sea demasiado tarde.
  • 5.
    3. CARACTERÍSTICAS  Metodología basada en prueba y error para obtener un software que funcione realmente.  Fundamentada en Principios.  Expresada en forma de 12 Prácticas (conjunto completo, complementándose unas a otras). Las cuales son conocidas pero su novedad es juntarlas.  Esta orientada hacia quien produce y usa el software (el cliente participa muy activamente).
  • 6.
    3. CARACTERÍSTICAS  Reduce el coste del cambio en todas las etapas del ciclo de vida del sistema.  Combina las que han demostrado ser las mejores prácticas para desarrollar software, y las lleva al extremo.  Cliente bien definido.  Los requisitos pueden cambiar.  Grupo pequeño y muy integrado (2 - 12 personas). Fundamentalmente se trabaja en parejas.  Equipo con formación elevada y capacidad de aprender.
  • 7.
    4. PRINCIPIOS DELMÉTODO X.P. Este método se basa principalmente en 4 valores o principios bien definidos: 1. Simplicidad: La simplicidad consiste en desarrollar sólo el sistema que realmente se necesita. Implica resolver en cada momento sólo las necesidades actuales. 2. Feedback: Una metodología basada en el desarrollo iterativo de pequeñas partes, con entregas y pruebas frecuentes y continuas, proporciona un flujo de retro- información valioso para detectar los problemas o desviaciones.
  • 8.
    4. PRINCIPIOS DELMÉTODO X.P. 3. Decisión:  Implica saber tomar decisiones difíciles.  Reparar un error cuando se detecta.  Mejorar el código siempre que tras el feedback y las sucesivas iteraciones. 4. Comunicación : Algunos problemas en los proyectos tienen origen en que alguien no dijo algo importante en algún momento. XP hace casi imposible la falta de comunicación, ya que pone en comunicación directa y continua a clientes y desarrolladores.
  • 9.
    5. PRÁCTICAS BASADASEN X.P. 1. Equipo completo: Forman parte del equipo todas las personas que tienen algo que ver con el proyecto, incluido el cliente y el responsable del proyecto. 2. Planificación: Se hacen las historias de usuario y se planifica en qué orden se van a hacer y las mini-versiones. La planificación se revisa continuamente. 3. Test del cliente: El cliente, con la ayuda de los desarrolladores, propone sus propias pruebas para validar las mini-versiones.
  • 10.
    5. PRÁCTICAS BASADASEN X.P. 4. Versiones pequeñas: Las mini-versiones deben ser lo suficientemente pequeñas como para poder hacer una cada pocas semanas. Deben ser versiones que ofrezcan algo útil al usuario final y no fragmentos de código que no pueda ver funcionando. 5. Diseño simple: Hacer siempre lo mínimo imprescindible de la forma más sencilla posible. Mantener siempre sencillo el código. 6. Pareja de programadores: Los programadores trabajan por parejas (dos delante del mismo ordenador) y se intercambian las parejas con frecuencia.
  • 11.
    5. PRÁCTICAS BASADASEN X.P. 7. Desarrollo guiado por las pruebas automáticas: Se deben realizar programas de prueba automática y deben ejecutarse con mucha frecuencia. Cuantas más pruebas se hagan, mejor. 8. Integración continua: Deben tenerse siempre un ejecutable del proyecto que funcione y en cuanto se tenga una nueva pequeña funcionalidad, debe recompilarse y probarse. Es un error mantener una versión congelada dos meses mientras se hacen mejoras y luego integrarlas todas de golpe.
  • 12.
    5. PRÁCTICAS BASADASEN X.P. 9. El código es de todos: Cualquiera puede y debe tocar y conocer cualquier parte del código. Para eso se hacen las pruebas automáticas. 10. Normas de codificación: Debe haber un estilo común de codificación (no importa cual), de forma que parezca que ha sido realizado por una única persona. 11. Metáforas: Hay que buscar unas frases o nombres que definan cómo funcionan las distintas partes del programa, de forma que sólo con los nombres se pueda uno hacer una idea de qué es lo que hace cada parte del programa.
  • 13.
    5. PRÁCTICAS BASADASEN X.P. 12. Ritmo sostenible: Se debe trabajar a un ritmo que se pueda mantener indefinidamente. Esto quiere decir que no debe haber días muertos en que no se sabe qué hacer y que no se deben hacer un exceso de horas otros días. Hay que trabajar para conseguir el objetivo cercano de terminar una historia de usuario o mini-versión.
  • 14.
  • 15.
    6. CICLO DEVIDA  Ejemplo gráfico:
  • 16.
    7. VENTAJAS EINCONVENIENTES  Ventajas:  Da lugar a una programación sumamente organizada.  Cuenta con una tasa de errores muy pequeña.  Propicia la satisfacción del programador.  Facilita los cambios.  Permite ahorrar mucho tiempo y dinero.  Puede ser aplicada a cualquier lenguaje de programación.  El cliente tiene el control sobre las prioridades.  Se hacen pruebas continuas durante el proyecto.
  • 17.
    7. VENTAJAS EINCONVENIENTES  Inconvenientes:  Es recomendable emplearla solo en proyectos a corto plazo.  En caso de fallar, las comisiones son muy altas.  Requiere de un rígido ajuste a los principios de XP.  Puede no siempre ser más fácil que el desarrollo tradicional.
  • 18.
    METODOLOGÍAS ÁGILES “EXTREME PROGRAMMING” (XP) •Clemente Méndez, Fco. Javier •Rodríguez Cotorruelo, Enrique