A logo showing the text blog.marcnuri.com
English
Inicio»Ingeniería de calidad»¿Qué es Extreme Programming (XP)? Valores, Prácticas y Por Qué Siguen Vigentes

Entradas Recientes

  • Fabric8 Kubernetes Client 7.7 está disponible!
  • Superpowers: El Framework de Skills de Claude Code Distribuido como Markdown
  • Los Niveles que Faltan en Desarrollo Asistido por IA: Del Caos a la Orquestación
  • Ascenso a Senior Principal Software Engineer en Red Hat
  • Fabric8 Kubernetes Client 7.6 está disponible!

Categorías

  • Antiguo
  • Cloud Native
  • Desarrollo Backend
  • Desarrollo Frontend
  • Herramientas
  • Ingeniería de calidad
  • Inteligencia Artificial
  • JavaScript
  • Operaciones
  • Personal
  • Proyectos personales
  • Reflexiones sobre Ingeniería

Archivos

  • mayo 2026
  • abril 2026
  • marzo 2026
  • febrero 2026
  • enero 2026
  • diciembre 2025
  • octubre 2025
  • septiembre 2025
  • julio 2025
  • mayo 2025
  • abril 2025
  • marzo 2025
  • febrero 2025
  • enero 2025
  • diciembre 2024
  • noviembre 2024
  • agosto 2024
  • junio 2024
  • mayo 2024
  • abril 2024
  • marzo 2024
  • febrero 2024
  • enero 2024
  • diciembre 2023
  • noviembre 2023
  • octubre 2023
  • septiembre 2023
  • agosto 2023
  • julio 2023
  • junio 2023
  • mayo 2023
  • abril 2023
  • marzo 2023
  • febrero 2023
  • enero 2023
  • diciembre 2022
  • noviembre 2022
  • octubre 2022
  • septiembre 2022
  • agosto 2022
  • julio 2022
  • junio 2022
  • mayo 2022
  • marzo 2022
  • febrero 2022
  • enero 2022
  • diciembre 2021
  • noviembre 2021
  • octubre 2021
  • septiembre 2021
  • agosto 2021
  • julio 2021
  • enero 2021
  • diciembre 2020
  • octubre 2020
  • septiembre 2020
  • agosto 2020
  • junio 2020
  • mayo 2020
  • marzo 2020
  • febrero 2020
  • enero 2020
  • noviembre 2019
  • septiembre 2019
  • julio 2019
  • diciembre 2018
  • agosto 2018
  • julio 2018
  • junio 2018
  • mayo 2018
  • marzo 2018
  • febrero 2018
  • noviembre 2017
  • octubre 2017
  • agosto 2017
  • julio 2017
  • enero 2017
  • julio 2016
  • mayo 2016
  • enero 2016
  • diciembre 2015
  • noviembre 2015
  • diciembre 2014
  • noviembre 2014
  • octubre 2014
  • marzo 2014
  • febrero 2011
  • junio 2008
  • mayo 2008
  • abril 2008
  • enero 2008
  • junio 2007
  • mayo 2007
  • abril 2007
  • marzo 2007

¿Qué es Extreme Programming (XP)? Valores, Prácticas y Por Qué Siguen Vigentes

2016-05-28 en Ingeniería de calidad etiquetado Extreme Programming (XP) / Agile / Test-Driven Development (TDD) / Buenas Prácticas / Engineering Management por Marc Nuri | Última actualización: 2026-05-12
English version

Introducción

Extreme Programming (XP) es una metodología de desarrollo de software que formalizó disciplinas que muchos equipos hoy dan por sentadas: escribir los tests primero, integrar de forma continua, hacer pair programming en problemas difíciles y entregar en pequeños incrementos. Kent Beck la llamó "extreme" a finales de los 90 porque cada práctica tomaba algo que los equipos tradicionales ya consideraban una virtud y lo llevaba hasta un punto en el que evitarlo se convertía en la opción más difícil.

Más de veinticinco años después, la marca XP es más discreta de lo que fue en su apogeo. Las prácticas, sin embargo, están en todas partes, entretejidas en cómo los equipos modernos entregan software, a menudo sin que nadie las llame XP.

Esta es una introducción práctica a qué es XP, qué le pide a un equipo y por qué una metodología de 1999 sigue importando en 2026.

¿Qué es Extreme Programming?

Extreme Programming es una metodología de desarrollo de software ligera a la que Kent Beck dio forma mientras trabajaba en el proyecto de nóminas Chrysler Comprehensive Compensation (C3) a partir de 1996.

Beck destiló los hábitos de trabajo del equipo en Extreme Programming Explained: Embrace Change (Addison-Wesley, 1999); una segunda edición, coescrita con Cynthia Andres en 2004, suavizó el tono y reagrupó las prácticas.

XP fue una de las metodologías presentes en Snowbird en febrero de 2001 cuando se firmó el Manifiesto Ágil. Beck, Ron Jeffries y Ward Cunningham fueron tres de los diecisiete firmantes, y las huellas de XP en el manifiesto son fáciles de detectar: software funcionando, individuos e interacciones, respuesta ante el cambio.

Lo que distingue a XP de muchos otros enfoques ágiles es su insistencia en prácticas de ingeniería concretas. No es solo una forma de planificar el trabajo. Es una forma de escribir software.

Los Cinco Valores

La 2ª edición arranca con cinco valores. Son los cimientos sobre los que se apoya cada práctica de XP:

  • Comunicación: prioriza el cara a cara sobre la documentación; trata el entendimiento compartido como la unidad de progreso.
  • Simplicidad: construye lo más sencillo que pueda funcionar y resiste la complejidad especulativa.
  • Feedback: obtén señal lo antes y tan a menudo como sea posible, desde los tests, desde producción y desde el cliente.
  • Coraje: di la verdad sobre las estimaciones, refactoriza lo que duele y descarta el código que no se gana su sitio.
  • Respeto: trata a cada contribuyente como esencial para el éxito del equipo; el trabajo de calidad depende de una colaboración sana.

Las prácticas sirven a los valores. Cuando las prácticas parecen entrar en conflicto, los valores ayudan a decidir qué hacer a continuación.

Los Principios

XP nombra catorce principios en la 2ª edición. Estos son los que más uso en las decisiones del día a día:

  • Humanidad: el software lo construyen personas; el ritmo sostenible y el respeto no son cuestiones menores, son requisitos previos para hacer un buen trabajo.
  • Beneficio mutuo: cada cambio debería beneficiar a quien lo escribe, a los futuros lectores y al usuario.
  • Auto-similitud: los patrones que funcionan a una escala (un método, un release) tienden a funcionar a otras.
  • Mejora: la perfección es inalcanzable; las pequeñas mejoras constantes se acumulan.
  • Pasos pequeños: los cambios pequeños son más fáciles de validar, entender y revertir que los grandes.
Bucles anidados de feedback de Extreme Programming, expandiéndose hacia fuera desde Pair Programming (segundos) hasta Unit Test (minutos), Stand-up Meeting (un día), Acceptance Test (días), Iteration (una semana) y Release (meses)
Bucles anidados de feedback de Extreme Programming, expandiéndose hacia fuera desde Pair Programming (segundos) hasta Unit Test (minutos), Stand-up Meeting (un día), Acceptance Test (días), Iteration (una semana) y Release (meses)

Cada bucle se anida dentro del siguiente. El argumento de Beck es que un equipo sano es aquel en el que la señal viaja libremente por todos ellos: el bucle de segundos del pair programming captura lo que se le escapa al unit test de minutos, el stand-up diario captura lo que se le escapa al acceptance test de varios días, y así hacia fuera.

Las 12 Prácticas

La lista canónica de prácticas de extreme programming en la 1ª edición es de doce, que se agrupan de forma natural (para nuestros fines aquí) en cuatro bloques. La 2ª edición las reagrupa como primarias frente a corolarias, pero la lectura por bloques sigue encajando bien con cómo la mayoría de los equipos las piensa hoy en día.

BloquePrácticas
PlanificaciónPlanning Game, Small Releases, On-Site Customer
CodificaciónSimple Design, Metaphor, Coding Standards
TestingTesting / TDD, Refactoring
EquipoPair Programming, Collective Code Ownership, Continuous Integration, Sustainable Pace

Cada práctica es pequeña. El argumento de XP es que se refuerzan unas a otras: el TDD sin refactorización se fosiliza, los small releases sin integración continua son una lotería, y el pair programming sin un diseño simple se limita a repartir la complejidad. El conjunto se gana su sitio porque las partes se refuerzan entre sí.

Por Qué XP Sigue Importando

¿Sigue siendo relevante Extreme Programming en 2026? La marca se diluyó después de mediados de los 2000, pero las prácticas ganaron. Las huellas están por todas partes:

  • Continuous Integration → CI/CD moderno. El "integra muchas veces al día, con un build y tests automatizados" de XP es la semilla de todo pipeline de entrega moderno.
  • Small Releases → continuous deployment. Desplegar al hacer merge es el "release early, release often" de XP con mejor tooling.
  • La refactorización como trabajo de ingeniería rutinario. XP ayudó a normalizar la refactorización como una actividad continua en lugar de una fase de limpieza aparte, junto con Refactoring de Martin Fowler (1999), que le dio a la disciplina su vocabulario moderno.
  • TDD como técnica mainstream. El desarrollo test-first no es universal, pero se convirtió en una referencia central en la práctica de ingeniería moderna porque XP lo trató como algo fundamental.
  • Pair Programming, renacido en remoto. El cambio post-2020 no mató el pairing. Produjo herramientas como Tuple y VS Code Live Share, además de una próspera cultura de pairing asíncrono.
  • Collective Ownership → cultura moderna de code review. Los pull requests, el mob programming y las normas de equipo de "nadie es dueño de este archivo" son la propiedad colectiva del código de XP reformulada para equipos distribuidos.

Las metodologías que vinieron después de XP (Lean software development, DevOps, SRE) se construyeron sobre la misma idea central: acorta el bucle de feedback y confía en el equipo para tomar pequeñas decisiones a menudo. Continuous Delivery (Jez Humble y David Farley, 2010) es el ejemplo más claro. Lee sus capítulos iniciales y estarás leyendo XP, reformulado para la era de los despliegues en la nube y los feature flags.

Conceptos Erróneos Comunes

Hay algunas cosas que conviene aclarar:

  • "XP está muerto." No exactamente. La mayoría de los equipos que entregan software hoy están practicando la metodología XP en todo menos en el nombre.
  • "XP significa pair programming todo el día." La práctica es trabajar en pareja en las partes difíciles, no 100% pairing. Los equipos modernos hacen pairing en cambios delicados, en discusiones de diseño y en el onboarding, no en cada commit.
  • "XP requiere el paquete completo o nada." La presentación original enfatizaba cómo las prácticas se apoyaban unas a otras. La 2ª edición hizo el marco más flexible, distinguiendo prácticas fundamentales de aquellas que dependen de una mayor madurez del equipo.
  • "El On-Site Customer ya no existe, así que XP ya no aplica." La práctica literal rara vez sobrevive sin cambios. La intención sí: mantén a quienes toman decisiones lo bastante cerca como para acortar los bucles de requisitos y validación.
  • "XP solo funciona para equipos co-localizados." La forma original asumía una colaboración física estrecha, pero muchos de sus mecanismos de feedback se traducen bien a entornos distribuidos con tooling moderno y una comunicación disciplinada.
  • "Metaphor no cuajó." Cierto. Es la única práctica canónica que no llegó a traducirse al vocabulario moderno común. Reconocerlo es parte de lo que hace creíble al resto.

Conclusión

Una forma útil de leer XP hoy no es como una marca que adoptar sino como un vocabulario para nombrar las disciplinas de ingeniería en las que ya te apoyas. Los valores explican por qué las prácticas se sostienen juntas; las prácticas explican cómo los valores se traducen en trabajo del día a día.

Sigue cualquiera de ellas lo bastante lejos y te llevará de vuelta a las mismas ideas centrales: acorta los bucles de feedback, mantén los diseños simples, colabora estrechamente y haz que el cambio sea lo bastante seguro como para hacerlo a menudo.

Para una lectura más profunda, Extreme Programming Explained de Kent Beck (2ª ed., 2004) sigue siendo el texto de referencia. La entrada en el bliki de Martin Fowler es la mejor visión general de una sola página, y el sitio de Ron Jeffries sigue siendo uno de los archivos más útiles orientados a la práctica.

Referencias

  • Kent Beck y Cynthia Andres, Extreme Programming Explained: Embrace Change (2ª ed., Addison-Wesley, 2004)
  • Extreme programming (Wikipedia)
  • Extreme Programming (glosario de Agile Alliance)
  • Martin Fowler: ExtremeProgramming (bliki)
  • Ron Jeffries: What is Extreme Programming?
  • extremeprogramming.org (sitio original de Don Wells)
  • Jez Humble y David Farley, Continuous Delivery (Addison-Wesley, 2010)

Te Puede Interesar

  • ¿Qué es Test-Driven Development (TDD)? Una Introducción Práctica
  • Conventional Commits: Guía Completa para Mejores Mensajes de Commit en Git
  • Black Box vs White Box Testing: Cuándo Usar Cada Enfoque
Twitter iconFacebook iconLinkedIn iconPinterest iconEmail icon

Navegador de artículos
OCSP: Validar revocación de certificados FNMT con OCSP y OpenSSLDocker: Accediendo al shell (SSH) de docker-machine
© 2007 - 2026 Marc Nuri