Extreme Programming

31
 Programación Extrema Extreme Programming (XP) Patricio Letelier [email protected] Departamento de Sistemas Informáticos y Computación Universidad Politécnica de V alencia

Transcript of Extreme Programming

5/14/2018 Extreme Programming - slidepdf.com

http://slidepdf.com/reader/full/extreme-programming-55a92d7595a64 1/31

 

Programación Extrema

Extreme Programming (XP)Patricio [email protected]

Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia

5/14/2018 Extreme Programming - slidepdf.com

http://slidepdf.com/reader/full/extreme-programming-55a92d7595a64 2/31

 

2

  www.dsic.upv.es/~letelier

Contenidos

Introducción

RolesCaptura y especificación de requisitosPlanificaciónProgramaciónPrácticas XP

5/14/2018 Extreme Programming - slidepdf.com

http://slidepdf.com/reader/full/extreme-programming-55a92d7595a64 3/31

 

3

  www.dsic.upv.es/~letelier

¿Qué es XP?

Es una metodología ágil Diseñada para entornos dinámicos

Pensada para equipos pequeños (hasta 10programadores) Orientada fuertemente hacia la codificación

Énfasis en la comunicación informal, verbal

5/14/2018 Extreme Programming - slidepdf.com

http://slidepdf.com/reader/full/extreme-programming-55a92d7595a64 4/31

 

4

  www.dsic.upv.es/~letelier

Historia de XP

Creado por Kent Beck para la plantilladel proyecto C3 en Chrysler Kent fue contratado para dirigir el proyecto Durante el proceso nació una nueva

metodología: eXtreme Programming (XP) C3 concluyó exitosamente en 1997

5/14/2018 Extreme Programming - slidepdf.com

http://slidepdf.com/reader/full/extreme-programming-55a92d7595a64 5/31

 

5

  www.dsic.upv.es/~letelier

Valores que fomenta XP

Comunicación

SimplicidadRetroalimentación

Coraje

5/14/2018 Extreme Programming - slidepdf.com

http://slidepdf.com/reader/full/extreme-programming-55a92d7595a64 6/31

 

6

  www.dsic.upv.es/~letelier

Roles XPc2.com/cgi/wiki?ExtremeRoles

Programador (Programmer)

Responsable de decisionestécnicas

Responsable de construir elsistema

Sin distinción entre analistas,diseñadores o programadores

En XP, los programadoresdiseñan, programan y realizan las

pruebas

Jefe de Proyecto(Manager)

Organiza y guía lasreuniones

Asegura condicionesadecuadas para elproyecto

Cliente (Customer)

Es parte del equipo Determina qué construiry cuándo

Establece las pruebas deaceptación

5/14/2018 Extreme Programming - slidepdf.com

http://slidepdf.com/reader/full/extreme-programming-55a92d7595a64 7/31

7

  www.dsic.upv.es/~letelier

... Roles XP

Entrenador (Coach)

Responsable del proceso Tiende a estar en un

segundo plano a medidaque el equipo madura

Encargado dePruebas (Tester )

Ayuda al cliente con laspruebas de aceptación

Se asegura de que laspruebas aceptación sesuperan

Rastreador (Tracker )

Metric Man 

Observa sin molestar Conserva datos

históricos

 

5/14/2018 Extreme Programming - slidepdf.com

http://slidepdf.com/reader/full/extreme-programming-55a92d7595a64 8/31

8

  www.dsic.upv.es/~letelier

Captura de Requisitos en XP

Historias del Usuario (User-Stories )

Establecen los requisitos del cliente

Las establece el cliente Son la base para las pruebas de aceptación Se caracterizan por prioridad, riesgo y

esfuerzo

 

5/14/2018 Extreme Programming - slidepdf.com

http://slidepdf.com/reader/full/extreme-programming-55a92d7595a64 9/31

9

  www.dsic.upv.es/~letelier

Captura de Requisitos en XPUna ficha de Historia de Usuario

 

5/14/2018 Extreme Programming - slidepdf.com

http://slidepdf.com/reader/full/extreme-programming-55a92d7595a64 10/31

10

  www.dsic.upv.es/~letelier

Planificación en XP

Planificación por entregas (releases )Las Historias de Usuario se priorizan por el clienteseleccionando aquellas más importantes para el

negocioEntregas: Son lo más pequeñas posibles

Se dividen en iteraciones (iteración = 2 o 3 semanas) Cada iteración está compuesta por historias de usuario

 

5/14/2018 Extreme Programming - slidepdf.com

http://slidepdf.com/reader/full/extreme-programming-55a92d7595a64 11/31

11

  www.dsic.upv.es/~letelier

Programación en XP

Cada Historia de Usuario se descompone entareas de programación

La programación de tareas se realiza por parejas

La pareja diseña, prueba, implementa e integra elcódigo de la tarea

Código dirigido por las pruebasCódigo modular, intentando refactorizar siempreque se pueda

 

5/14/2018 Extreme Programming - slidepdf.com

http://slidepdf.com/reader/full/extreme-programming-55a92d7595a64 12/31

12

  www.dsic.upv.es/~letelier

Programación en XPUna ficha de Tarea

 

5/14/2018 Extreme Programming - slidepdf.com

http://slidepdf.com/reader/full/extreme-programming-55a92d7595a64 13/31

13

  www.dsic.upv.es/~letelier

Modelo de un Proyecto XP

 

5/14/2018 Extreme Programming - slidepdf.com

http://slidepdf.com/reader/full/extreme-programming-55a92d7595a64 14/31

14

  www.dsic.upv.es/~letelier

Espacio de trabajo XP

Espacio abiertoMesas centralesCubículos en el espacio exterior

Espacio de trabajo

del proyecto C3 de

DaimlerChrysler 

 

5/14/2018 Extreme Programming - slidepdf.com

http://slidepdf.com/reader/full/extreme-programming-55a92d7595a64 15/31

15

  www.dsic.upv.es/~letelier

Prácticas XP

• El juego de laplanificación

• Entregas pequeñas• Metáfora

• Diseño simple

• Pruebas• Refactoring

• Programación enparejas

Propiedad colectiva• Integración contínua

• Semana de 40 horas

• Cliente in situ• Estándares de

programación

 

5/14/2018 Extreme Programming - slidepdf.com

http://slidepdf.com/reader/full/extreme-programming-55a92d7595a64 16/31

16

  www.dsic.upv.es/~letelier

Prácticas XPEl Juego de la planificación

Decisiones de negocio (cliente): Alcance ¿Cuándo debe estar listo el producto para

que sea valioso en producción? Prioridad Prioriza la incorporación de las Historias

de Usuario Composición de entregas ¿Qué se necesita para

que el negocio mejore? Fechas de entrega Fechas cuando el software en

operación causaría una gran diferencia

 

5/14/2018 Extreme Programming - slidepdf.com

http://slidepdf.com/reader/full/extreme-programming-55a92d7595a64 17/31

17

  www.dsic.upv.es/~letelier

Prácticas XP... El Juego de la planificación

Decisiones técnicas (programadores y otros): Estimaciones ¿Cuánto tiempo tardará en

implementarse una Historia de Usuario? Consecuencias Tener en cuenta las consecuencias

técnicas de determinadas decisiones de negocio Proceso Organización del proceso y el equipo

Planificación detallada

Dentro de una entrega, quéHistorias de Usuarioi se realizan primero. Intentar trasladarlos segmentos de desarrollo más arriesgados al principio,intentando respetar las prioridades del negocio

 

5/14/2018 Extreme Programming - slidepdf.com

http://slidepdf.com/reader/full/extreme-programming-55a92d7595a64 18/31

18

  www.dsic.upv.es/~letelier

Reunión diaria “Stand-up Meeting”

Todo el equipo Problemas Soluciones

De pie en un círculo Evitar discusiones largas Sin conversaciones separadas

Prácticas XP... El Juego de la planificación

Reunión diaria XP

 

5/14/2018 Extreme Programming - slidepdf.com

http://slidepdf.com/reader/full/extreme-programming-55a92d7595a64 19/31

19

  www.dsic.upv.es/~letelier

Cada entrega es lo más corta posible: Incluir requisitos más valiosos del sistema

(básicos) Reducir el riesgo mayor retroalimentación

desde el cliente, y más frecuente

Minimizar el nº de Historias de Usuario que

componen una entrega No realizarHistorias de Usuario a medias

Prácticas XPEntregas pequeñas

 

5/14/2018 Extreme Programming - slidepdf.com

http://slidepdf.com/reader/full/extreme-programming-55a92d7595a64 20/31

20

  www.dsic.upv.es/~letelier

Cada proyecto XP es guiado por unametáfora global

Da un contexto al equipo para entender loselementos básicos y sus relaciones

Proporciona integridad conceptual

Prácticas XPMetáfora

 

5/14/2018 Extreme Programming - slidepdf.com

http://slidepdf.com/reader/full/extreme-programming-55a92d7595a64 21/31

21

  www.dsic.upv.es/~letelier

Se diseña “la cosa más simple que pueda

funcionar”

Uso de tarjetas CRCDiseño de software correcto, es aquel que: Supera todas las pruebas No tiene lógica duplicada Pone de manifiesto las intenciones importantes de

los programadores Tiene el mínimo número de clases y métodos

Prácticas XPDiseño simple

 

5/14/2018 Extreme Programming - slidepdf.com

http://slidepdf.com/reader/full/extreme-programming-55a92d7595a64 22/31

22

  www.dsic.upv.es/~letelier

Las pruebas unitarias se escriben ANTESque el código

Pruebas automatizadasPermiten el desarrollo de proyectos de formarápida y seguraPruebas unitarias programadores

Pruebas de aceptación clienteResultado Un programa cada vez másseguro

Prácticas XPPruebas

 

5/14/2018 Extreme Programming - slidepdf.com

http://slidepdf.com/reader/full/extreme-programming-55a92d7595a64 23/31

23

  www.dsic.upv.es/~letelier

Refactorización = Mejora de la arquitectura

sin cambiar el comportamiento del sistemaIntentar eliminar complejidad

Código duplicado Refactorización

Se plantea su aplicación antes de enfrentaruna Historia de Usuario/Tarea

Prácticas XPRefactoring 

www.refactoring.com

 

5/14/2018 Extreme Programming - slidepdf.com

http://slidepdf.com/reader/full/extreme-programming-55a92d7595a64 24/31

24

  www.dsic.upv.es/~letelier 

5/14/2018 Extreme Programming - slidepdf.com

http://slidepdf.com/reader/full/extreme-programming-55a92d7595a64 25/31

25

  www.dsic.upv.es/~letelier

Toda el código se escribe en parejas Se produce código de mayor calidad

Extiende el conocimiento

“Se realiza el trabajo de 1 persona en casi la

mitad del tiempo y mejor” (cuestionable)

Prácticas XPProgramación en parejas

www.pairprogramming.com

 

5/14/2018 Extreme Programming - slidepdf.com

http://slidepdf.com/reader/full/extreme-programming-55a92d7595a64 26/31

26

  www.dsic.upv.es/~letelier

Cualquiera puede modificar el código encualquier momento Se evitan cuellos de

botella en la codificaciónTodos asume las responsabilidades sobre elconjunto del sistema

Todos conocen algo sobre todas las partes yconocen muy bien aquéllas en las que trabajan

Prácticas XPPropiedad colectiva

 

5/14/2018 Extreme Programming - slidepdf.com

http://slidepdf.com/reader/full/extreme-programming-55a92d7595a64 27/31

27

  www.dsic.upv.es/~letelier

El código se integra y se prueba después depocas horas

Existe una ordenador dedicado para laintegración

Cada pareja integra su código en dichoordenador

Prácticas XPIntegración contínua

 

5/14/2018 Extreme Programming - slidepdf.com

http://slidepdf.com/reader/full/extreme-programming-55a92d7595a64 28/31

28

  www.dsic.upv.es/~letelier

Filosofía: “Los programadores que descansan

son más productivos”

El exceso de trabajo es un serio problema enun proyecto

La gente está más fresca y tiene mejores ideas

Prácticas XPSemana de 40 horas

 

5/14/2018 Extreme Programming - slidepdf.com

http://slidepdf.com/reader/full/extreme-programming-55a92d7595a64 29/31

29

  www.dsic.upv.es/~letelier

Cliente real = Aquel que usará el sistemacuando esté en producción

El cliente real debe estar con el equipo detrabajo: Responder preguntas Resolver disputas Establecer prioridades Discutir mejoras

Prácticas XPCliente in situ

 

5/14/2018 Extreme Programming - slidepdf.com

http://slidepdf.com/reader/full/extreme-programming-55a92d7595a64 30/31

30

  www.dsic.upv.es/~letelier

Son fundamentales cuando los programadorescambian de pareja o hacen refactoring del

código de otros

Se consigue un código con el mismo estilo,homogéneo, legible

Prácticas XPEstándares de programación

 

P á ti XP

5/14/2018 Extreme Programming - slidepdf.com

http://slidepdf.com/reader/full/extreme-programming-55a92d7595a64 31/31

31

Prácticas XPInteracción entre Prácticas

XP: Kent Beck