Está en la página 1de 10

Metodología XP

Cuando hablamos de una metodología Agiles, se sabe que es mucho más que
una metodología para el desarrollo de proyectos que precisan de rapidez y
flexibilidad, es una filosofía que supone una forma distinta de trabajar y de
organizarse. De tal forma que cada proyecto se ‘trocea’ en pequeñas partes que
tienen que completarse y entregarse en pocas semanas. El objetivo es desarrollar
productos y servicios de calidad que respondan a las necesidades de unos
clientes cuyas prioridades cambian a una velocidad cada vez mayor.

Existe una metodología llamada XP, Extreme Programming o XP Programming la


cual es un marco de desarrollo de software ágil que tiene como objetivo producir
un software de mayor calidad para mejorar la eficiencia del equipo de desarrollo.
Extreme Programming fue la metodología dominante en el mundo ágil en los años
2.000. Luego, el framework Scrum le quitó el puesto en cuanto a popularidad.

Se trata de una metodología de desarrollo cuyo objetivo es promover la aplicación


de prácticas de ingeniería apropiadas para la creación de software. Esta
metodología la formuló Kent Beck, autor del primer libro sobre este ámbito llamado
Extreme Programming Explained: Embrace Change, publicado en 1999.

A pesar de ello, se trata de una de las metodologías ágiles de desarrollo de


software más exitosas. La combinación de esta, junto con la Scrum, asegura un
enorme control sobre los proyectos y una implementación mucho más efectiva.

Extreme Programming está diseñada para ofrecer el software que los usuarios
necesitan en el momento adecuado. En este sentido, ayuda a los desarrolladores
a ajustarse a los requerimientos cambiantes de los clientes.

Este tipo de programación se diferencia de las metodologías tradicionales en que


pone más énfasis en la adaptabilidad que en la previsibilidad. El Extreme
Programming considera que los cambios de requisitos sobre la marcha son
acciones naturales e inevitables en el desarrollo de un proyecto. Creen que ser
capaces de adaptarse a los cambios que puedan surgir en cualquier punto del
ciclo de vida de un proyecto es una mejor previsión y más realista que intentarlos
definir todos en un principio y que no varíen más.

Esta herramienta es muy útil sobre todo para startups o empresas que están en
proceso de consolidación, puesto que su principal objetivo es ayudar en las
relaciones entre los empleados y clientes. La clave del éxito del Extreme
Programming XP es potenciar las relaciones personales, a través, del trabajo en
equipo, fomentando la comunicación y eliminando los tiempos muertos.

Fases
La XP utiliza un enfoque orientado a objetos como su paradigma de desarrollo
preferido. Abarca un conjunto de reglas y prácticas que ocurren en el contexto de
cuatro fases del de trabajo, las cuales son:

Planeación.

Esta comienza creando una serie de historias (también llamadas historias del
usuario y es una explicación informal de una función de software, escrita desde la
perspectiva del usuario final) que describen las características y la funcionalidad
requeridas para el software que se construirá. Cada historia la escribe el cliente y
se coloca en una carta índice. El cliente le asigna un valor (es decir, una prioridad)
a la historia basándose en los valores generales del negocio respecto de la
característica o la función.

Entonces los miembros de la XP evalúan cada historia y le asignan un costo, el


cual se mide en semanas de desarrollo. Si la historia requiere de tres semanas de
desarrollo, se le pide al cliente que divida en historias menores, posteriormente se
realiza de nuevo la asignación de valor y costo.

Los clientes y el equipo de XP trabajan juntos para decidir como agrupar las
historias hacia el próximo lanzamiento (el siguiente incremento de software) para
que el equipo de la XP las desarrolle. Una vez establecido el compromiso básico
(el acuerdo de las historias que se incluirán, la fecha de entrega y otras cuestiones
del proyecto) para un lanzamiento, el equipo de la XP ordena las historias que de
desarrollarán de una de las siguientes tres maneras:
1. Todas las historias serán implementadas de un modo inmediato (dentro de
pocas semanas).
2. Las historias con valor más alto se moverán en el programa y se
implementarán al principio.
3. Las historias más riesgosas se moverán dentro de programa y se
implementarán al principio.

Conforme avanza el trabajo de desarrollo, el cliente puede agregar historias,


cambiar el valor de la historia existente, dividir o eliminarlas. Entonces el equipo de
la XP considera de nuevo los lanzamientos restantes y modifica sus planes de
acuerdo con ello.

Diseño del proyecto

Esta fase sigue al pie de la letra el principio MS (mantenerlo simple). Siempre se


prefiere un diseño simple respecto de una presentación mas compleja. Además,
este diseño debe ofrecer una guía de implementación para una historia como está
escrita, ni más ni menos.

Si se encuentra algún problema de diseño como parte del diseño de la historia, la


XP recomienda la creación inmediata de un prototipo operacional de esa porción
del diseño. El prototipo del diseño, también llamado la solución pico, se
implementa y evalúa. El propósito es reducir cuando comience la verdadera
implementación y validar las estimaciones originales en la historia que contiene el
programa del diseño.

Fowler describe la Refabricación de la siguiente manera:

“Refabricación es el proceso de cambiar un sistema de software de tal


manera que no altere el comportamiento externo del código y que mejore la
estructura interna. Es una manera disciplinada de limpiar el código (y
modificar/simplificar el diseño interno), lo que minimiza las oportunidades de
introducir errores [...].”

El propósito de refabricar es controlar estas modificaciones al sugerir pequeños


cambios del diseño que pueden mejorar de manera radical el diseño.
Una nación central de la XP es que el diseño ocurre tanto antes como después del
comienzo de la codificación. Refabricar significa que el diseño ocurre de manera
continua a medida que se construye el sistema. Según Fowler, “Al refabricar, se
mejora el diseño del código después de que se ha escrito”. La actividad de
construcción misma le proporcionara al equipo de XP una guía sobre cómo
mejorar el diseño.

Codificación

Donde los programadores trabajan en pareja para obtener resultados más


eficientes y de calidad.

La XP recomienda una vez diseñada las historias y haber realizado el diseño


preliminar, el equipo no debe moverse hacia la codificación, sino que debe
desarrollar una serie de pruebas de unidad que ejerciten cada una de las historias
que vayan a incluirse en el lanzamiento actual (incremento del software).

En la práctica, cada persona tiene un papel diferente. Por ejemplo, una persona
puede pensar en los detalles de codificación de una porción particular del diseño,
mientras que la otra se asegura de que se sigan los estándares de codificación y
que el código que se genera coincida con el diseño mas amplio de la historia.

Un concepto clave durante la actividad de codificación es la programación en


pareja. La XP recomienda que dos personas trabajen juntas en una estación de
trabajo de computadora para crear el código de una historia. Esto proporciona un
mecanismo para la resolución de problemas en tiempo real y el aseguramiento de
la calidad en las mismas condiciones. También alienta que los desarrolladores se
mantengan centrados en el problema que se tiene a la mano.

Cuando los programadores completan el trabajo que desarrollaron se integra con


el trabajo de otros. En ciertas ocasiones esto lo lleva a cabo diariamente el equipo
de integración. Esta estrategia se integración continua ayuda a evitar problemas
de compatibilidad e interfaz y proporciona un ambiente de prueba de humo que
ayuda a descubrir los errores desde el principio.
Pruebas

En esta fase se comprueba que funcionan los códigos que se van implementando.
Las pruebas de unidad que se crean deben implementarse con un marco de
trabajo que permita automatizarlas (por lo tanto, pueden ejecutar de manera fácil y
repetida). Esto ayuda en gran medida en una estrategia de regresión de prueba
cuando el código se modifica (al cual a menudo se le confiere la filosofía de la XP
de refabricar).

Cuando las unidades individuales de prueba se organizan en un conjunto universal


de pruebas, las pruebas de integración y validación del sistema pueden realizarse
a diario.

Las pruebas de aceptación de la XP, también llamadas pruebas del cliente, las
especifica el cliente y se enfocan en las características generales y la
funcionalidad del sistema, elementos visibles y revisables por el cliente. Las
pruebas de aceptación derivan de las historias del usuario que se han
implementado como parte de un lanzamiento de software.

Diagrama

La metodología XP se representa de la siguiente manera:

Imagen 2.1 Diagrama de la metodología XP


Características

Lo que caracteriza a XP, al igual que al resto de métodos Agiles es un ciclo de


vida dinámico. El cual lo logra mediante ciclos de desarrollo cortos (llamados
iteraciones), al fin de los cuales se generan unos entregables funcionales.

Además, esta metodología esta basada en prueba y error ya que esta puesta a un
cambio constante que favorece e incentiva la retroalimentación, por lo que se debe
estar preparado para aplicar cambios constantes y tener la valentía para desechar
y rehacer los códigos ya establecidos.

Otras características de esta metodología son:

 Comunicación constante entre el cliente y el equipo de desarrollo.


 Respuesta rápida a los cambios constantes.
 La planificación es abierta con un cronograma de actividades flexible.
 El software que funciona está por encima de cualquier otra documentación.
 Los requisitos del cliente y el trabajo del equipo del proyecto son los
principales factores de éxito del mismo.

Ventajas

Algunas de las principales ventajas de esta metodología son:

 Mejora la calidad: Minimiza los errores en los entregables y mejora la


experiencia y la funcionalidad para el cliente.
 Mayor compromiso: Mejora la satisfacción del empleado y genera
conciencia de equipo.
 Rapidez: Acorta los ciclos de producción y minimiza los tiempos de reacción
y toma de decisiones.
 Aumento de la productividad: Al asignar mejor los recursos, y de forma más
dinámica, mejora la producción según las prioridades que tenga la
empresa.
 Es muy eficiente durante el proceso de pruebas y planificación.
 Facilita los cambios.
 Origina una programación muy organizada y la satisfacción del
programador.

Desventajas

 Es recomendable emplearla solo en proyectos a corto plazo.


 En caso de fallar, las comisiones son muy altas.
 Requiere de un rígido ajuste a los principios de XP.
 Puede no siempre ser más fácil que el desarrollo tradicional.
 Dificultad para documentar ya que trabaja de forma rápida y con cambios
constantes.
 Fuerte dependencia de las personas, esto porque solamente los
involucrados conocen bien el desarrollo y esto puede suponer una
desventaja si mas adelante se necesita pedir explicaciones.
 Posibles problemas con el cliente debido a que este se involucra durante
las decisiones técnicas.

Para que tipo de sistema se utiliza o es su aplicación

Se utiliza principalmente para proyectos de desarrollo de software, siendo uno de


los muchos tipos de metodologías Agile. Con ella se logra construir un producto
muy ajustado a los requerimientos del cliente. Unas especificaciones que van
variando a lo largo del desarrollo del producto.

un proyecto de desarrollo de software se aplica de forma efectiva y ágil cuando se


adopta a los cambios frecuentes y al ritmo de trabajo dinamico, para esto se debe
contar con herramientas digitales que le permitan al coach llevar las siguientes
actividades:

 Organizar reuniones diarias


 Armar listados de tareas
 Realizar trabajos colaborativos de remotamente
 Controlar los adelantos
 Notificar a los miembros del equipo y mantener comunicación efectiva
Bibliografía

Pressman, R. S. (2005). Ingeniería de software. Un enfoque practico. (6.a ed.). McGraw-Hill.


Mexico.

https://www.iebschool.com/blog/que-son-metodologias-agiles-agile-scrum/

https://www.iebschool.com/blog/que-es-el-xp-programming-agile-scrum/

https://blog.comparasoftware.com/metodologia-xp/#Caracteristicas-de-la-Programacion-Extrema

https://www.viewnext.com/ventajas-extreme-programming/

https://blog.comparasoftware.com/programacion-extrema-ventajas-desventajas
Conclusión xp

El Extreme Programming es una metodología de desarrollo que pertenece a las


conocidas como metodologías ágiles, cuyo objetivo es el desarrollo y gestión de
proyectos con eficacia, flexibilidad y control. Ambos conceptos, aunque
relacionados estrechamente, son distintos. Agile es el marco de trabajo para el
desarrollo del software, se hace mediante un proceso iterativo y define las
prácticas y roles del equipo. Por su lado, el Extreme Programming es una
metodología basada en la comunicación, la reutilización del código desarrollado y
la realimentación.

El uso de esta metodología supone, para muchos teóricos, una aproximación a la


calidad óptima del producto. Pues durante el ciclo de vida del software, ocurren
cambios naturales. Es más, cuanto más cambios, puede que más cerca estemos
del mejor resultado que espera nuestro cliente. Por eso, este cambio constante en
el proyecto se llega a considerar como favorable. Y si podemos aplicar una
manera dinámica de gestionarlos, mejor. Esta forma es conocida como
metodología XP.

También podría gustarte