Академический Документы
Профессиональный Документы
Культура Документы
Programacin Extrema
Como surge XP
Creado por Kent Beck
En el proyecto C3 en Chrysler
Kent dirigi el proyecto
Durante el proceso naci esta nueva metodologa: eXtreme
Programming (XP)
C3 concluy exitosamente en 1997
Qu es XP?
Es una metodologa gil que se caracteriza por:
Estar diseada para entornos dinmicos.
Es Flexible.
Es Predecible.
Caractersticas de XP
Metodologa creada a base de prueba y error.
proyecto de software:
Simplicidad,
Comunicacin,
Realimentacin,
Coraje.
Simplicidad
Hacer que el sistema funcione lo mas simple posible
Comunicacin
El cliente es parte del equipo de desarrollo.
equipo de desarrollo.
Comunicacin constante entre desarrolladores.
XP hace casi imposible la falta de comunicacin.
Retroalimentacin
Retroalimentacin concreta y frecuente del cliente, del equipo y
cambios.
Velocidad, pero adems calidad
Coraje
Se requiere coraje para comunicarse con los dems
cambios
10
11
Historias de
usuario
Prototipo
arquitectnico
requerimientos
Metfora de
sistema
Historias nuevas
Velocidad del proyecto
Plan de entregas
Planificacin de
entregas
Estimacin
incierta
Iteracin
Estimacin
confiable
bugs
Versin mas
reciente
Prxima
iteracin
Prototipo
12
Tests de
aceptacin
Aprobacin del
cliente
Pequeas
entregas
13
Iteracin
14
Iteracin
Historias nuevas,
Velocidad de proyecto
Plan de entregas
Prxima
iteracin
Bugs
Historias de
usuario
Velocidad de
proyecto
Aprender y
comunicar
Planificacin de
iteracin
Plan de
iteracin
Funcionalidades
nuevas
Desarrollo
Tests de
aceptacin
fallados
15
Correccin de bugs
Da a da
Versin mas
reciente
Desarrollo
16
Desarrollo
Aprender y
comunicar
Tareas sin terminar
Plan de iteracin
tareas
Demasiado por
hacer
Reunin de
pie
Da a da
17
Tests de
aceptacin
fallados
Programacin en pares
Reconstruccin de cdigo
Tests de unidad
pasados al 100%
Nueva
funcionalidad
Correccin de
bugs
Prxima tarea o
test de
aceptacin
Pares
Creacin de
unidad de testeo
Unidad de
testeo fallida
Unidad de
testeo aprobada
Se necesita ayuda
Programacin en
pares
Cdigo
complejo
Cdigo
simple
Reconstruccin
despiadada
18
100% de
unidades de
testeo pasados
Ejecutar
todas las
unidades
de testeo
Ejecutar test
de aceptacin
fallados
Test de
aceptacin
aprobado
19
Resumen de prcticas
20
Proceso de planificacin
Programacin en pares
Entregas pequeas
Propiedad colectiva
Integracin continua
Diseo simple
Semana de 40 horas
Testeo
Reconstruccin
Estndares de codificacin
21
Roles en XP
Programador (Programmer)
Responsable de decisiones tcnicas
Responsable de construir el sistema
Sin distincin entre analistas, diseadores o codificadores
22
Roles en XP
Jefe de Proyecto (Manager)
Organiza y gua las reuniones
Asegura condiciones adecuadas para el proyecto
Cliente (Customer)
Es parte del equipo
23
Roles en XP
Encargado de Pruebas (Tester)
Ayuda al cliente con las pruebas funcionales
Se asegura de que las pruebas funcionales se superen
Rastreador (Tracker)
Hace el seguimiento del proyecto.
Observa sin molestar.
24
Roles en XP
Entrenador (Coach)
Responsable del proceso
Tiende a estar en un segundo plano a medida que el equipo madura
25
Artefactos esenciales en XP
Historias del Usuario
Tareas de Ingeniera
Pruebas de Aceptacin
Pruebas Unitarias y de Integracin
Plan de la Entrega
Cdigo
26
Captura de Requisitos en XP
Se usan Historias del Usuario (User-
Stories)
Establecen los requisitos del cliente
horas de desarrollo.
Las establece el cliente.
Son la base para las pruebas funcionales.
27
28
sistema.
Cada relato se escribe en una tarjeta y representa una parte de la funcionalidad
que es coherente para el cliente.
Son escritos por el cliente o usuario, con la ayuda de los desarrolladores, para
permitir estimar los tiempos y asignar prioridades.
Los clientes ayudan a asegurar que la mayora de la funcionalidad deseada para el
sistema est cubierta con las historias.
Constan de 3 4 lneas escritas por el cliente en un lenguaje no tcnico sin
hacer mucho hincapi en los detalles.
No se debe hablar ni de posibles algoritmos para su implementacin.
No se debe considerar los diseos de base de datos, etc.
30
Tarea de Ingeniera
Tarea
Nmero tarea:
Nmero historia:
Nombre tarea:
Tipo de tarea :
Puntos estimados:
Fecha fin:
Prueba de Aceptacin
Caso de Prueba
Nmero Caso de Prueba:
Nombre Caso de Prueba:
Descripcin:
Condiciones de ejecucin:
Entradas:
Resultado esperado:
Evaluacin:
Prcticas XP
El juego de la
planificacin
Entregas pequeas
Metfora
Diseo simple
Pruebas
Refactoring
33
Programacin en parejas
Propiedad colectiva
Integracin continua
Semana de 40 horas
Cliente in situ
Estndares de programaci
Escenarios en XP : Exploracin
?
Historias de Usuario
Prioridad
Riesgo
Esfuerzo (puntos)
Definir
Historias
de Usuario
Elaborar
Spikes
34
Spikes (Bosquejos)
Estimar Esfuerzo
y Riesgo
Escenarios en XP:
Planificacin de la Entrega
Velocidad de
Proyecto (VP)
puntos/semana
Historias
de Usuario
Primera
Iteracin
Segunda
Iteracin
N-sima
Iteracin
2a3
semanas
35
Entrega
<= 3 meses
ltima
Iteracin
Historias
fuera de la
entrega
Escenarios en XP :
Comenzar Iteracin
Historias de la
Iteracin
Definir y
ordenar
Tareas de
Ingeniera
Tareas de
la iteracin
36
Escenarios en XP :
Programacin
Historias de la
Iteracin
Tareas de
Historias de
la iteracin
Programacin
en Parejas
37
Versin del
Producto
Diseo
Refactoring
Programacin
Pruebas Unitarias
Integracin
Pruebas de Integracin
Pruebas de Aceptacin
Pruebas de
Aceptacin
de Historias
de la iteracin
Escenarios en XP :
Pruebas de Aceptacin
Definir Pruebas
de Aceptacin
Pruebas de
Aceptacin
Corregir errores
Definir nuevas Historias
Aplicar Pruebas
de Aceptacin
38
Espacio de trabajo
del proyecto C3 de
DaimlerChrysler
39
De pie en un crculo
Evitar discusiones largas
Sin conversaciones separadas
40
41
XP en la prctica (i)
Retroalimentacin a escala fina:
Desarrollo guiado por pruebas
Planificacin iterativa
Cliente como parte del equipo
Programacin en pares
Proceso continuo:
Integracin continua
Refactorizacin
Liberacin pequea, entregas frecuentes
42
XP en la prctica (ii)
Entendimiento compartido:
Diseo simple
43
Diseo simple
El diseo debe ser lo ms simple posible: no introducir
44
45
46
Integracin continua
Todos los cambios deben ser integrados a la base del
47
Programacin en pares
La Programacin en Pares requiere que dos desarrolladores participen en un
48
Refactorizacin (i)
Es una tcnica disciplinada de
49
Si su software fuera un
edificio, se parecera mas a
uno de la izquierda o de la
derecha?
Refactorizacin (ii)
Si un programa funciona pero est mal diseado, pronto surgirn problemas a la hora
Add Parameter
A method needs more information from its caller.
50
ltimas ideas
El mtodo de desarrollo empleado por la programacin extrema y el que suele
51
Referencias
http://www.extremeprogramming.org/
http://www.programacionextrema.org/
http://www.jera.com/techinfo/xpfaq.html
http://c2.com/cgi/wiki?ExtremeProgrammingRoadmap
http://clabs.org/caseforxp.htm
http://ootips.org/xp.html
http://www.bobjectsinc.com/cstug/xpslides/
http://www.xp123.com/
http://c2.com/cgi/wiki?XpGlossary
52
Conclusiones
Apostolado de metodologas exitosas
Tecnologa en expansin
Importancia de revisitar las metodologas desde la
experiencia prctica
53
Referencias
K. Beck, Embracing change with Extreme Programing, Computer, Vol. 32, No. 5 Oct.
54
1999, pp 70-77
L. Williams, R. Kessler, W. Cunningham and R. Jeffries, Strenghthening the Case for
Pair Programing, IEEE Software, Vol. 17, No. 4 Jul/Aug 2000, pp 19-25
R. Martin, Extreme Programing Development through dialog, IEEE Software, Vol. 17,
No. 4 Jul/Aug 2000, pp 12-13
C3 Team, Chrysler goes to Extremes, Distributed Computing, Oct 1998, pp 24-28
http://www.xprogramming.com
http://www.extremeprogramming.org
http://c2.com/cgi/wiki?ExtremeProgrammingRoadmap