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:
- Codificar.
- Probar.
- Escuchar.
- Diseñar.
4 valores:
- Comunicación.
- Simpleza.
- Retroalimentación.
- Valentía.
- Respeto (agregado en 2005).
Roles informales:
- Cliente.
- Coach.
- Big boss.
- Programadores.
- Tester.
- 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:
- Retroalimentación a escala fina: TDD, pair programming, juego de planificación, cliente en el sitio.
- Entendimiento compartido: diseño simple, metáfora del sistema, propiedad colectiva del código, estándares de codificación.
- Proceso continuo: integración continua, refactorización, entregas pequeñas.
- Bienestar del programador: paso sostenible.
En 2005 salió una segunda edición de XP, con cambios que muestran su evolución.