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

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.

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

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

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 XP1 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.

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

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

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

proyectos. En algunos documentos de referencia esta integración de metodologías es

nombrada como XP@SCRUM3.

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 BackLog4, Sprint5,

Story Cards6 [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.

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

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..

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

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

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

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

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

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.

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

Tabla 1. Matriz de Ítems de Configuración

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.

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

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

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

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.

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

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)

2. http://www.agilemanifesto.org.

3. http://www.controlchaos.com.

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