1.4.2 Programación Extrema (XP)

La Programación Extrema -comúnmente denominada "XP" por las iniciales de eXtreme Programming- es un método ágil centrado en el desarrollo de software. Mientras que Scrum se centra en la gestión de proyectos, en priorizar el trabajo y obtener feedback, XP se centra en las mejores prácticas de desarrollo de software. Por lo tanto, habrá muchas referencias al software en la siguiente discusión. Al igual que con los valores y principios del Manifiesto Ágil, a medida que lea esta sección, vea cómo puede pensar que los valores y prácticas de XP pueden aplicarse a otros tipos de proyectos de trabajo del conocimiento..

Valores fundamentales
Icono Incremento del Producto
SIMPLICIDAD

Este valor se centra en reducir la complejidad, las características adicionales y los residuos. Los equipos de XP tienen presente la frase "Encuentra lo más sencillo que pueda funcionar" y construyen primero esa solución.

Icono Product Backlog
COMUNICACIÓN

Este valor se centra en asegurarse de que todos los miembros del equipo sepan qué se espera de ellos y en qué están trabajando los demás. Por ejemplo, la reunión diaria de pie es una herramienta de comunicación clave.

Icono Sprint Backlog
RETROALIMENTACIÓN

El equipo debe obtener impresiones tempranas de idoneidad o ajuste de la solución. Fallar rápido puede ser útil, sobre todo si al hacerlo obtenemos nueva información mientras aún tenemos tiempo de mejorar el producto.

Icono Definición de Hecho
VALENTÍA

Hace falta valor para permitir que nuestro trabajo sea totalmente visible para los demás. En la programación en parejas (descrita más adelante en "Prácticas básicas de XP"), los miembros del equipo comparten código y a menudo necesitan hacer simplificaciones y cambios audaces en el código. Respaldados por compilaciones y pruebas unitarias automatizadas, los desarrolladores deben tener la confianza necesaria para realizar cambios importantes.

Icono Objetivo de Sprint
RESPETO

El respeto es esencial en los proyectos XP, en los que se trabaja en equipo y en los que todos son responsables del éxito o fracaso del proyecto. Este valor también está relacionado con la programación en parejas; los miembros del equipo deben reconocer que las personas trabajan de forma diferente y deben respetar esas diferencias.

La siguiente figura ilustra el proceso XP.

man_agil man_agil

Como se muestra en este diagrama, los equipos de XP utilizan requisitos ligeros denominados "historias de usuario" para planificar sus versiones e iteraciones.
Las iteraciones suelen durar dos semanas, y los desarrolladores trabajan en parejas para escribir el código.
Todo el software desarrollado se somete a pruebas rigurosas y frecuentes. Una vez aprobado por el cliente, el software se entrega en pequeñas versiones.

Los "spikes" o “picos” son periodos de trabajo especiales que se emprenden para reducir las amenazas y los problemas, y los "spikes o picos arquitectónicos" son iteraciones utilizadas para probar un enfoque tecnológico. Los spikes o picos se integran en los procesos de planificación de las versiones.

Funciones del equipo XP
Coach o Entrenador
Cliente
Programador
Tester o Probador
Prácticas básicas de XP

El método XP se basa en 13 prácticas básicas sencillas pero poderosas, como se muestra a continuación. Examinaremos cada una de estas prácticas con más detalle, empezando por el anillo exterior y siguiendo hacia el interior.

man_agil man_agil

Equipo completo
Juegos de planificación
Pequeños lanzamientos
Pruebas con clientes
Propiedad colectiva del código
Estándares de código
Ritmo sostenible
Metáfora
Integración continua
Desarrollo basado en pruebas
Refactorización
Diseño sencillo
Programación por parejas
Te invitamos a ver el video 5 - Unidad 1:

A continuación, realizaremos ejercicios basado en lo que ha visto y escuchado en el video. Por favor, responda las siguientes preguntas.

EJERCICIO 1: ¿Cuál de los siguientes es uno de los valores fundamentales de Extreme Programming (XP)?
Opción correcta Opciones
a) Estabilidad.
b) Documentación exhaustiva.
c) Simplicidad.
d) Control estricto.

Opción correcta Opciones
a) Estabilidad.
b) Documentación exhaustiva.
c) Simplicidad.
d) Control estricto.
Sustento Uno de los valores fundamentales de XP es la simplicidad, que se enfoca en reducir la complejidad, evitando características adicionales innecesarias y buscando la solución más sencilla que pueda funcionar.
EJERCICIO 2: ¿Qué práctica clave de XP se centra en la revisión constante del código por parte de otro desarrollador?
Opción correcta Opciones
a) Programación en parejas.
b) Integración continua.
c) Refactorización.
d) Revisión de código formal.

Opción correcta Opciones
a) Programación en parejas.
b) Integración continua.
c) Refactorización.
d) Revisión de código formal.
Sustento La programación en parejas es una práctica central en XP donde dos desarrolladores trabajan juntos en una misma estación de trabajo. Mientras uno escribe el código, el otro lo revisa en tiempo real, lo que ayuda a detectar errores rápidamente y mejora la calidad del código.
EJERCICIO 3:¿Qué enfoque de pruebas es enfatizado por XP para garantizar la calidad del software?
Opción correcta Opciones
a) Pruebas de usuario final.
b) Pruebas de aceptación al final del proyecto.
c) Desarrollo basado en pruebas (TDD).
d) Pruebas manuales exhaustivas.

Opción correcta Opciones
a) Pruebas de usuario final.
b) Pruebas de aceptación al final del proyecto.
c) Desarrollo basado en pruebas (TDD).
d) Pruebas manuales exhaustivas.
Sustento XP promueve el desarrollo basado en pruebas (TDD), donde las pruebas se escriben antes del código. Esto asegura que cada nueva funcionalidad esté completamente probada desde el inicio, lo que contribuye a una mayor calidad del software y una detección temprana de errores.
EJERCICIO 4:¿Qué describe mejor la práctica de refactorización en XP?
Opción correcta Opciones
a) Añadir nuevas características al código existente.
b) Mejorar el diseño del código sin cambiar su comportamiento externo.
c) Escribir código complejo para abordar problemas futuros.
d) Eliminar funciones no utilizadas del código base.

Opción correcta Opciones
a) Añadir nuevas características al código existente.
b) Mejorar el diseño del código sin cambiar su comportamiento externo.
c) Escribir código complejo para abordar problemas futuros.
d) La necesidad de asegurar que toda la documentación esté completa antes de cualquier entrega de software.
Sustento La refactorización en XP se refiere al proceso de mejorar el diseño del código existente, optimizando su estructura y legibilidad sin alterar su comportamiento funcional. Esto facilita la modificación y el mantenimiento del código a largo plazo.