2. ¿Qué es la Programación Extrema?
▪ Conjunto de prácticas y reglas empleadas para desarrollar software
▪ Pensado para enfrentar ambientes muy cambiantes
▪ En vez de planificar, analizar y diseñar para el futuro distante, hacer
todo esto un poco cada vez, a través de todo el proceso de
DESARROLLO de software
▪ Es una metodología ágil centrada en potenciar las relaciones
interpersonales como clave para el éxito en desarrollo de software,
promoviendo el trabajo en equipo, preocupándose por el aprendizaje
de los desarrolladores, y propiciando un buen clima de trabajo.
3. Origen
▪ Formulado por Kent Beck en 1996
▪ El primer libro fue editado en el año 1999: Extreme Programming
Expained.
▪ Pensado para un grupo pequeño y muy integrado (2-12personas)
▪ Equipo con formación elevada y capacidad de aprender
▪ Los principios y prácticas son de sentido común pero llevadas al
extremo
4.
5. Principios
▪ SIMPLICIDAD:Consiste en desarrollar solo el sistemas que realmente se
necesita. Implica resolver en cada momento solo las necesidades actuales
▪ FEDDBACK una metodología basada en desarrollo interactivo de
pequeñas partes, con entregas y pruebas frecuentes y continuas,
proporciona un flujo de retroinformación valioso para detectar los
problemas o desviaciones (TEST DELCLIENTE)
▪ DECICION implica tomar decisiones difíciles, reparar errores cuando se
detecta mejorar el código siempre que tras el feedback y las sucesivas
pruebas
▪ COMUNICACION comunicación directa y continua a clientes y
desarrolladores
6.
7. Roles
▪ Programador: Produce el código del sistema
▪ Cliente: Escribe las historias de usuario y las pruebas funcionales, centrándose en
aportar el mayor valor de negocio
▪ Tester (Pruebas): Ejecuta pruebas regularmente, difunde los resultados en el equipo
▪ Tracker (seguimiento): Verifica estimaciones y tiempo real dedicado.
▪ Entrenador: Guía a los miembros del equipo para seguir el proceso correctamente
▪ Consultor: Es un miembro externo del equipo con un conocimiento específico en algún
tema necesario para el proyecto
▪ Jefe de Proyecto (Big Boss): Es el dueño de la tienda y el vínculo entre clientes y
programadores. Su labor esencial es la coordinación.
9. Procesos de XP
▪ Planeación: Escuchar al cliente, crear las historias, organizar las
historias por su valor.
▪ Diseño: El programador estima el esfuerzo necesario para su
implementación.
▪ Codificación: Programación por parejas, da un mecanismo de
solución de problemas y aseguramiento de calidad en tiempo real.
▪ Pruebas: “Corregir pequeños problemas cada cierto número de horas
toma menos tiempo que resolver problemas enormes antes del plazo
final”
11. Ventajas
▪ Da lugar a una programación sumamente organizada
▪ Cuanta 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
▪ A los clientes les ofrece mayor visibilidad y menor riesgo en el proyecto
12. Desventajas
▪ Es recomendable emplearla solo en proyectos a corto plazo, hay
restricciones en cuanto a tamaño de los proyectos.
▪ Requiere de un rígido ajuste a los principios deXP
▪ Puede no siempre ser mas fácil que el desarrollo tradicional
▪ Falta de documentación del diseño. Al no haber documentación es el
código (junto con sus comentarios) lo que se toma como
documentación.
▪ Si un proyecto ágil fracasa no hay documentación o hay muy poca; lo
mismo ocurre con el diseño. La comprensión del sistema se queda en
las mentes de los desarrolladores.