gestion de configuracion para programacion extrema

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.e du.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 pr oceso ágil que se puede utilizar par a gestionar y contr olar complejos prog ramas informáticos y el desarrollo de productos utilizando el modelo de desarrollo iterativo e incremental, http://www.controlchaos.com.

Upload: neubaten

Post on 07-Jul-2015

375 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Gestion de Configuracion Para Programacion Extrema

5/9/2018 Gestion de Configuracion Para Programacion Extrema - slidepdf.com

http://slidepdf.com/reader/full/gestion-de-configuracion-para-programacion-extrema

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, ColombiaUniversidad EAFIT

{ivasque2, sgarci10}@eafit.edu.co

Resumen. Establecer una propuesta de implementación de Gestión de laConfiguración aplicable a metodologías ágiles, representa un reto interesante. Lasmetodologías ágiles cuyas bases promueven la disminución de los problemasgenerados por la rigidez asociada a los métodos tradicionales, no deberían verseafectadas 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 unacercamiento a una posible propuesta de implementación para proyectosdesarrollados 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 Managementapplicable to Agile Methodologies represents an interesting challenge. The AgileMethodologies, whose bases promote the decrease of problems generated by therigidness associated to the traditional methods, shouldn't be affected by theimplementation of Management Configuration's Practices, but on the contrary, besupported and optimized. This article presents an approach to a possible

implementation proposal for projects developed with the integration of the XP andSCRUM 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 delas llamadas Metodologías Agiles de desarrollo de software más exitosas de los tiempos recientes, tomado dehttp://www.programacionextrema.org.

2 SCRUM es un proceso ágil que se puede utilizar para gestionar y controlar complejos programasinformáticos y el desarrollo de productos utilizando el modelo de desarrollo iterativo e incremental,http://www.controlchaos.com.

Page 2: Gestion de Configuracion Para Programacion Extrema

5/9/2018 Gestion de Configuracion Para Programacion Extrema - slidepdf.com

http://slidepdf.com/reader/full/gestion-de-configuracion-para-programacion-extrema

1 Introducción

Las metodologías ágiles han surgido como una alternativa a los procesos de desarrollode software tradicionales, caracterizados por su escasa flexibilidad y su propuesta degeneració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 demenor alcance.

En respuesta a esta situación, las metodologías ágiles emergen como una posiblesolución orientada a suplir las necesidades metodológicas existentes en pequeños ymedianos proyectos, aportando un alto grado de simplicidad que no renuncia a las  practicas esenciales que aseguran la calidad del producto, y que además, hanevidenciado 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 ydisciplina 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, estableciendoasí a la Gestión de la Configuración como una disciplina fundamental que proporciona elsoporte 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 yconstituye un verdadero reto, ya que su implementación, como en cualquier otrametodologí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 decambio 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 lametodología enunciada, estableciendo un conjunto de prácticas  simples y evaluando lascondiciones y características de los elementos y entidades identificados, tales como: elequipo de trabajo y sus responsabilidades, la distribución de tareas, las actividades deintegración y la herramienta de apoyo usada para soportar la Gestión de laConfiguración.

Para el desarrollo de esta propuesta se ha elegido como principal metodología deaná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 enlineamientos 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: Gestion de Configuracion Para Programacion Extrema

5/9/2018 Gestion de Configuracion Para Programacion Extrema - slidepdf.com

http://slidepdf.com/reader/full/gestion-de-configuracion-para-programacion-extrema

  proyectos. En algunos documentos de referencia esta integración de metodologías esnombrada como XP@SCRUM3.

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

El enfoque presentado en este documento puede ser tomado como una propuesta viablede implementación, sin embargo, debe ser sometido a consideración de lasorganizaciones antes de ser adaptado al esquema de trabajo, ya que como propuestaacadé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 Cards6  [3] etc. por tratarse de la terminología exclusiva de las metodologíasrelacionadas 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 ysimplicidad, y que cada metodología define un compendio de principios particulares,tales como: simplicidad, comunicación, retroalimentación y coraje para XP; equiposauto gestionados, reuniones diarias e iteraciones cortas para SCRUM; esta propuesta  presenta algunos principios que deberían tenerse en cuenta para la aplicación de laGestió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 significativoen 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: Gestion de Configuracion Para Programacion Extrema

5/9/2018 Gestion de Configuracion Para Programacion Extrema - slidepdf.com

http://slidepdf.com/reader/full/gestion-de-configuracion-para-programacion-extrema

 

A continuación se enumeran algunos elementos que deben tenerse en cuenta como reglaso 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óny aplicación del mismo, al que hacer de los integrantes de los equipos de trabajo de laorganización, esto brindará mejores posibilidades de que la ejecución de las practicas ylineamientos definidos no entorpezcan el desarrollo de los proyectos.

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

Automatización. Es necesario automatizar las tareas relacionadas con la Gestión de laConfiguración tanto como sea permitido, de forma que la agilidad perseguida con laaplicación de las metodologías ágiles no sea afectada y se involucre al proceso, elmí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 laConfiguración encaja perfectamente en XP@SCRUM, no hay ningún punto de colisiónentre las metodologías, por el contrario, son complementarias y paralelas.

Antes de iniciar los proyectos, debe negociarse con los clientes su responsabilidad frentelas actividades de Gestión de la Configuración, estableciendo la posición de laorganizació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 queexistiesen. 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 quedeben tener los integrantes del equipo vinculados a proyectos desarrollados bajometodologías ágiles, se recomienda que todos los participantes del proyecto deben tener el conocimiento necesario para ejecutar correctamente las tareas que se encuentrenrelacionadas 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 encuentranintegrantes del equipo con un nivel inapropiado de conocimiento..

Page 5: Gestion de Configuracion Para Programacion Extrema

5/9/2018 Gestion de Configuracion Para Programacion Extrema - slidepdf.com

http://slidepdf.com/reader/full/gestion-de-configuracion-para-programacion-extrema

 Es necesario además, vincular el rol de Oficial de la Configuración a la metodología dedesarrollo, bien sea porque es asignado a uno de los integrantes del equipo o porque esasignado como única tarea a una persona. Este rol es requerido por la Gestión de laConfiguración, y debido a su importancia y criticidad como ente centralizador eintegrador, 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 nombramientodefinidos, desarrollar código legible y entendible que contenga comentarios que precisenlos 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 deConfiguración está en su correcta  planificación y ejecución; la primera es vital  y lasegunda evidente.

La institucionalización del uso las prácticas de Gestión de la Configuración dentro de laorganización es imprescindible; en consecuencia, el plan de Gestión de Configuraciónque 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 momentoque las actividades definidas en él entorpecen la ejecución del proceso de desarrollo ensí, este debe replantearse teniendo especial cuidado en que los cambios no impactendrasticamente 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ónque ítems de configuración estarán incluidos en los diferentes tipos de control y etapasdel proyecto. Una parte importante de la planificación incluye tener definidas lasestructuras qué deben contener los repositorios para el almacenamiento y clasificaciónde los ítems de configuración y qué permisos deben estar relacionados a cada uno de losintegrantes 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 delíneas base y/o nuevas versiones. Las metodologías ágiles y su desarrollo en iteracionesmá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 indefectiblementeconduciría al retraso en las entregas al cliente.

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

Page 6: Gestion de Configuracion Para Programacion Extrema

5/9/2018 Gestion de Configuracion Para Programacion Extrema - slidepdf.com

http://slidepdf.com/reader/full/gestion-de-configuracion-para-programacion-extrema

deben ser generadas después de completar exitosamente la ejecución de pruebasautomáticas, de igual forma la herramienta debe permitir una integración con lasherramientas 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 denombramiento, el Código Fuente o Sprint , el Sprint BackLog , el  Product BackLog , losSprint   BurnDown y las Story Cards, para estas últimas debe crearse algún mecanismo dedigitalización, escanearlas o digitarlas, pero controlarlas y además, debido a que son elsoporte 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 laorganización, buscar el mecanismo para convertir el conocimiento y experiencia de susdesarrolladores en conocimiento explicito de una forma natural, y que esto por ejemplocontribuya 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 consideracionesfundamentales 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 pertinentedetenernos en uno de los puntos más importantes de la Gestión de Configuración, ladefinición del Plan de Gestión de la Configuración, que asociamos en nuestro enfoquecomo los elementos de juego.

Acoger un plan de Gestión de Configuración presentado en tan pocas palabras resultaríainconveniente, las siguientes consideraciones, presentan un esbozo de los principaleselementos a contemplar para la definición de este, sin embargo queda a consideración delos lectores redefinir las prioridades ofrecidas por la propuesta y adicionar o eliminar dela misma, las partes que afecten directamente el desarrollo de los proyectos, teniendoclaro 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 sinomisión, los lineamientos para la especificación y generación de los siguienteselementos: La estructura del repositorio donde serán almacenados los Ítems deConfiguración del proyecto, los Ítems de Configuración a generar, los estándares decodificación y nombramiento de los Ítems de Configuración y Líneas Base, losmomentos y formas en que se generarán las Líneas Base y/o Versiones, las herramientas

Page 7: Gestion de Configuracion Para Programacion Extrema

5/9/2018 Gestion de Configuracion Para Programacion Extrema - slidepdf.com

http://slidepdf.com/reader/full/gestion-de-configuracion-para-programacion-extrema

de Software y Hardware que serán utilizadas para la Gestión de la Configuración y losroles 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 laexperiencia y subjetividad que construye cada organización a través de la ejecución delos proyectos desarrollados bajo metodologías ágiles, sin embargo, la Estructura delRepositorio y los posibles Ítems de Configuración a generar de acuerdo a las practicasque define la metodología y a controlar de acuerdo a las prácticas de Gestión de laConfiguración, pueden ser analizados desde una perspectiva más objetiva, situación quenos permite plantear una posible propuesta de implementación para estos elementos,  propuesta que finalmente se consolida en un solo artefacto:   La Matriz de Ítems deConfiguració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 yla Asignación de Permisos por Rol.

Page 8: Gestion de Configuracion Para Programacion Extrema

5/9/2018 Gestion de Configuracion Para Programacion Extrema - slidepdf.com

http://slidepdf.com/reader/full/gestion-de-configuracion-para-programacion-extrema

 

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 detrabajo 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 laaplicación ordenadas de mayor a menor importancia.

<Nombre Corto delProyecto>_ProductBackLog_<Sprint#>_<V#.#>.xls

GESTION PROYECTO SprintBackLog SprintBackLog: Lista de funcionalidades que serándesarrolladas durante un sprint especifico

<Nombre Corto delProyecto>_SprintBackLog_<Sprint#>_<V#.#>.xls

GESTION PROYECTO StoryCards Tarjetas que describen los requisitos de los usuarios. <Nombre Corto delProyecto>_StoryCards<#>_<Sprint#>_<V#.#>.doc

FUENTES Sprint<#>\Base_De_Datos Script de Base de Datos <Nombre Corto del

Proyecto>_Script#_<Tipo><Sprint#>_<V#.#>.sqlFUENTES 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: Gestion de Configuracion Para Programacion Extrema

5/9/2018 Gestion de Configuracion Para Programacion Extrema - slidepdf.com

http://slidepdf.com/reader/full/gestion-de-configuracion-para-programacion-extrema

 

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

Page 10: Gestion de Configuracion Para Programacion Extrema

5/9/2018 Gestion de Configuracion Para Programacion Extrema - slidepdf.com

http://slidepdf.com/reader/full/gestion-de-configuracion-para-programacion-extrema

 

SCRUM MASTER DESARROLLADORES Oficial de Configuració

CARPETA PRINCIPAL SUBCARPETA Read ChkIn/ChkOut Add/Ren/Del Destroy Read ChkIn/ChkOut Add/Ren/Del Destroy Read ChkIn/ChkOut Add/Ren/D

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: Gestion de Configuracion Para Programacion Extrema

5/9/2018 Gestion de Configuracion Para Programacion Extrema - slidepdf.com

http://slidepdf.com/reader/full/gestion-de-configuracion-para-programacion-extrema

Referencias

1. Maller Patricio., Ochoa Pablo., Silva Josep.: Agilizando el Proceso de Producción deSoftware 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