Upload
sorey-garcia
View
2.989
Download
0
Embed Size (px)
Citation preview
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.
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@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.
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.
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.
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)
2. http://www.agilemanifesto.org.
3. http://www.controlchaos.com.
4. http://www.agile-spain.com/agilev2/scrum_y_xp_desde_la_experiencia_practica