SPO_T007 XP

Plataformas de Aprendizaje Autodirigido

XP.

eXtreme Programming (XP) es un método de desarrollo de software basado en ciclos frecuentes. El nombre se basa en la filosofía de destilar una práctica recomendada dada a su forma más pura y sencilla, y aplicar esa práctica continuamente a lo largo del proyecto.

XP es más conocido por popularizar un conjunto holístico de prácticas destinadas a mejorar los resultados de los proyectos de software. El método se formalizó primero como un conjunto de doce prácticas primarias, pero luego evolucionó gradualmente para adoptar varias otras prácticas colaborativas.

Esta evolución fue el resultado del diseño y adopción de técnicas a través del filtro de valores fundamentales (comunicación, simplicidad, retroalimentación, coraje, respeto), e informada por principios clave (humanidad, economía, beneficio mutuo, auto afinidad, mejora, diversidad, reflexión, flujo, oportunidad, redundancia, fracaso, calidad, pasos del bebé, responsabilidad aceptada).

El Extreme Programming(XP), o Programación Extrema fue creada en la Chrysler Corporation.
Obtuvo impulso en la década de 1990.
Evita el aumento radical del costo de software cambiante con el paso del tiempo.

Características Clave:

  • Desarrollo incremental.
  • Horarios flexibles.
  • Códigos de prueba automatizados.
  • Comunicación verbal.
  • Diseño en evolución constante.
  • Vinculación a corto y largo plazo de todos los involucrados.

La Programación Extrema ha sido adoptada extensamente debido a sus bien definidas prácticas de ingeniería.

Enfatiza cinco valores:

  1. Comunicación y colaboración.
  2. Simplicidad.
  3. Retroalimentación.
  4. Coraje.
  5. Respeto.

Beneficios:

  • Programación sumamente organizada, aplicable en cualquier lenguaje.
  • Eficiencia en el proceso de planificación y pruebas.
  • Tasa de errores muy pequeña.
  • Fomenta la comunicación entre los clientes y los desarrolladores, facilitando cambios.
  • El cliente tiene el control sobre las prioridades.
  • Se hacen pruebas continuas durante el proyecto.
  • Mejor utilizada en la implementación de nuevas tecnologías.

Retos:

  • Correcta colaboración con el cliente en la realidad.
  • Falta de capacidad para dirigir el equipo.
  • Subutilización de recursos.
  • Aplicable en equipos pequeños.

Es llamado Extremo por su tendencia a llevar las prácticas al extremo, por ejemplo:
• Si hacer pruebas es bueno, permitir a todos hacer pruebas todo el tiempo.
• Si revisar códigos es bueno, revisen todo el tiempo.
• Si diseñar es bueno, diseñen todo el tiempo.
• Si la simplicidad es buena, hagan lo más simple que pueda funcionar.
• Si las iteraciones cortas son buenas, háganlas lo más cortas posibles.

¿Cuáles son las 12 prácticas de la programación extrema?

Para perfeccionar aún más el proceso, la programación extrema también implementa un conjunto de 12 prácticas a lo largo del proceso. Se basan en el Manifiesto ágil, pero se adaptan a las necesidades de la programación extrema.

  1. El juego de planificación: La planificación XP se usa para guiar el trabajo. Los resultados de la planificación deben ser los objetivos que pretende alcanzar, los plazos previstos y los pasos a seguir.
  2. Pruebas de clientes: Cuando finalice una función nueva, el cliente desarrollará una prueba de aceptación para determinar si ha cumplido con la historia de usuario original.
  3. Pequeñas entregas: La programación extrema realiza entregas pequeñas y periódicas para obtener información importante durante todo el proceso. A menudo, las entregas se envían directamente a los clientes, aunque también pueden enviarse internamente.
  4. Diseño simple: El sistema XP está diseñado para ser simple, producirá solo lo necesario y nada más.
  5. Programación en parejas: Toda la programación la realizan simultáneamente dos desarrolladores que se sientan físicamente uno al lado del otro. No hay trabajo individual en la programación extrema.
  6. Desarrollo guiado por pruebas (TDD): Debido a que la programación extrema se basa en los comentarios, se requieren pruebas exhaustivas. A través de ciclos cortos, los programadores realizan pruebas automatizadas para luego reaccionar de inmediato.
  7. Refactorización: Aquí es donde se deberá prestar especial atención a los detalles más finos del código base, para eliminar los duplicados y asegurarse de que el código sea coherente. De esta manera obtendrá diseños simples y de alta calidad.
  8. Propiedad colectiva: Cualquier par de desarrolladores puede modificar el código en cualquier momento, independientemente de que lo hayan desarrollado o no. En la programación extrema, la codificación se realiza en equipo, y el trabajo de todos se lleva a cabo según los estándares colectivos más altos.
  9. Integración continua: Los equipos de XP no esperan a que se completen las iteraciones, sino que se integran constantemente. A menudo, un equipo de XP se integrará varias veces al día.
  10. Ritmo de trabajo sostenible: La intensidad de los trabajos de XP requiere que se establezca un ritmo de trabajo sostenible. Los equipos deben determinar cuánto trabajo pueden producir a este ritmo por día y por semana, y usarlo para establecer plazos de trabajo.
  11. Metáfora: La metáfora es, literalmente, una metáforaSe decide en equipo y se usa un lenguaje para expresar cómo debe funcionar el equipo. Por ejemplo, somos hormigas trabajando en colectivo para construir el hormiguero.
  12. Estándares de codificaciónLos equipos de XP siguen un estándar. De la misma manera que un grupo de escritores necesita adoptar el tono de una marca para que parezca que siempre está escribiendo una misma persona, los desarrolladores de XP deben codificar de la misma manera unificada para que parezca que el código esté escrito por un solo desarrollador.