El documento presenta una introducción a Extreme Programming (XP), una metodología ágil para el desarrollo de software. Se explican los valores fundamentales de XP como simplicidad, feedback, coraje, comunicación y respeto. También se describen las fases del proceso XP, los roles involucrados y las principales prácticas en áreas como planificación, diseño, codificación y verificación.
1. Universidad Nororiental Privada
Gran Mariscal De Ayacucho
Facultad: Ingeniería
Escuela: sistemas
Extreme Programming (XP)
Profesor: Jose Molina
Alumnos:
Chirstian Coleoglou C.I. 16757555
Jose Guzman C.I.
Edwill Williams C.I.
2. Extreme Programming - Agenda
Introducción
Proceso y Fases
Roles
Prácticas
Conclusiones
3. Extreme Programming - Introducción
Proceso : conjunto de actividades ordenadas para
lograr una serie de objetivos
Proceso Pesado :
* fuerte dependencia de planificaciones
* se establecen actividades
* se establecen artefactos
* se establecen herramientas y notaciones
* ESTAMOS MUY CONTROLADOS
4. Extreme Programming - Introducción
Como contraposición : Métodología Ágil
Características :
A los individuos y su interacción por encima de los procesos y las herramientas
El software que funciona por encima de la documentación exhaustiva
La colaboración con el cliente por encima la negociación contractual
La respuesta al cambio por encima seguimiento de un plan
5. Extreme Programming - Introducción
Resumen
* Estamos menos controlado
* Preparados para el cambio
* Cliente forma parte del equipo
* Pocos artefactos
* Más importante software funcionando que
documentación
6. Extreme Programming – Conclusiones
XP es la metodología mas popular dentro de
la familia surgida luego del manifiesto Ágil,
las cuales buscan simplificar los procesos a
través de la reducción de irreversibilidad de
los mismos .
Dicha metodología ha probado ser de gran
utilidad en proyectos pequeños y con
requerimientos altamente cambiantes,
aunque posee características que la hacen
aplicable en ciertos ambientes únicamente.
7. Extreme Programming - Introducción
XP es una Métodología Ágil
Desarrollado por Kent Beck
«Todo en el software cambia. Los
requisitos cambian. El diseño
cambia. El negocio cambia. La tecnología
cambia. El equipo
cambia. Los miembros del equipo cambian.
El problema no es el
cambio en sí mismo, puesto que sabemos
que el cambio va a
suceder; el problema es la incapacidad de
adaptarnos a dicho
cambio cuando éste tiene lugar.»
8. Extreme Programming - Introducción
Estadísticas : método que más popularidad ha
alcanzado de las metodologías ágiles
Se basa en la suposición de que es posible
desarrollar software de gran calidad a pesar, o
incluso como consecuencia del cambio continuo
Asume que con un poco de planificación, un poco de
codificación y unas pocas pruebas se puede decidir
si se está siguiendo un camino acertado o
equivocado, evitando así tener que echar marcha
atrás demasiado tarde.
9. Extreme Programming - Introducción
Valores que inspiran XP
SIMPLICIDAD FEEDBACK CORAJE COMUNICACIÓN
RESPETO
10. Extreme Programming - Introducción
Simplicidad
La simplicidad consiste en desarrollar sólo el sistema
que realmente se necesita. Implica resolver en cada
momento sólo las necesidades actuales.
Los costos y la complejidad de predecir el futuro son muy elevados, y la mejor
forma de acertar es esperar al futuro.
Con este principio de simplicidad, junto con la
comunicación y el feedback resulta más fácil conocer
las necesidades reales
11. Extreme Programming - Introducción
FeedBack
Una metodología basada en el desarrollo incremental
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.
De esta forma fallos se localizan muy pronto.
La planificación no puede evitar algunos errores, que
sólo se evidencian al desarrollar el sistema.
La retro-información es la herramienta que permite
reajustar la agenda y los planes.
12. Extreme Programming - Introducción
Coraje
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 se manifieste susceptible de
mejora
Tratar rápidamente con el cliente los desajustes de
agendas para decidir qué partes y cuándo se van a
entregar
13. Extreme Programming - Introducción
Comunicación
XP pone en comunicación directa y continua a
clientes y desarrolladores. El cliente se integra en el
equipo para establecer prioridades y resolver dudas.
De esta forma ve el avance día a día, y es posible
ajustar la agenda y las funcionalidades de forma
consecuente
14. Extreme Programming - Introducción
Respeto
XP El respeto se manifiesta de varias formas. Los
miembros del equipo se respetan los unos a otros,
porque los programadores no pueden realizar
cambios que hacen que las pruebas existentes fallen
o que demore el trabajo de sus compañeros.
15. Extreme Programming – Proceso y Fases
1. El cliente define el valor de negocio a implementar
2. El programador estima el esfuerzo necesario para
su implementación
3. El cliente selecciona qué construir, de acuerdo con
sus prioridades y las restricciones de tiempo
4. El programador construye ese valor de negocio
5. Vuelve al paso 1
17. Extreme Programming – Proceso y Fases
Historias de Usuario
Técnica para especificar los reqs.
Son tarjetas de papel
Debe ser lo suficientemente comprensible y
delimitada para que los programadores puedan
implementarla en unas semanas
18. Extreme Programming – Proceso y Fases
Fases
Exploración
Planificación de la Entrega
Iteraciones
Producción
Mantenimiento
Muerte del Proyecto
20. Reglas y prácticas de XP
Conjunto de actividades simples que guían
los diferentes aspectos del desarrollo para
seguir el proceso.
Se dividen en áreas del desarrollo
Planificación
Diseño
Codificación
Verificación
21. Reglas y prácticas de XP - Planificación
El “Juego de la Planificación”
Planificación se vuelve “emocional”
Todos quieren planificar mejor
Conflictos
Mirar la planificación como un Juego
Objetivos
Jugadores
Piezas
Reglas
22. Reglas y prácticas de XP - Planificación
El “Juego de la Planificación”
Piezas: Historias de Usuario
Objetivo: Poner en producción la mayor
cantidad de Historias de Usuario
Jugadores: Desarrolladores y Encargados del
Negocio
23. Reglas y prácticas de XP - Planificación
El “Juego de la Planificación”
Movimientos:
Escribir Historia de Usuario
Estimarla
Comprometerse a realizar:
Por Historia
Por Fecha
Valor y Riesgo Primero
Recuperación por Sobrecarga
Cambio de Valor de Historia
Introducir nueva Historia
Dividir una Historia
Salto
Re-estimar
24. Reglas y prácticas de XP - Planificación
Escribir Historias de Usuario
Similar a los Casos de Uso
Usadas para estimaciones de tiempo en la
planificación de las liberaciones
Usados en lugar del Documento de
Requerimientos
Escritas por el Cliente en términos del Cliente
Guían la creación de Pruebas de Aceptación
25. Reglas y prácticas de XP - Planificación
Los Planes de Liberación organizan el
Calendario
Surgen en las reuniones de Planificación de
Liberaciones
Utilizados para crear Planes de Iteraciones
Decisiones Técnicas por el personal Técnico y
decisiones de negocio por el personal de
Negocio
26. Reglas y prácticas de XP - Planificación
El equipo estima la duración de la
implementación de cada Historia de Usuario
en “Semanas Ideales de Implementación”
El cliente prioriza las Historias teniendo en
cuenta el valor que le aporta al sistema
tenerla completa
27. Reglas y prácticas de XP - Planificación
Medir la “Velocidad del Proyecto”
¿Cuánto trabajo está siendo completado en el
proyecto?
Suma de las estimaciones de las Historias de
Usuario completas al fin de la Iteración
Utilizada para planificar la siguiente Iteración
28. Reglas y prácticas de XP - Planificación
Utilizamos la “Velocidad del Proyecto” para
planificar
Por Fecha
Por Alcance
29. Reglas y prácticas de XP - Planificación
Liberaciones pequeñas y frecuentes
Producir rápidamente versiones operativas del
sistema
No debería tardar más de 3 meses
30. Reglas y prácticas de XP - Planificación
Rotación del Equipo
Ayuda a evitar “Islas de Conocimiento”
Mejora la flexibilidad del equipo
Evita la sobrecarga de una persona
31. Reglas y prácticas de XP - Planificación
Mejorar el proceso cuando sea necesario
Es bueno tener reglas para saber qué esperar
del equipo
Si se detectan problemas en el avance se
debe revisar qué está mal
Debe consultarse al equipo sobre qué cosas
dificultan el funcionamiento
32. Reglas y prácticas de XP - Diseño
Diseño simple:
Implementar la solución más simple que
pueda funcionar
La complejidad innecesaria y el código extra
debe ser removido inmediatamente
No agregar nuevas funcionalidades antes de
que sean agendadas
33. Reglas y prácticas de XP - Diseño
Metáforas:
El sistema es definido mediante una metáfora
o un conjunto de metáforas compartidas por el
cliente y el equipo de desarrollo
Es una historia compartida que describe cómo
debería funcionar el sistema
Solventan el hecho de no contar con una
definición de la arquitectura desde el
comienzo, ya que en XP la arquitectura se
asume evolutiva
34. Reglas y prácticas de XP - Diseño
Tarjetas CRC:
Las Tarjetas CRC (Class, Responsibilities and
Collaboration) sirven para diseñar el sistema
en conjunto entre todo el equipo
Permiten reducir el modo de pensar
procedural y apreciar la tecnología de objetos
35. Reglas y prácticas de XP - Diseño
No agregar funcionalidades antes de lo
planeado:
Parecería que fuera más rápido agregarlas
ahora pero nosotros debemos recordarnos
constantemente que no las necesitamos
ahora realmente y quizás nunca las
necesitemos
Funcionalidades extra siempre nos hacen
atrasar y malgastar nuestros recursos
36. Reglas y prácticas de XP - Diseño
Refactorización:
Es una actividad constante de
reestructuración del código con el objetivo de
remover duplicación de código, mejorar su
legibilidad, simplificarlo y hacerlo más flexible
para facilitar los posteriores cambios
Mejora la estructura interna del código sin
alterar su comportamiento externo
Nos ahorra tiempo e incrementa la calidad
37. Reglas y prácticas de XP - Codificación
El cliente está siempre disponible:
Gran parte del éxito del proyecto XP se debe
a que es el cliente quien conduce
constantemente el trabajo hacia lo que
aportará mayor valor de negocio
La comunicación oral es más efectiva que la
escrita, ya que esta última toma mucho
tiempo en generarse y puede tener más
riesgo de ser mal interpretada
38. Reglas y prácticas de XP - Codificación
Las historias de usuario son escritas por los
clientes con la ayuda de los desarrolladores
El cliente debe negociar la selección de las
historias de usuario que serán incluidas en
una liberación
Como los detalles no son incluidos en las
historias de usuario, los desarrolladores
necesitarán hablar con los clientes para
obtenerlos
El cliente es necesario con las pruebas
39. Reglas y prácticas de XP - Codificación
El tiempo del cliente es ahorrado al principio
por no requerir una especificación detallada
de los requerimientos y ahorrado después ya
que el sistema es mucho más probable que
sea de su agrado
40. Reglas y prácticas de XP - Codificación
Estándares de programación:
XP enfatiza la comunicación de los
programadores a través del código, con lo
cual es indispensable que se sigan ciertos
estándares de programación
Mantienen el código legible para los miembros
del equipo, facilitando los cambios
41. Reglas y prácticas de XP - Codificación
Pruebas unitarias:
La producción de código está dirigida por las
pruebas unitarias
Las pruebas unitarias son establecidas antes
de escribir el código y son ejecutadas
constantemente ante cada modificación del
sistema
Otros desarrolladores podrán ver como usar
el código observando las pruebas
42. Reglas y prácticas de XP - Codificación
Programación en parejas:
Incrementa la calidad del software sin
impactar el tiempo para cumplir lo prometido
Muchos errores son detectados conforme son
introducidos en el código
Los diseños son mejores y el tamaño del
código menor
Los problemas de programación se resuelven
más rápido
43. Reglas y prácticas de XP - Codificación
Se posibilita la transferencia de conocimientos
de programación entre los miembros del
equipo
Varias personas entienden las diferentes
partes del sistema
Los programadores conversan mejorando así
el flujo de información y la dinámica del
equipo
44. Reglas y prácticas de XP - Codificación
Integración secuencial:
Solo una pareja de desarrolladores puede
integrar, testear y liberar cambios al
repositorio de código en un momento
determinado
Se permite que la última versión esté
consistentemente identificada
45. Reglas y prácticas de XP - Codificación
Integración continua:
Cada pieza de código es integrada en el
sistema una vez que esté lista.
Así, el sistema puede llegar a ser integrado y
construido varias veces en un mismo día
Es una forma de que todo el mundo esté
trabajando con casi la última versión
Evita o detecta antes los problemas de
compatibilidad
46. Reglas y prácticas de XP - Codificación
Propiedad colectiva del código:
Cualquier programador puede cambiar
cualquier parte del código en cualquier
momento.
Motiva a todos a contribuir con nuevas ideas
en todos los segmentos del sistema,
Evita que algún programador sea
imprescindible para realizar cambios en
alguna porción de código
47. Reglas y prácticas de XP - Codificación
40 horas por semana:
Se debe trabajar un máximo de 40 horas por
semana
No se trabajan horas extras en dos semanas
seguidas
El trabajo extra desmotiva al equipo
48. Extreme Programming – Conclusiones
El futuro de XP
Simplificación del proceso de planificación e
integración continua.
Búsqueda de valores y principios ocultos que
puedan informar de métodos útiles.
Límites de XP. Cuando se debe seguir? Cual
es su limite de integrantes?
El rol del Cliente. Es un rol complejo de
interpretar, y probablemente su papel en el
proceso de desarrollo de software continúe
generando nuevas ideas.
49. PRESENTE Y FUTURO - XP
OmniTouch
Este proyecto esta basado en la
pantalla de iron man, que controla
todo atravez de las manos, esto
sera simulado atravez de un kinect
de Xbox
50. PRESENTE Y FUTURO - XP
En que consiste esta metodología?
La programación extrema apuesta que es más sencillo hacer algo simple y tener un poco
de trabajo extra para cambiarlo si se requiere, que realizar algo complicado y quizás nunca
utilizarlo. Las características más importantes de este método son:
Desarrollo iterativo e incremental: pequeñas mejoras, unas tras otras.
Pruebas unitarias continuas,
Programación en parejas: se recomienda que las tareas de desarrollo se lleven a cabo
por dos personas en un mismo puesto.
Frecuente integración del equipo de programación con el cliente o usuario. Se recomienda
que un representante del cliente trabaje junto al equipo de desarrollo.
Corrección de todos los errores antes de añadir nueva funcionalidad.
Entregas frecuentes.
Reescribir ciertas partes del código para aumentar su legibilidad y mantenibilidad pero sin
modificar su comportamiento
Código compartido: promueve el que todo el personal pueda corregir y extender cualquier
parte del proyecto.
Simplicidad en el código: es la mejor manera de que las cosas funcionen. Cuando todo
funcione se podrá añadir funcionalidad si es necesario.
51. PRESENTE Y FUTURO - XP
Por qué esta metodología?
Escogimos esta metodología ya que nuestro proyecto lo dividimos en módulos o
metas a corto plazo, donde cada una se irá mejorando poco a poco por lo tanto a
cada módulo se le irá agregando cada vez más código, el cual será trabajado por
todos los miembros del equipo. Además queremos que nuestro código sea lo más
sencillo posible y que a la vez tenga buena funcionalidad ya que no podemos
sobrepasarnos de tiempo.