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
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.
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.
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.
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.
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.
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
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.
A continuación, realizaremos ejercicios basado en lo que ha visto y escuchado en el video. Por favor, responda las siguientes preguntas.
| 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. |
| 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. |
| 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. |
| 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. |