En la Agilidad, eXtreme Programming es un modo de desarrollar software liviano, eficiente, a largo plazo, flexible, predecible, científico y divertido.

Es inmediato, concreto y con feedback continuo mediante ciclos cortos. Responde a las necesidades de negocio dinámicas para reducir el costo de los cambios. Foco en las pruebas automatizadas para controlar el avance del trabajo. Foco en la comunicación oral, pruebas y código fuente para la estructura y significado del problema y la solución.

5 Valores

  1. Comunicación.
  2. Feedback.
  3. Simplicidad.
  4. Coraje.
  5. Respeto.

5 Principios

  1. Rapid feedback: reducir el tiempo entre una acción y su retroalimentación.
  2. Assume simplicity: la solución simple es la mejor (KISS).
  3. Incremental change: iteraciones cortas.
  4. Quality work: hacer un buen trabajo y trabajar con calidad.
  5. Embrace change: adaptarse a nuevos requerimientos.

4 Actividades Básicas

  • Coding: debe haber un programa,
  • Testing: correctamente hecho,
  • Listening: que satisfaga las necesidades,
  • Design: conforme a un buen diseño.

Prácticas

  • Metaphor: poder definir el producto en una frase (shared storytelling).
  • Collective ownership: el código es de todos y todos lo pueden cambiar.
  • Coding standards: código legible y de calidad.
  • 40 hour week: no necesitar laburar el fin de semana.
  • Pair programming.
  • Refactoring: refinar constantemente el diseño del sistema.
  • Continuous integration: Integración Continua.
  • On-site customer: similar al Product Owner de Scrum.