XP es una de las Metodologías Ágiles. Fue creada por Kent Beck en 1999 y diseñada para entornos dinámicos con equipos pequeños (de menos de 10 personas). Está orientada a la codificación, es decir que se centra en cómo construir software.

Los objetivos de XP son potenciar el trabajo en equipo y la satisfacción del cliente.

4 actividades básicas:

  1. Codificar.
  2. Probar.
  3. Escuchar.
  4. Diseñar.

4 valores:

  1. Comunicación.
  2. Simpleza.
  3. Retroalimentación.
  4. Valentía.
  5. Respeto (agregado en 2005).

Roles informales:

  1. Cliente.
  2. Coach.
  3. Big boss.
  4. Programadores.
  5. Tester.
  6. Tracker.

En XP se planifica por entrega: se priorizan las Historias de Usuario que el cliente elige. La línea base es un conjunto de HUs, y se debe estimar el esfuerzo de implementarlas. A cada programador se le asignan HUs a implementar.

Para programar se puede usar pair programming: donde dos programadores, un conductor y un navegante, cooperan para implementar una funcionalidad en conjunto. Esto aumenta la calidad y reduce la complejidad del código, además de compartir el Conocimiento entre el equipo (reduciendo así la documentación necesaria).

12 prácticas agrupadas en 4 categorías:

  1. Retroalimentación a escala fina: TDD, pair programming, juego de planificación, cliente en el sitio.
  2. Entendimiento compartido: diseño simple, metáfora del sistema, propiedad colectiva del código, estándares de codificación.
  3. Proceso continuo: integración continua, refactorización, entregas pequeñas.
  4. Bienestar del programador: paso sostenible.

En 2005 salió una segunda edición de XP, con cambios que muestran su evolución.