CategoríaAgile y Scrum

Descubre qué es el Extreme Programming y sus características

461

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. ¿Quieres saber más? ¡Sigue leyendo!

Te puede interesar: Máster en Project Management Online

¿Qué es el Extreme Programming?

Extreme Programming o XP Programming 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. 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.

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.

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.

Para que nos hagamos una idea, 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.

Video

Agile Management: cómo aplicarlo en la empresa

Descargar

Variables de la metodología XP

La metodología XP define cuatro variables para cualquier proyecto de software. Estas son las siguientes:

  • Coste
  • Tiempo
  • Calidad
  • Alcance

Según el método, de estas cuatro variables, tres pueden ser fijadas por actores externos al equipo de desarrollo. Es decir, por los clientes o por los responsables de proyectos. El restante debe ser establecida por el mismo departamento, que fija su valor en función de las otras. El objetivo de esto es intentar alcanzar un equilibrio entre las cuatro variables.

Por ejemplo, si el cliente formaliza el alcance y la calidad, el responsable del proyecto podrá fijar el precio y el equipo de desarrollo tendrá la libertad de determinar la duración del proyecto.

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

Valores del Extreme Programming

El Extreme Programming se desarrolla teniendo en cuenta cinco valores fundamentales. El objetivo de estos valores es que el equipo de desarrolladores trabaje bajo una mentalidad conjunta para poder colaborar y crear un producto de alto nivel. A continuación, te explicamos los cinco valores de la metodología XP, ¡no te lo pierdas!

1. Comunicación

Como comunicación entendemos no solo una buena interacción interna entre los propios miembros del equipo de desarrolladores, sino también con los clientes. El objetivo es romper las barreras entre negocio y desarrollo. Para ello, la programación XP promueve que todos los requisitos sean comunicados y trabajados con el equipo y no mediante documentación.

2. Simplicidad

Empezar con la solución más simple es clave en la programación XP. Esta metodología pone el foco en codificar las necesidades de hoy, no las de un futuro. Además, también se simplifica el diseño para agilizar el desarrollo y facilitar el mantenimiento. Para conservar la simplicidad hay que mantener la refactorización del código, así podremos preservar el código simple a medida que va creciendo.

3. Feedback

Una de las mayores ventajas de que el cliente esté integrado en el proyecto es que su opinión sobre el estado de este lo podemos conocer en tiempo real. Gracias a que se hacen ciclos muy cortos de presentación de resultados, se minimiza el riesgo de tener que rehacer partes que no cumplen con las expectativas del cliente. También, por otro lado, ayuda a los programadores a centrarse en las tareas más importantes.

Máster en Project Management Online

Aprende de la mano de los mayores expertos del sector

¡Quiero informarme!

4. Respeto

El respeto mutuo es fundamental para que un equipo pueda trabajar de forma eficiente y ofrecer un buen rendimiento. Implica desde que un desarrollador no realice modificaciones que puedan tener un impacto negativo en el trabajo de un compañero hasta la forma de llegar al cliente. El respeto se manifiesta de varias formas y todas son cruciales para una mejor autoestima en el equipo, que lleva consigo un mayor ritmo de producción.

5. Valentía

Diseñar y programar para hoy y no para mañana implica valentía en la metodología XP, así como reconocer los errores tan pronto como se detecten. Ningún miembro del equipo puede perder el tiempo en intentar hacer de menos su responsabilidad en un error cometido, ya que esto significará dejar de centrarse en otras cosas e impedirá avanzar al resto, por lo que la productividad bajará.

El equipo de un proyecto XP

En cuanto a los agentes implicados en el Extreme Programming, los equipos de un proyecto de esta tipología y magnitud tienen normalmente las siguientes figuras y roles:

  • Clientes: Establecen las prioridades y marca el proyecto. Suelen ser los usuarios finales del producto y quiénes marcan las necesidades.
  • Programadores: Serán los que se encargarán de desarrollar el Extreme Programming.
  • Testers: se encargan de ayudar al cliente sobre los requisitos del producto.
  • Coach: Asesoran al resto de componentes del equipo y marcan el rumbo del proyecto.
  • Manager: Ofrece recursos, es el responsable de la comunicación externa y quien coordina las actividades.

En general, no obstante, los participantes en este tipo de equipos no siempre toman un rol fijo y contribuyen con los conocimientos de cada uno en aras del beneficio colectivo.

planificaciones y pruebas

Por una parte se deben planificar los plazos temporales del proyecto basándose en las exigencias del cliente. En base a las estimaciones de coste y la dificultad del proyecto se marcan las prioridades y las fechas, no siempre de forma precisa, pero sí orientativa.

Con la entrega de la planificación efectuada, se desarrolla la de la iteración en el que cada dos semanas se marca el rumbo y se entrega el software útil después de cada uno de estos periodos bisemanales. Con esto se consigue que el nivel de precisión sea mucho mayor, las estimaciones sobre los costes sean más exactas y la información mucho más transparente.

En cuanto a las pruebas, continuamente se han de efectuar una serie de pruebas automatizadas en base a los requisitos del cliente para comprobar que todo funcione correctamente. Éstas han de hacerse de forma periódica y automática.

Con las planificaciones comentadas anteriormente se incluyen las entregas al final de cada iteración, estas serán siempre con el software probado y funcionando correctamente y será facilitado al cliente, que puede utilizarlo para cualquier propósito, incluso para el usuario final. Los equipos XP también pueden hacer entregas a otros usuarios finales.

Diseño y programación

El diseño del programa suele ser simple y basado en la funcionalidad del sistema y se lleva a cabo durante todo el proyecto, tanto durante la planificación de la entrega como en el de la iteración.

La programación del software se hace siempre en pareja, lo que se llama programar a dos manos. Se asegura con este método que al menos un programador conoce y controla la labor de otro y queda revisado. La ventaja es que se produce mejor código que en base a un programador aunque la dificultad de la misma sea mayor.

El código es de todos, con el desarrollo de las pruebas automáticas y la programación a dos manos se incluye también la posibilidad de que cualquiera pueda añadir y retocar parte del código, aunque eso sí, deba ser un estilo común y cuyo resultado sea como si sólo lo hubiera hecho una persona.

El Extreme Programming tiene como gran ventaja el de la programación organizada y planificada  para que no haya errores durante todo el proceso. Los programadores suelen estar satisfechos con esta metodología. Es muy recomendable efectuarlo en proyectos a corto plazo.

¿Qué te ha parecido este artículo sobre Extreme Programming? Deja tus comentarios y ¡comparte!

Por último, esta metodología forma parte del extenso mundo de la gestión de proyectos Ágiles, metodologías que cada vez son más adoptadas por las grandes empresas de Internet para hacer frente a un mundo cada vez más cambiante y veloz. Si quieres especializarte en este sector en pleno auge, puede hacerlo con nuestro Máster en Project Management Online. ¡Hazte ágil!

Máster en Project Management Online

Aprende de la mano de los mayores expertos del sector

¡Quiero informarme!

Elena Bello

Periodista especializada en comunicación corporativa. Departamento de Marketing y Comunicación de IEBS Business School. Leer más

1 comentario en Descubre qué es el Extreme Programming y sus características

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Síguenos en las redes