Nombre

Mejorar continuamente la organización interna del producto para facilitar su mantenimiento.

Descripción

Corresponde a la práctica "Refactoring" de Extreme Programming, que consiste en mejorar la arquitectura del producto sin cambiar su funcionalidad (sin cambiar su comportamiento externo).

Ejemplo de situación con la anti-práctica es el siguiente: si no hay una preocupación y dedicación constante por la mejora de la arquitectura, ésta probablemente se irá degradando con los cambios asociados a los mantenimientos del producto.

Una buena arquitectura interna del producto es clave para facilitar el mantenimiento, las pruebas y la reutilización, con lo cual debería ser un objetivo de cualquier metodología, sin embargo, las estrategias para conseguirlo pueden ser muy diferentes, y lo son. La estrategia tradicional es invertir un importante esfuerzo al inicio del desarrollo del producto (especificando y modelando intensamente), antes de comenzar a construirlo. Por contraparte, la estrategia ágil es iniciar rápidamente la construcción del producto para poder cuanto antes ir consiguiendo la confirmación del cliente, al menos de lo construido hasta el momento. Esta estrategia ágil conlleva que la preocupación por la arquitectura se centre principalmente en la parte del producto que se está construyendo en el momento, limitando el esfuerzo de especificación o modelado, y asumiendo el riesgo del re-trabajo que posteriormente puedan suponer las mejoras de arquitectura necesarias para garantizar que en última instancia también se conseguirá una buena arquitectura. La refactorización debería aplicarse continuamente, como parte de cualquier trabajo sobre el producto, es decir, no debería acumularse el trabajo de refactorización para hacerlo puntualmente cuando la arquitectura ya está obstaculizando de forma significativa el mantenimiento, las pruebas o la reutilización. Es importante destacar que la refactorización debe estar acompañada de buenos mecanismos para probar el comportamiento externo del producto y así asegurar que estos cambios de organización interna del producto no se están afectando dicho comportamiento. Lectura recomendada: ¿Cuando y cómo el trabajo de arquitectura cobra protagonismo en el contexto ágil?.

 

Ver mapa de prácticas ágiles