Metodología ágil XP
Tema 1 – Parte IV
Lic. Myrna Baena Paniagua
CONTENIDO
• Introducción
• Características
• Pilares fundamentales de XP
• Roles
• Fases de desarrollo
• Ventajas
• Desventajas
Lic. Myrna Baena P. - Sistemas Informáticos 2
HISTORIA
• Conocida por sus siglas XP (eXtreme Programming), es un
método que surgió al final de la década de 1980.
• Desarrollada por Kent Beck, Ward Cunningham y Ron
Jeffries en 1996.
• Promueve el trabajo en equipo, preocupándose por el
aprendizaje de los desarrolladores y propiciando un buen
clima de trabajo.
• Tiene como base la simplicidad y como objetivo la
satisfacción del cliente.
Lic. Myrna Baena P. - Sistemas Informáticos 3
CARACTERÍSTICAS
• Centrada en potenciar las relaciones interpersonales
como clave para el éxito de desarrollo de software.
• Buen clima laboral y autoaprendizaje.
• Comunicación fluida entre el cliente y el equipo de
desarrollo.
• Simplicidad en las soluciones y coraje para enfrentar los
cambios.
• Adecuado para proyectos con requisitos cambiantes e
imprecisos.
Lic. Myrna Baena P. - Sistemas Informáticos 4
CARACTERÍSTICAS
• Desarrollo iterativo-incremental
• Programación en parejas
• Codificación
• Pruebas unitarias
• Corrección periódica de errores
• Integración
• Simplicidad, propiedad del código compartida y
refactorización del código.
Lic. Myrna Baena P. - Sistemas Informáticos 5
PILARES FUNDAMENTALES
Comunicación
Coraje-Valentía
Retroalimentación
Simplicidad
Lic. Myrna Baena P. - Sistemas Informáticos
PILARES FUNDAMENTALES
COMUNICACIÓN En XP, todo es trabajado
en equipo, desde el
relevamiento y análisis
hasta el código fuente
desarrollado. Todo se
conversa cara a cara,
procurando hallar
soluciones en conjunto a
los problemas que
puedan surgir.
Lic. Myrna Baena P. - Sistemas Informáticos 7
PILARES FUNDAMENTALES
En XP un equipo debe CORAJE-VALENTÍA
tener el valor para decir
la verdad sobre el
avance del proyecto y
las estimaciones del
mismo, planificando el
éxito en vez de buscar
excusas sobre los
errores.
Lic. Myrna Baena P. - Sistemas Informáticos 8
PILARES FUNDAMENTALES
Se pretende desarrollar
SIMPLICIDAD solo lo necesario y no
perder tiempo en detalles
que no sean requeridos en
el momento. Se asemeja a
Kanban, en la cual, un
proceso “anterior” solo
produce lo que el proceso
posterior demanda.
Lic. Myrna Baena P. - Sistemas Informáticos 9
PILARES FUNDAMENTALES
El objetivo es entregar lo RETROALIMENTACIÓN
necesario al cliente, en el
menor tiempo posible. A
cambio, demanda al
cliente, un feedback
continuo, a fin de
conocer sus
requerimientos e
implementar los cambios
tan pronto como sea
posible.
Lic. Myrna Baena P. - Sistemas Informáticos 10
FORMA DE TRABAJO
ROLES:
- Cliente FASES:
- Tester Planificación
- Tracker Diseño simple
- Coach Desarrollo
Historias de - Consultor Pruebas
Usuario - Big boss
Lic. Myrna Baena P. - Sistemas Informáticos 11
ROLES DE USUARIO
• Cliente: Responsable de definir y conducir el proyecto así
como sus objetivos.
• Programadores: Estiman tiempos de desarrollo de cada
actividad y programan el proyecto.
• Tester: Encargado de Pruebas.
• Tracker: Encargado de Seguimiento.
• Coach: Entrenador, su papel es guiar y orientar al equipo.
• Big Boss: Gestor del proyecto, gerente del proyecto,
debe tener una idea general del proyecto y estar
familiarizado con su estado.
Lic. Myrna Baena P. - Sistemas Informáticos 12
PROCESO XP
Lic. Myrna Baena P. - Sistemas Informáticos 13
PLANIFICACIÓN
• Recabar requerimientos de modo que los miembros
técnicos del equipo XP entiendan el contexto del
software a implementar.
• Los clientes y desarrolladores trabajan juntos para decidir
cómo agrupar las historias de usuario en la siguiente
entrega que desarrollará el equipo XP.
• Una vez que se llega a un compromiso sobre la entrega, el
equipo XP ordena las historias de usuario que serán
desarrolladas en una de tres formas:
Lic. Myrna Baena P. - Sistemas Informáticos 14
PLANIFICACIÓN
Lic. Myrna Baena P. - Sistemas Informáticos 15
DISEÑO
• Un diseño simple y sencillo, nos permitirá mantener la
coherencia de nombres de todo aquello que se va a
implementar.
• XP estimula el uso de las tarjetas CRC como un mecanismo
eficaz para pensar en el software en un contexto orientado
a objetos.
• Las tarjetas CRC identifican y
organizan las clases orientadas
a objetos que son relevantes para
el incremento actual de software
Lic. Myrna Baena P. - Sistemas Informáticos 16
CODIFICACIÓN
• Disponibilidad del usuario
• Estándares de implementación
• Unidades de prueba o test
• Programación parejas
• Integración del código
• Frecuencia en la integración del código
• El código es propiedad de todos
• Dejar la optimizaciones para el final
• No a las horas extras
Lic. Myrna Baena P. - Sistemas Informáticos 17
CODIFICACIÓN
• Una característica primordial es la Programación por
parejas.
• A medida que las parejas de programadores terminan su
trabajo, el código que desarrollan se integra con el
trabajo de los demás.
• Las parejas de programadores tienen la responsabilidad
de la integración. Esta estrategia de “integración
continua” ayuda a evitar los problemas de compatibilidad
de interfaces y ayuda a descubrir a tiempo los errores.
• Se realiza la REFACTORIZACIÓN
Lic. Myrna Baena P. - Sistemas Informáticos 18
REFACTORIZACIÓN
• La refactorización (o refactoring) es una técnica que
consiste en modificar el código fuente de un software sin
afectar a su comportamiento externo.
• Permite lograr una mayor cohesión de funcionalidades,
impidiendo redundancias.
• Por ello, la refactorización es la principal técnica
propuesta por XP, para evolucionar el código de la
aplicación con facilidad en cada iteración.
Lic. Myrna Baena P. - Sistemas Informáticos 19
PRUEBAS
1. Test Unitarios: Consiste en testear el código de
manera unitaria (individual) mientras se va programando.
2. Test de aceptación: Están más avocados a las pruebas
de funcionalidad; es decir, al comportamiento funcional
del código. Estas pruebas son definidas por el cliente y
llevadas a cabo mediante herramientas especiales.
3. Test de integración: Tienen por objeto, integrar todos
los test que conforman la aplicación, a fin de validar el
correcto funcionamiento de la misma, evitando que
nuevos desarrollos, dañen a los anteriores.
Lic. Myrna Baena P. - Sistemas Informáticos 20
RESUMEN DE FASES
Lic. Myrna Baena P. - Sistemas Informáticos 21
VENTAJAS
• Combina la disciplina con la adaptabilidad.
• Propone un conjunto de prácticas que pretenden
enfatizar los efectos positivos de un proyecto de
desarrollo de Software.
• Optimiza los tiempos y se adapta al desarrollo de
sistemas grandes y pequeños sin mayor
documentación.
• El código es claro y simple, complementa los
conocimientos entre los miembros del equipo.
• Cuenta con una tasa de errores muy pequeña.
• Puede ser aplicada a cualquier lenguaje de
programación.
Lic. Myrna Baena P. - Sistemas Informáticos 22
DESVENTAJAS
Desventaja de esta metodología ágil,
es que luego de cada entrega el
sistema puede ir creciendo según
peticiones del cliente.
Es recomendable emplearla solo en
proyectos a corto plazo.
En caso de fallar, las comisiones son
muy altas.
Lic. Myrna Baena P. - Sistemas Informáticos 23