Jump to content

Extreme programming: Difference between revisions

From Scrum Manager BoK
No edit summary
No edit summary
Line 1: Line 1:
'''''eXtreme Programming''''' (XP) o programación extrema es un conjunto de prácticas ágiles formuadas por [http://es.wikipedia.org/wiki/Kent_Beck| Kent Beck] en el libro que dio origen a su difusión como metodología ágil: ''Extreme Programming Explained: Embrace Change''<sup>1</sup>.
{{Meta-bok|min=5}}
==Descripción==
'''Extreme Programming''' (XP) o programación extrema es un conjunto de prácticas ágiles de ingeniería de software formuladas por Kent Beck en 1999. Su premisa central es que los cambios constantes en los requisitos son un aspecto natural, inevitable e incluso deseable del desarrollo de software, y que los equipos deben organizarse para responder a ese cambio de forma eficiente y sostenible.
''Extreme Programming'' considera que las modificaciones de requisitos constantes son un aspecto natural, inevitable e incluso deseable en los desarrollos de software, configurándose de esta forma (como todos los modelos ágiles) en un modelo enfocado en la adaptabilidad antes que en la previsibilidad.
 
==Principios==
XP parte de una idea provocadora: si las buenas prácticas de ingeniería son valiosas, ¿por qué no llevarlas "al extremo"? Si el código review es bueno, programar en pareja todo el tiempo. Si las pruebas son buenas, escribirlas antes del código. Si la integración es buena, integrar varias veces al día.
Sus principios originales son:  
 
*Simplicidad.
== Origen ==
*Comunicación.
 
*Retroalimentación.
Kent Beck desarrolló XP mientras trabajaba en el proyecto de nóminas C3 de Chrysler a finales de los años noventa. Lo describió en ''Extreme Programming Explained: Embrace Change'' (2000), y fue uno de los marcos que más influyó en el [[El manifiesto ágil|Manifiesto Ágil]] de 2001, del que Beck fue firmante.
*Coraje.  
 
*Respeto (añadido en la segunda edición de ''Extreme Programming Explained'').
== Los cinco valores ==
 
XP se sustenta en cinco valores fundamentales:
 
* '''Simplicidad:''' hacer solo lo necesario y nada más. No construir para el futuro hipotético.
* '''Comunicación:''' preferir la conversación directa y frecuente a la documentación formal.
* '''Retroalimentación:''' obtener feedback rápido sobre el código, el diseño y el valor entregado.
* '''Coraje:''' tomar decisiones difíciles: refactorizar código heredado, descartar trabajo que no aporta, estimar con honestidad.
* '''Respeto:''' entre los miembros del equipo y hacia el cliente.
 
== Las prácticas de XP ==
 
XP prescribe un conjunto de prácticas técnicas concretas que se refuerzan mutuamente:
 
* '''[[TDD|Desarrollo guiado por pruebas (TDD)]]:''' las pruebas se escriben antes que el código.
* '''[[Pair programming|Programación en pareja]]:''' dos desarrolladores trabajan juntos en el mismo código.
* '''[[Refactorización]]:''' mejora continua de la estructura interna del código.
* '''Integración continua:''' los cambios se integran en la rama principal varias veces al día.
* '''Propiedad colectiva del código:''' cualquier miembro del equipo puede modificar cualquier parte del sistema.
* '''Estándar de código:''' convenciones compartidas que hacen el código legible para todos.
* '''Metáfora del sistema:''' una visión compartida de la arquitectura que usa un lenguaje común.
* '''Semana de 40 horas:''' el ritmo sostenible es parte del método; las horas extra son síntoma de un problema, no una solución.
* '''Cliente en el lugar:''' el cliente o su representante está disponible de forma continua para responder preguntas.
* '''Versiones pequeñas:''' entregas frecuentes de incrementos pequeños y funcionales.
* '''Planificación del juego:''' el equipo estima el esfuerzo y el cliente establece las prioridades de negocio.
 
== XP y la IA como herramienta ==
 
Las prácticas técnicas de XP son especialmente relevantes en equipos que trabajan con herramientas de IA generativa:
 
* '''TDD con asistentes de código:''' los equipos que escriben primero las pruebas y luego dejan que la IA genere el código que las pasa están usando XP de forma consciente para mantener la calidad del código generado.
* '''Propiedad colectiva y código IA:''' en equipos con asistentes de código, la propiedad colectiva sigue siendo necesaria: todos deben ser capaces de entender, revisar y modificar el código generado, independientemente de quién (o qué) lo produjo.
* '''Refactorización del código generado:''' la IA produce código que funciona pero no siempre está bien estructurado. La práctica de refactorización de XP es la herramienta más directa para mantener la salud del código en equipos que usan IA generativa.
 
== Error frecuente ==
 
<div class="bok-aviso">
'''Adoptar las prácticas de XP sin los valores.''' Las prácticas de XP funcionan como sistema: se refuerzan mutuamente. Un equipo que hace TDD por obligación pero sin el valor de "coraje" (para refactorizar cuando hace falta) o "retroalimentación" (para adaptar las pruebas cuando el diseño cambia) pierde los beneficios y acumula deuda técnica de pruebas. XP no es una lista de técnicas: es una forma de pensar sobre el trabajo técnico.
</div>
 
== Referencias ==
 
* Beck, Kent. (2000). ''Extreme Programming Explained: Embrace Change''. Addison-Wesley Professional.
 
== Véase también ==
 
<div class="bok-tags">
[[TDD]] [[Pair programming]] [[Refactorización]] [[Agilidad técnica]] [[Deuda técnica]] [[El manifiesto ágil]] [[XBreed]] [[Crystal]] [[DSDM]]
</div>
 
<div class="bok-ecosistema">
<div class="texto">
<span class="titulo">'''¿Quieres avanzar en agilidad?'''</span>
<span class="sub">Puedes buscar convocatorias de cursos y exámenes o ir a tu ritmo haciéndote miembro del Club Agile. Esta membresía incluye recursos exclusivos, aulas e-learning y acceso a [https://scrummanager.com/skillarena/ '''Skill Arena''']: un espacio para practicar y medir tus habilidades ágiles a tu ritmo.</span>
</div>
<div class="botones">
<div class="bok-btn-outline">[https://www.scrummanager.com/website/c/calendar/show-courses.php Buscar convocatorias]</div>
<div class="bok-btn-filled">[https://scrummanager.com/club/ Club Agile]</div>
</div>
</div>


==Referencias==
*<sup>1</sup>Kent Beck (2000) "Extreme Programming Explained: Embrace Change" Addison-Wesley Professional.
[[Category:Glosario de términos]]
[[Category:Glosario de términos]]
[[Category:Prácticas_técnicas]]
[[Category:Prácticas técnicas]]
[[Category:Metodologías ágiles]]
[[Category:Metodologías ágiles]]

Revision as of 15:34, 14 May 2026

⏱ 5 min de lectura  ·  📅 Actualizado en 2026

Extreme Programming (XP) o programación extrema es un conjunto de prácticas ágiles de ingeniería de software formuladas por Kent Beck en 1999. Su premisa central es que los cambios constantes en los requisitos son un aspecto natural, inevitable e incluso deseable del desarrollo de software, y que los equipos deben organizarse para responder a ese cambio de forma eficiente y sostenible.

XP parte de una idea provocadora: si las buenas prácticas de ingeniería son valiosas, ¿por qué no llevarlas "al extremo"? Si el código review es bueno, programar en pareja todo el tiempo. Si las pruebas son buenas, escribirlas antes del código. Si la integración es buena, integrar varias veces al día.

Origen

Kent Beck desarrolló XP mientras trabajaba en el proyecto de nóminas C3 de Chrysler a finales de los años noventa. Lo describió en Extreme Programming Explained: Embrace Change (2000), y fue uno de los marcos que más influyó en el Manifiesto Ágil de 2001, del que Beck fue firmante.

Los cinco valores

XP se sustenta en cinco valores fundamentales:

  • Simplicidad: hacer solo lo necesario y nada más. No construir para el futuro hipotético.
  • Comunicación: preferir la conversación directa y frecuente a la documentación formal.
  • Retroalimentación: obtener feedback rápido sobre el código, el diseño y el valor entregado.
  • Coraje: tomar decisiones difíciles: refactorizar código heredado, descartar trabajo que no aporta, estimar con honestidad.
  • Respeto: entre los miembros del equipo y hacia el cliente.

Las prácticas de XP

XP prescribe un conjunto de prácticas técnicas concretas que se refuerzan mutuamente:

  • Desarrollo guiado por pruebas (TDD): las pruebas se escriben antes que el código.
  • Programación en pareja: dos desarrolladores trabajan juntos en el mismo código.
  • Refactorización: mejora continua de la estructura interna del código.
  • Integración continua: los cambios se integran en la rama principal varias veces al día.
  • Propiedad colectiva del código: cualquier miembro del equipo puede modificar cualquier parte del sistema.
  • Estándar de código: convenciones compartidas que hacen el código legible para todos.
  • Metáfora del sistema: una visión compartida de la arquitectura que usa un lenguaje común.
  • Semana de 40 horas: el ritmo sostenible es parte del método; las horas extra son síntoma de un problema, no una solución.
  • Cliente en el lugar: el cliente o su representante está disponible de forma continua para responder preguntas.
  • Versiones pequeñas: entregas frecuentes de incrementos pequeños y funcionales.
  • Planificación del juego: el equipo estima el esfuerzo y el cliente establece las prioridades de negocio.

XP y la IA como herramienta

Las prácticas técnicas de XP son especialmente relevantes en equipos que trabajan con herramientas de IA generativa:

  • TDD con asistentes de código: los equipos que escriben primero las pruebas y luego dejan que la IA genere el código que las pasa están usando XP de forma consciente para mantener la calidad del código generado.
  • Propiedad colectiva y código IA: en equipos con asistentes de código, la propiedad colectiva sigue siendo necesaria: todos deben ser capaces de entender, revisar y modificar el código generado, independientemente de quién (o qué) lo produjo.
  • Refactorización del código generado: la IA produce código que funciona pero no siempre está bien estructurado. La práctica de refactorización de XP es la herramienta más directa para mantener la salud del código en equipos que usan IA generativa.

Error frecuente

Adoptar las prácticas de XP sin los valores. Las prácticas de XP funcionan como sistema: se refuerzan mutuamente. Un equipo que hace TDD por obligación pero sin el valor de "coraje" (para refactorizar cuando hace falta) o "retroalimentación" (para adaptar las pruebas cuando el diseño cambia) pierde los beneficios y acumula deuda técnica de pruebas. XP no es una lista de técnicas: es una forma de pensar sobre el trabajo técnico.

Referencias

  • Beck, Kent. (2000). Extreme Programming Explained: Embrace Change. Addison-Wesley Professional.

Véase también

¿Quieres avanzar en agilidad? Puedes buscar convocatorias de cursos y exámenes o ir a tu ritmo haciéndote miembro del Club Agile. Esta membresía incluye recursos exclusivos, aulas e-learning y acceso a Skill Arena: un espacio para practicar y medir tus habilidades ágiles a tu ritmo.