0% encontró este documento útil (0 votos)
418 vistas8 páginas

Extreme Programming

La programación extrema (XP) es una metodología ágil de desarrollo de software que enfatiza la comunicación, la simplicidad, la retroalimentación temprana y frecuente, y el respeto entre los miembros del equipo. Se caracteriza por prácticas como la programación en parejas, las pruebas unitarias primero, y la integración continua del código, con el objetivo de entregar software de alta calidad de manera incremental y adaptativa a los cambios.

Cargado por

Johander Mejía
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
418 vistas8 páginas

Extreme Programming

La programación extrema (XP) es una metodología ágil de desarrollo de software que enfatiza la comunicación, la simplicidad, la retroalimentación temprana y frecuente, y el respeto entre los miembros del equipo. Se caracteriza por prácticas como la programación en parejas, las pruebas unitarias primero, y la integración continua del código, con el objetivo de entregar software de alta calidad de manera incremental y adaptativa a los cambios.

Cargado por

Johander Mejía
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

EXTREME PROGRAMMING (XP).

Introducción a la programación extrema (XP).


La programación extrema es una metodología de desarrollo de software que forma
parte de lo que se conoce colectivamente como metodologías ágiles. XP se basa en
valores, principios y prácticas, y su objetivo es permitir que equipos pequeños y
medianos produzcan software de alta calidad y se adapten a los requisitos
cambiantes y en evolución.
Lo que diferencia a XP de las demás
metodologías ágiles es que hace hincapié en
los aspectos técnicos del desarrollo de
software. La programación extrema es
precisa sobre cómo trabajan los ingenieros,
ya que seguir las prácticas de ingeniería
permite a los equipos entregar código de alta
calidad a un ritmo sostenible. La
programación extrema consiste, en pocas
palabras, en las buenas prácticas llevadas al
extremo. Como programación en parejas es
buena, hagámosla siempre. Ya que las
pruebas tempranas son buenas, probemos
antes de escribir el código de producción.

Origen de la programación extrema (XP).


El origen de XP se remonta a los años 90, cuando Kent Beck -que más tarde se
convertiría en uno de los autores del Manifiesto Ágil — lo creó al ser contratado
para dirigir el equipo del Sistema de Compensación Integral de Chrysler.
El proyecto había comenzado en 1993 y en 1996 no había avanzado
mucho. Como Beck era nuevo en la gestión de un equipo, decidió que lo
mejor sería enseñar a los miembros de su equipo las técnicas y prácticas
que a él le funcionaban. Empezaron a aplicar prácticas como la
programación por parejas y el TDD con gran éxito. Ron Jeffries -un amigo
de Beck y otro autor del Manifiesto Ágil- fue contratado para entrenar al
equipo de C3. En 1999, Kent Beck formalizó las prácticas, principios y
valores de XP en su libro Extreme Programming Explained: Embrace Change.

Cómo funciona la programación extrema (XP).


XP, a diferencia de otras metodologías, es muy opinable en lo que respecta a las
prácticas de ingeniería. Además de las prácticas, XP se basa en valores y principios.
Los valores proporcionan un propósito a los equipos. Actúan como una «estrella del
norte» para guiar sus decisiones en un alto nivel. Sin embargo, los valores son
abstractos y demasiado difusos para una orientación específica. Por ejemplo: decir
que se valora la comunicación puede dar lugar a muchos resultados diferentes. Las
prácticas son, en cierto modo, lo contrario de los valores. Son concretas y realistas, y
definen lo que hay que hacer. Las prácticas ayudan a los equipos a responsabilizarse
de los valores. Por ejemplo, la práctica de los espacios de trabajo informativos
favorece una comunicación transparente y sencilla. Los principios son directrices
específicas del sector que salvan la distancia entre las prácticas y los valores.

Similitudes y diferenciadores de EXTREME PROGRAMMING (XP).


¿En qué se diferencia XP de las metodologías tradicionales no ágiles? La
programación extrema, que forma parte de Ágil, consiste en aceptar y dar la
bienvenida al cambio en lugar de seguir planes rígidos. Se trata de un diseño
iterativo en lugar de un gran diseño por adelantado. XP se diferencia radicalmente
de las metodologías tradicionales -por ejemplo, la cascada- al evitar las fases de
larga duración.
 En lugar de una fase de planificación, en XP se planifica al principio de cada
ciclo de desarrollo, que suele durar sólo una semana.

 En lugar de probar episodios, se prueba la aplicación en cuanto se puede: es


decir, antes de implementar el código real.

 En lugar de implementar características de forma aislada durante las largas


fases de implementación y luego luchar para fusionar sus contribuciones a la
línea principal, se trabaja en pequeños trozos y se integran esos trozos tan a
menudo como sea posible.

Valores de XP
Los valores de XP: comunicación, sencillez,
retroalimentación, valor y respeto. Veamos cada
uno de ellos con más detalle.
Comunicción: La falta de comunicación impide
que los conocimientos fluyan dentro de un equipo.
A menudo, cuando hay un problema, alguien ya sabe cómo resolverlo. Pero la falta
de comunicación les impide conocer el problema o contribuir a su solución. Así, el
problema acaba resolviéndose dos veces, generando residuos.
Simplicidad: La simplicidad dice que siempre hay que esforzarse por hacer lo más
sencillo que funcione. A menudo se malinterpreta y se interpreta como lo más
sencillo y punto, ignorando la parte de «que funciona».
También es crucial recordar que la simplicidad es muy contextual. Lo que es
sencillo para un equipo, es complejo para otro, dependiendo totalmente de las
habilidades, la experiencia y los conocimientos de cada equipo.
Retroalimentación: La retroalimentación en las metodologías de desarrollo de
software más tradicionales, tipo cascada, a menudo es «demasiado pequeña,
demasiado tarde».
XP, sin embargo, adopta el cambio y los equipos de XP se esfuerzan por recibir
una retroalimentación temprana y constante. Si es necesario corregir el rumbo, los
XPers quieren saberlo lo antes posible.

Métodos y técnicas de la programación extrema (XP).


Los métodos y las técnicas son las prácticas de XP. Se dividen en tres grupos
principales: ingeniería de software, entorno de trabajo y gestión de proyectos.
Empecemos por las prácticas relacionadas con la ingeniería de software.
Ingeniería de software
Programación en parejas: En XP, se escribe el código en parejas sentados en una
máquina. Usted y su pareja hablan entre sí mientras analizan, implementan y
prueban la función en la que están trabajando. La programación en parejas es
especialmente eficaz para producir código con menos defectos, a la vez que resulta
atractiva, divertida y agotadora.
Diez minutos de construcción: Se espera que el servidor de integración continua
construya todo el proyecto – incluyendo la ejecución de todas las pruebas
automatizadas – en diez minutos como máximo. Este límite sirve para que las
pruebas sean escasas y malignas, es decir, para que se centren en el proyecto.
Programación basada en pruebas: En XP, usted implementa sus características
utilizando el enfoque de «primero las pruebas», también llamado desarrollo
dirigido por pruebas (TDD):
 escribes una prueba que falla;
 entonces, escribe el código de producción para hacer que la prueba pase;
 si es necesario, refactoriza el código de producción para hacerlo más limpio y
fácil de entender
Diferencia XP de las demás metodologías Ágiles.
La programación extrema, por naturaleza, tiene mucho en común con las demás
metodologías ágiles, pero también es única entre ellas. La mayoría de las otras
metodologías de desarrollo no dicen mucho, si es que dicen algo, sobre cómo hacer
el trabajo.. XP, por el contrario, es muy exigente en este sentido y pone gran
énfasis en las prácticas de ingeniería de software.

Características de la programación extrema (XP).


Por otro lado, entre las características de este tipo de metodología encontramos las
siguientes:

 Planificación flexible y abierta


 Desarrollo iterativo e incremental aportando pequeñas mejoras
 El equipo de proyecto se considera como el factor principal de éxito del
proyecto
 El software funciona por encima de la documentación
 Debe haber una interacción continua entre el cliente y los desarrolladores
 Respuesta rápida y eficaz ante posibles cambios

Aplicación de la programación extrema XP.

Actualmente, XP es visto como un


marco de trabajo, en vez de como
una metodología cerrada, en la que
hay que aplicar todo lo que se
explica en el libro blanco. Hoy se
reconocen sus valores, principios,
prácticas y roles como un
compendio de buenas prácticas de
las que podemos utilizar solamente
las que más ayudarán a nuestro
equipo durante un proyecto
específico.

Algunas prácticas de XP siguen


evolucionando y son promovidas por las comunidades IT para la creación de
productos de software exitosos, ya que consideran que son prácticas creadas por
desarrolladores para mejorar la profesión y el arte del desarrollo de software.

Por ejemplo, es muy común ver que el equipo se organice basado en el marco de
trabajo Scrum, siguiendo las reglas y valores que promueve este marco de trabajo y
que a su vez apliquen prácticas de Ingeniería de Software que promueve XP en su
proceso de desarrollo, como programación en parejas, integración continua, el uso
de historias de usuario, etc.

Además, prácticas como la Integración continua y la entrega continua, han sido


precursoras de movimientos como el de DevOps y el desarrollo basado en
arquitectura de Microservicios que son tendencia en la actualidad y que en sus
procesos integran diversas prácticas de XP como parte de ellas.
Es muy común que se hagan comparativas entre XP y otros marcos de trabajo
ágiles, pero principalmente encontrarás “extreme programming vs scrum” o
“extreme programming vs kanban”, aunque en la realidad no son competencia el
uno del otro, más bien se complementan muy bien cuando sabemos aplicar lo mejor
de ambos mundos en nuestro proceso.

Aquí en OpenWebinars puedes aprender cómo trabajar en un equipo Scrum


aplicando prácticas de XP en los siguientes cursos:

 Curso de Scrum: Fundamentos y buenas prácticas


 Curso de Scrum técnico
 Curso de Scrum avanzado

Ciclo de vida de la programación extrema (XP).

El ciclo de vida de XP fomenta la integración continua, ya que requiere que los


miembros del equipo trabajen casi constantemente, cada hora o todos los días.
Sin embargo, el ciclo de vida completo se estructura de la siguiente manera:
 Extraer trabajos sin finalizar de las historias de usuarios
 Priorizar los elementos más importantes
 Comenzar con la planificación iterativa
 Incorporar un plan realista
 Mantener una comunicación constante con todas las partes interesadas y empoderar al
equipo
 Presentar el trabajo
 Recibir comentarios
 Regresar a la etapa de planificación iterativa y repetir si es necesario

Los 5 valores de la programación extrema (XP).

La programación extrema está impulsada por el valor. En lugar de usar motivadores


externos, la programación extrema permite que tu equipo trabaje de una manera más
sencilla (priorizando la simplicidad y la colaboración sobre diseños complejos),
basándose siempre en estos cinco valores.

1. Simplicidad

Antes de empezar cualquier trabajo de programación extrema, debes hacerte la siguiente


pregunta: ¿Cuál es el proceso más simple y que también funciona? El concepto “que
también funciona” es un diferenciador clave ya que lo más simple no siempre es
práctico o efectivo. En la programación extrema, tu atención se centra en realizar
primero el trabajo más importante. Esto significa que debes buscar un proyecto simple
que sabes que puedes lograr.

2. Comunicación

XP se basa en una respuesta rápida y una comunicación efectiva. Para trabajar de


manera efectiva, el equipo debe ser abierto y ‌honesto entre sí. Cuando surgen
problemas, se espera que todos aporten sus comentarios e ideas, ya que probablemente
alguno de ellos ya tenga una solución adecuada. Y si no la tiene, podrán resolver el
problema más rápidamente como grupo de lo que podrían hacerlo solos.

Lee: Cómo mejorar las comunicaciones del equipo: 6 estrategias y muchos consejos
útiles

3. Comentarios

Al igual que otras metodologías ágiles, el método XP incorpora comentarios e historias


de usuarios directamente en el proceso. El enfoque de XP es producir trabajo de forma
rápida y sencilla, para luego compartir los resultados para obtener comentarios de forma
casi inmediata. Por eso, los desarrolladores están en contacto casi constante con los
clientes durante todo el proceso. En la programación extrema, se lanzan varias versiones
con regularidad para obtener información nueva desde el primer momento y con
frecuencia. Podrás adaptar el proceso (en lugar del proyecto) para incorporar los
comentarios recibidos de clientes. Por ejemplo, si los comentarios ayudan a reducir el
tiempo de retraso innecesario, podrás ajustar el proceso para que los desarrolladores
trabajen para mejorar el tiempo de retraso en lugar de ajustar el proyecto completo.

Lee: ¿Te resulta difícil brindar comentarios? Estos 20 consejos son ideales para ti

4. Valentía

Para implementar la programación extrema, se requiere de mucha valentía. Siempre se


espera que seas honesto al brindar actualizaciones al equipo sobre tu progreso, lo que
puede dejarte en una posición de vulnerabilidad. Si no cumples con una fecha de
entrega en la programación extrema, es probable que al líder de tu equipo no le interese
analizar los motivos. En cambio, le dirías que no cumpliste con la fecha de entrega, te
responsabilizarías por ello y te pondrías a trabajar nuevamente.

Si eres líder de un equipo, tu responsabilidad al comienzo del proceso de XP será


establecer las expectativas de éxito y definir lo que será “el trabajo terminado”. A
menudo suele haber poca planificación para lidiar con el fracaso ya que el equipo se
centra principalmente en el éxito. Sin embargo, puede ser un poco alarmante ya que
sabemos que las cosas no siempre suceden como se planifican. Pero si surgen cambios
durante el proceso de XP, se espera que el equipo se adapte y acompañe estos cambios.

5. Respeto

Teniendo en cuenta que las comunicaciones y la honestidad son prioridad en el


método XP, tiene sentido que el respeto sea una virtud esencial. Para que los equipos se
comuniquen y colaboren de manera efectiva, deben aprender a estar en desacuerdo. Pero
hay maneras de hacerlo amablemente. El respeto es una base importante que promueve
la bondad y la confianza, incluso cuando se expresan las opiniones con total honestidad.
Para la programación extrema, estas son las expectativas:

 Respeto mutuo entre los clientes y el equipo de desarrollo.


 Respeto mutuo entre los miembros del equipo.
 El reconocimiento de que todos en el equipo aportan algo valioso al proyecto.

Ventajas y Desventajas de la programación extrema (XP).

 Ventajas de la programación extrema:

 Fomenta la comunicación entre los clientes y los desarrolladores: cuando el


cliente pasa a ser un elemento clave en el proceso de construcción del software,
su opinión es fundamental. Esto evita malentendidos y permite diseñar
productos a la medida. El cliente termina el proceso conociendo en profundidad
la herramienta que ha sido creada para él.
 Permite ahorrar mucho tiempo y, por lo tanto, dinero: como
este método fomenta la prueba y el error, es muy difícil que se
siga avanzando si no se está seguro ya de que el camino es el
indicado. Si hay que volver atrás, no serán demasiados pasos.
Esto hace que el proceso sea más efectivo y, por lo tanto, más
rápido y económico para el cliente.
 Mejora continua de los procesos y el equipo de desarrollo: el
ciclo de vida XP se asegura de resolver los errores las veces que
sea necesario, es un proceso de “bucle” que permite corregir
fallas periódicamente.

 Desventajas de la programación extrema

 Dificultad para documentar: como esta metodología trabaja de forma rápida y


con cambios constantes, es difícil llevar un registro e historial de lo que se ha
hecho. Si un proyecto fracasa, no hay documentación que explique el motivo. La
conclusión de lo que salió mal pasa a ser una hipótesis en la mente de los
desarrolladores.
 Es recomendable emplear XP solo en proyectos a corto plazo y simples: no
todos los proyectos se adaptan a esta metodología. Si son diseños muy
complejos, la programación extrema puede fallar, ya que no fomenta el uso de
estructuras formales y evita la documentación, así como los diseños
convencionales. Estos últimos elementos son importantes en proyectos largos o
complejos.
 Fuerte dependencia de las personas: la metodología XP evita decisiones
burocráticas y actúa de forma dinámica. Por lo tanto, los procesos muchas veces
se modifican sin que haya registro, solo los involucrados conocen bien el
desarrollo y esto puede suponer una desventaja si más adelante hay que pedir
explicaciones. No obstante, este punto en contra se puede manejar con
un Software de Gestión de Proyectos para registro y colaboración.
 Posibles “roces” con el cliente: el hecho de involucrar al cliente en decisiones
técnicas cuando no es un experto en el proceso puede ser contraproducente y
demorar el ciclo de desarrollo del software. A veces, los cambios que el cliente
propone no son posibles o viables, ya que ciertos códigos no pueden cambiarse
tan fácilmente.

Conclusión.

XP es un marco de desarrollo que persigue el feedback continuo, la excelencia técnica y


la entrega de valor constante promovido a través de:

 Valores que representan la mentalidad del equipo, incentivan el trabajo en


equipo y el enfoque hacia un objetivo común.
 Principios que reflejan los valores de maneras más concretas.
 Prácticas que nos ayudan a conseguir una cultura de equipo y una buena
organización a través de la excelencia técnica y la creación de software de valor.

Cuando creamos una cultura de equipo basándonos en los principios y valores de XP


podremos crear un entorno competitivo, pero a la vez motivacional, donde cada
miembro aprecia el trabajo de cada uno de sus compañeros, entregan trabajo valioso de
forma constante y rápidamente porque pueden distinguir las tareas relevantes de las que
no son necesarias. Reaccionan rápidamente al feedback dándose cuenta de que es una
crítica razonable que tiene el objetivo de hacer un mejor producto, trabajo y equipo, lo
que promueve el espíritu kaizen, la mejora continua.

También podría gustarte