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

3,748 views
3,536 views

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,748
On SlideShare
0
From Embeds
0
Number of Embeds
530
Actions
Shares
0
Downloads
98
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

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

  1. 1. 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, shouldnt be affected by the implementation of Management Configurations 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 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.
  2. 2. 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 apesar 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 laspracticas esenciales que aseguran la calidad del producto, y que además, hanevidenciado como su aplicación, constituye una mejor manera de proporcionarsatisfacció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 ejecutadobajo 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 desarrolloparalelo cuando este sea puesto en práctica.El papel de la Gestión de la Configuración en las metodologías ágiles debe centrarse enconstruir el entorno necesario para conseguir los objetivos y reforzar el proceso decambio continuo.Los planteamientos descritos en este documento tienen como objetivo definir unapropuesta 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 porseparado resulta insuficiente, puesto que el enfoque de XP se encuentra centrado enlineamientos de tipo técnico y comprende un conjunto de buenas prácticas deprogramación, e implantar SCRUM se encuentra más enfocado hacia la planificación de
  3. 3. 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 desarrolladobajo la hipótesis de que la organización tiene un proceso de desarrollo establecido conpolíticas y prácticas de XP@SCRUM.Además nuestro planteamiento conserva la visión bien conocida por los amantes deSCRUM, en el que este es comparado con el popular deporte Rugby y es esa la razón porla cual en este documento se presentan las ideas principales como un plan de juego, quepara 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íasrelacionadas en el.2 Los principios De la misma forma en que las metodologías ágiles acogen los principios determinadospor 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 propuestapresenta 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.
  4. 4. 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 definidopensando 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ónpueden 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 estasprá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 tenerel conocimiento necesario para ejecutar correctamente las tareas que se encuentrenrelacionadas con las actividades definidas en el plan de Gestión de la Configuración, porlo tanto la organización debe garantizar el entrenamiento previo si se encuentranintegrantes del equipo con un nivel inapropiado de conocimiento..
  5. 5. 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 aplicarlas 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, teniendopresente no cargar en este porciones de código que no compilen y que puedan entorpecerel desarrollo de los demás integrantes del equipo.El principio ágil definido como capacidad de adaptación al cambio, no significaimprovisació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 nuevasprácticas en pro de mejorar el proceso de Gestión de la Configuración, estas deben serdivulgadas 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 puedeproporcionar 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 darun 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
  6. 6. 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 debeproporcionar una forma automatizada que permita relacionarlas entre sí, con el fin deproveer 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 resaltarla Gestión del Conocimiento. Muchos beneficios pueden ser obtenidos a partir de laslecciones 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 sepierde 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 deproponer a la estrategia un valor agregado que conduzca al mejoramiento continuo de lacalidad 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
  7. 7. 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 losparticipantes.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 deConfiguración y la Estructura de Carpetas del Repositorio de Ítems de Configuración yla Asignación de Permisos por Rol.
  8. 8. CARPETA PRINCIPAL SUBCARPETA ITEM DE CONFIGURACION FORMATO DEL NOMBREGESTION PROYECTO N/A Plan del Proyecto <Nombre del Proyecto>_PlanProyecto_<V#.#>.docGESTION PROYECTO N/A Plan de Gestión de la Configuración <Nombre del Proyecto>_PlanGestionConfiguracion_<V#.#>.docGESTION PROYECTO N/A Lista de Riesgos <Nombre del Proyecto>_ListaRiesgos_<V#.#>.xlsGESTION PROYECTO N/A Estandarés de Nombramiento de la organización EstandaresDeNombramiento.docGESTION PROYECTO BurnDown Burndown: Graficas que permiten ver la cantidad de <Nombre Corto del Proyecto>_BurnDown_<Sprint#>_<V#.#>.xls trabajo restante a través de tiempo, visualizan el progreso del equipo de trabajo.GESTION PROYECTO ProductBackLog ProductBackLog: Lista con las funcionalidades de la <Nombre Corto del aplicación ordenadas de mayor a menor importancia. Proyecto>_ProductBackLog_<Sprint#>_<V#.#>.xlsGESTION PROYECTO SprintBackLog SprintBackLog: Lista de funcionalidades que serán <Nombre Corto del desarrolladas durante un sprint especifico Proyecto>_SprintBackLog_<Sprint#>_<V#.#>.xlsGESTION PROYECTO StoryCards Tarjetas que describen los requisitos de los usuarios. <Nombre Corto del Proyecto>_StoryCards<#>_<Sprint#>_<V#.#>.docFUENTES 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. Tabla 1. Matriz de Ítems de Configuración
  9. 9. Figura 1. Estructura del Repositorio de Ítems de Configuración
  10. 10. SCRUM MASTER DESARROLLADORES Oficial de ConfiguraciónCARPETA PRINCIPAL SUBCARPETA Read ChkIn/ChkOut Add/Ren/Del Destroy Read ChkIn/ChkOut Add/Ren/Del Destroy Read ChkIn/ChkOut Add/Ren/Del DestroyGESTION 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.
  11. 11. Referencias1. 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

×