Vous êtes sur la page 1sur 11

Un acercamiento de un Plan de Gestión de la Configuración “para Ágil”

Ivis Rosa Vásquez Sierra, Sorey Bibiana Garcia Zapata

Medellín, Colombia

Universidad EAFIT

{ivasque2, sgarci10}@eafit.edu.co

Resumen. Establecer una propuesta de implementación de Gestión de la Configuración aplicable a metodologías ágiles, representa un reto interesante. Las metodologías ágiles cuyas bases promueven la disminución de los problemas generados por la rigidez asociada a los métodos tradicionales, no deberían verse afectadas por la implementación de prácticas de Gestión de Configuración, si no por el contrario verse soportadas y optimizadas. Este artículo presenta un acercamiento a una posible propuesta de implementación para proyectos desarrollados bajo la integración de las metodologías XP 1 y SCRUM. 2

Palabras Claves: Gestión de la Configuración, Metodologías Ágiles, Integración, XP, SCRUM.

Abstract. Establishing an implementation proposal of Configuration Management applicable to Agile Methodologies represents an interesting challenge. The Agile Methodologies, whose bases promote the decrease of problems generated by the rigidness associated to the traditional methods, shouldn't be affected by the implementation of Management Configuration's Practices, but on the contrary, be supported and optimized. This article presents an approach to a possible implementation proposal for projects developed with the integration of the XP and SCRUM methodologies.

Keywords: Configuration Management, Agile Methodologies, Integration, XP, SCRUM.

1 La Programación Extrema, mejor conocida por su nombre en inglés Extreme Programming (XP), es una de las llamadas Metodologías Agiles de desarrollo de software más exitosas de los tiempos recientes, tomado de http://www.programacionextrema.org.

2 SCRUM es un proceso ágil que se puede utilizar para gestionar y controlar complejos programas

informáticos y el desarrollo de productos utilizando el modelo de desarrollo iterativo e incremental, http://www.controlchaos.com.

1 Introducción

Las metodologías ágiles han surgido como una alternativa a los procesos de desarrollo de software tradicionales, caracterizados por su escasa flexibilidad y su propuesta de generación de documentación detallada como soporte a las actividades; enfoque que a pesar de ser efectivo en proyectos de gran tamaño, resulta inconveniente en otros de menor alcance.

En respuesta a esta situación, las metodologías ágiles emergen como una posible solución orientada a suplir las necesidades metodológicas existentes en pequeños y medianos proyectos, aportando un alto grado de simplicidad que no renuncia a las practicas esenciales que aseguran la calidad del producto, y que además, han evidenciado como su aplicación, constituye una mejor manera de proporcionar satisfacción al cliente generando resultados a corto plazo.

Dado el anterior panorama, las metodologías ágiles requieren de especial atención y disciplina en actividades como la administración y distribución de las tareas, la respuesta ágil y oportuna a los cambios y la realización de integraciones continuas, estableciendo así a la Gestión de la Configuración como una disciplina fundamental que proporciona el soporte necesario a la ejecución de los procesos de desarrollo ágiles.

La estrategia de Gestión de la Configuración que se adopte en un proyecto ejecutado bajo la integración de las metodologías XP y SCRUM, es de vital importancia y constituye un verdadero reto, ya que su implementación, como en cualquier otra metodología ágil, debe impulsar el principio de agilidad y habilitar el desarrollo paralelo cuando este sea puesto en práctica.

El papel de la Gestión de la Configuración en las metodologías ágiles debe centrarse en construir el entorno necesario para conseguir los objetivos y reforzar el proceso de cambio continuo.

Los planteamientos descritos en este documento tienen como objetivo definir una propuesta de aplicación y adaptación a los proyectos desarrollados con base en la metodología enunciada, estableciendo un conjunto de prácticas simples y evaluando las condiciones y características de los elementos y entidades identificados, tales como: el equipo de trabajo y sus responsabilidades, la distribución de tareas, las actividades de integración y la herramienta de apoyo usada para soportar la Gestión de la Configuración.

Para el desarrollo de esta propuesta se ha elegido como principal metodología de análisis, la integración de XP Y SCRUM, debido a que adoptar cada una de estas por separado resulta insuficiente, puesto que el enfoque de XP se encuentra centrado en lineamientos de tipo técnico y comprende un conjunto de buenas prácticas de programación, e implantar SCRUM se encuentra más enfocado hacia la planificación de

proyectos. En algunos documentos de referencia esta integración de metodologías es nombrada como XP@SCRUM 3 .

XP@SCRUM aboga por la satisfacción del cliente, el trabajo en equipo y la comunicación entre sus miembros [1].

El enfoque presentado en este documento puede ser tomado como una propuesta viable de implementación, sin embargo, debe ser sometido a consideración de las organizaciones antes de ser adaptado al esquema de trabajo, ya que como propuesta académica su aplicabilidad está sujeta a verificación, y el contenido se ha desarrollado bajo la hipótesis de que la organización tiene un proceso de desarrollo establecido con políticas y prácticas de XP@SCRUM.

Además nuestro planteamiento conserva la visión bien conocida por los amantes de SCRUM, en el que este es comparado con el popular deporte Rugby y es esa la razón por la cual en este documento se presentan las ideas principales como un plan de juego, que para el efecto cuenta con unos principios, estrategia y elementos de juego.

Este documento conserva varios anglicismos, tales como: Product BackLog 4 , Sprint 5 , Story Cards 6 [3] etc. por tratarse de la terminología exclusiva de las metodologías relacionadas en el.

2 Los principios

De la misma forma en que las metodologías ágiles acogen los principios determinados por el manifiesto ágil [2]: adaptabilidad, colaboración, integración continua y simplicidad, y que cada metodología define un compendio de principios particulares, tales como: simplicidad, comunicación, retroalimentación y coraje para XP; equipos auto gestionados, reuniones diarias e iteraciones cortas para SCRUM; esta propuesta presenta algunos principios que deberían tenerse en cuenta para la aplicación de la Gestión de la Configuración en los proyectos ejecutados con metodologías ágiles, especialmente aquellos que utilizan como metodología, la integración de XP y SCRUM.

3 Scrum puede ser combinado con prácticas de la metodología ágil XP para generar un impacto significativo en la productividad de un equipo de proyecto, a esta combinacion se le llama tambien XP@SCRUM.,

http://www.informit.com/articles/article.aspx?p=26057.

4 Lista con las funcionalidades de la aplicación ordenadas de mayor a menor importancia.

5 Una Iteracion en Scrum es denominada Sprint.

6 Tarjetas que describen los requisitos de los usuarios.

A

continuación se enumeran algunos elementos que deben tenerse en cuenta como reglas

o

principios fundamentales en la aplicación de Gestión de la Configuración “para Ágil”:

Facilidad de Aprendizaje. El plan de Gestión de Configuración debe ser definido

pensando en la necesidad de optimizar el tiempo invertido en el aprendizaje, apropiación

y aplicación del mismo, al que hacer de los integrantes de los equipos de trabajo de la

organización, esto brindará mejores posibilidades de que la ejecución de las practicas y

lineamientos definidos no entorpezcan el desarrollo de los proyectos.

Cultura. Los procesos, practicas y lineamientos especificados para la Gestión de la Configuración deben divulgarse a todos los integrantes de la organización que ejerzan alguno de los roles vinculados directamente con la ejecución de los proyectos, sin embargo, esta tarea debe ser complementada con un proceso de sensibilización cultural en el cual cada una de las personas vinculadas al proceso, comprenda claramente cuáles son sus responsabilidades y las consecuencias que conlleva la omisión de estas dentro de los proyectos en los que participa.

Automatización. Es necesario automatizar las tareas relacionadas con la Gestión de la Configuración tanto como sea permitido, de forma que la agilidad perseguida con la aplicación de las metodologías ágiles no sea afectada y se involucre al proceso, el mínimo de actividades manuales posibles.

3 La Estrategia

Esta estrategia parte del supuesto de que los procesos de Gestión de la Configuración pueden aplicarse a proyectos ejecutados con metodologías ágiles. La Gestión de la Configuración encaja perfectamente en XP@SCRUM, no hay ningún punto de colisión entre las metodologías, por el contrario, son complementarias y paralelas.

Antes de iniciar los proyectos, debe negociarse con los clientes su responsabilidad frente las actividades de Gestión de la Configuración, estableciendo la posición de la organización acerca de la necesidad e importancia identificada en la aplicación de estas prácticas y los posibles riesgos relacionados con ejecución de las nuevas tareas, si es que existiesen. Esta recomendación es de vital importancia en este tipo de metodologías, debido al estrecho vínculo del cliente con el proyecto y su ejecución.

Al igual que existe una recomendación relacionada con el alto nivel de experiencia que deben tener los integrantes del equipo vinculados a proyectos desarrollados bajo metodologías ágiles, se recomienda que todos los participantes del proyecto deben tener el conocimiento necesario para ejecutar correctamente las tareas que se encuentren relacionadas con las actividades definidas en el plan de Gestión de la Configuración, por lo tanto la organización debe garantizar el entrenamiento previo si se encuentran integrantes del equipo con un nivel inapropiado de conocimiento

Es necesario además, vincular el rol de Oficial de la Configuración a la metodología de desarrollo, bien sea porque es asignado a uno de los integrantes del equipo o porque es asignado como única tarea a una persona. Este rol es requerido por la Gestión de la Configuración, y debido a su importancia y criticidad como ente centralizador e integrador, no debe ser evadido.

Además, los integrantes del proyecto que ejerzan el rol de desarrolladores, deben aplicar las siguientes recomendaciones: seguir los estándares de codificación y nombramiento definidos, desarrollar código legible y entendible que contenga comentarios que precisen los cambios realizados y cargar en el repositorio su código al finalizar el día, teniendo presente no cargar en este porciones de código que no compilen y que puedan entorpecer el desarrollo de los demás integrantes del equipo.

El principio ágil definido como capacidad de adaptación al cambio, no significa improvisación del cambio, el éxito de la implantación de un plan de Gestión de Configuración está en su correcta planificación y ejecución; la primera es vital y la segunda evidente.

La institucionalización del uso las prácticas de Gestión de la Configuración dentro de la organización es imprescindible; en consecuencia, el plan de Gestión de Configuración que se proponga debe estar previamente definido antes de emprender cualquier proyecto, El plan debe ser flexible y adaptable, de tal forma que si se evidencia en algún momento que las actividades definidas en él entorpecen la ejecución del proceso de desarrollo en sí, este debe replantearse teniendo especial cuidado en que los cambios no impacten drasticamente el proyecto. En caso de que a partir de los cambios surjan nuevas prácticas en pro de mejorar el proceso de Gestión de la Configuración, estas deben ser divulgadas a los demás equipos de trabajo de la organización.

Es fundamental que el plan de Gestión de Configuración defina con claridad y precisión que ítems de configuración estarán incluidos en los diferentes tipos de control y etapas del proyecto. Una parte importante de la planificación incluye tener definidas las estructuras qué deben contener los repositorios para el almacenamiento y clasificación de los ítems de configuración y qué permisos deben estar relacionados a cada uno de los integrantes del equipo de acuerdo a su rol dentro del proyecto.

Ahora bien, otro de los puntos críticos a analizar son los momentos de generación de líneas base y/o nuevas versiones. Las metodologías ágiles y su desarrollo en iteraciones más cortas, requieren la integración continúa de cambios pequeños, esta necesidad puede proporcionar mayor agilidad a los procesos de control de cambios, versiones y defectos, siempre que estos se ejecuten de forma adecuada, de lo contrario tal ventaja podría dar un reverso y convertir las integraciones continuas en un caos, lo que indefectiblemente conduciría al retraso en las entregas al cliente.

Las herramientas usadas para apoyar la Gestión de Configuración, deben tener la capacidad de automatizar tareas como la generación de una nueva versión. Las versiones

deben ser generadas después de completar exitosamente la ejecución de pruebas automáticas, de igual forma la herramienta debe permitir una integración con las herramientas de desarrollo y pruebas usadas dentro de los proyectos.

Los ítems de configuración propuestos para el plan de Gestión de la Configuración son:

el Plan de Configuración, la lista de riesgos, los documentos de estándares de nombramiento, el Código Fuente o Sprint, el Sprint BackLog, el Product BackLog, los Sprint BurnDown y las Story Cards, para estas últimas debe crearse algún mecanismo de digitalización, escanearlas o digitarlas, pero controlarlas y además, debido a que son el soporte más importante de los requisitos y cambios identificados para el sistema, se debe proporcionar una forma automatizada que permita relacionarlas entre sí, con el fin de proveer un mejor acercamiento al impacto que puede producirse entre un cambio y otro.

Entre las disciplinas complementarias a la Gestión de la Configuración se puede resaltar la Gestión del Conocimiento. Muchos beneficios pueden ser obtenidos a partir de las lecciones aprendidas por los integrantes de los proyectos. Resulta importante para la organización, buscar el mecanismo para convertir el conocimiento y experiencia de sus desarrolladores en conocimiento explicito de una forma natural, y que esto por ejemplo contribuya a la disminución en alguna medida del riesgo, cuando por alguna razón se pierde a uno de los miembros del equipo.

4 Los Elementos de Juego

Finalmente, después de haber enumerado las reglas de juego, las consideraciones fundamentales a tener en cuenta, las responsabilidades de los integrantes e incluso de proponer a la estrategia un valor agregado que conduzca al mejoramiento continuo de la calidad del proceso de desarrollo y los productos, se debe considerar pertinente detenernos en uno de los puntos más importantes de la Gestión de Configuración, la definición del Plan de Gestión de la Configuración, que asociamos en nuestro enfoque como los elementos de juego.

Acoger un plan de Gestión de Configuración presentado en tan pocas palabras resultaría inconveniente, las siguientes consideraciones, presentan un esbozo de los principales elementos a contemplar para la definición de este, sin embargo queda a consideración de los lectores redefinir las prioridades ofrecidas por la propuesta y adicionar o eliminar de la misma, las partes que afecten directamente el desarrollo de los proyectos, teniendo claro el propósito de que tales modificaciones deben redundar en el mejoramiento, soporte y optimización del proceso de gestión de la configuración.

La definición de un plan de Gestión de Configuración “para Ágil” debe incluir sin omisión, los lineamientos para la especificación y generación de los siguientes elementos: La estructura del repositorio donde serán almacenados los Ítems de Configuración del proyecto, los Ítems de Configuración a generar, los estándares de codificación y nombramiento de los Ítems de Configuración y Líneas Base, los momentos y formas en que se generarán las Líneas Base y/o Versiones, las herramientas

de Software y Hardware que serán utilizadas para la Gestión de la Configuración y los roles y responsabilidades de Gestión de la Configuración que asumirán cada uno de los participantes.

Los elementos previamente nombrados son susceptibles de especificar de acuerdo a la experiencia y subjetividad que construye cada organización a través de la ejecución de los proyectos desarrollados bajo metodologías ágiles, sin embargo, la Estructura del Repositorio y los posibles Ítems de Configuración a generar de acuerdo a las practicas que define la metodología y a controlar de acuerdo a las prácticas de Gestión de la Configuración, pueden ser analizados desde una perspectiva más objetiva, situación que nos permite plantear una posible propuesta de implementación para estos elementos, propuesta que finalmente se consolida en un solo artefacto: La Matriz de Ítems de Configuración.

A continuación se presenta una aproximación a una posible definición de la Matriz de

Configuración y la Estructura de Carpetas del Repositorio de Ítems de Configuración y

la Asignación de Permisos por Rol.

CARPETA PRINCIPAL

SUBCARPETA

ITEM DE CONFIGURACION

FORMATO DEL NOMBRE

GESTION PROYECTO

N/A

Plan del Proyecto

<Nombre del Proyecto>_PlanProyecto_<V#.#>.doc

GESTION PROYECTO

N/A

Plan de Gestión de la Configuración

<Nombre del Proyecto>_PlanGestionConfiguracion_<V#.#>.doc

GESTION PROYECTO

N/A

Lista de Riesgos

<Nombre del Proyecto>_ListaRiesgos_<V#.#>.xls

GESTION PROYECTO

N/A

Estandarés de Nombramiento de la organización

EstandaresDeNombramiento.doc

GESTION PROYECTO

BurnDown

Burndown: Graficas que permiten ver la cantidad de trabajo restante a través de tiempo, visualizan el progreso del equipo de trabajo.

<Nombre Corto del Proyecto>_BurnDown_<Sprint#>_<V#.#>.xls

GESTION PROYECTO

ProductBackLog

ProductBackLog: Lista con las funcionalidades de la aplicación ordenadas de mayor a menor importancia.

<Nombre Corto del Proyecto>_ProductBackLog_<Sprint#>_<V#.#>.xls

GESTION PROYECTO

SprintBackLog

SprintBackLog: Lista de funcionalidades que serán desarrolladas durante un sprint especifico

<Nombre Corto del Proyecto>_SprintBackLog_<Sprint#>_<V#.#>.xls

GESTION PROYECTO

StoryCards

Tarjetas que describen los requisitos de los usuarios.

<Nombre Corto del Proyecto>_StoryCards<#>_<Sprint#>_<V#.#>.doc

FUENTES

Sprint<#>\Base_De_Datos

Script de Base de Datos

<Nombre Corto del Proyecto>_Script#_<Tipo><Sprint#>_<V#.#>.sql

FUENTES

Sprint<#>\CODIGO

Código fuente de la aplicación

<Nombre Corto del Proyecto>_Script#

FUENTES

Sprint<#>\INSTALADORES

Instaladores de cada sprint.

<Nombre Corto del Proyecto>_Instalador_Sprint#

OBSERVACIONES

Se sugiere que el nombre corto del proyecto sea de 3 a 4 letras que describan claramente el nombre.

Tabla 1. Matriz de Ítems de Configuración

Figura 1. Estructura del Repositorio de Ítems de Configuración

Figura 1. Estructura del Repositorio de Ítems de Configuración

   

SCRUM MASTER

   

DESARROLLADORES

   

Oficial de Configuración

 

CARPETA PRINCIPAL

SUBCARPETA

Read

ChkIn/ChkOut

Add/Ren/Del

Destroy

Read

ChkIn/ChkOut

Add/Ren/Del

Destroy

Read

ChkIn/ChkOut

Add/Ren/Del

Destroy

GESTION PROYECTO

N/A

























GESTION PROYECTO

N/A

























GESTION PROYECTO

N/A

























GESTION PROYECTO

N/A

























GESTION PROYECTO

BurnDown

























GESTION PROYECTO

ProductBackLog

























GESTION PROYECTO

SprintBackLog

























GESTION PROYECTO

StoryCards

























FUENTES

Sprint<#>\Base_De_Datos

























FUENTES

Sprint<#>\CODIGO

























FUENTES

Sprint<#>\INSTALADORES

























Tabla 2. Asignación de Permisos por Rol.

Referencias

1. Maller Patricio., Ochoa Pablo., Silva Josep.: Agilizando el Proceso de Producción de

Software en un Entorno de CMM Nivel 5. (http://ieeexplore.ieee.org)

4. http://www.agile-spain.com/agilev2/scrum_y_xp_desde_la_experiencia_practica