SciELO - Scientific Electronic Library Online

 
vol.77 número164EDGE DETECTION USING THE CO-OCCURRENCE MATRIX: AN APPLICATION TO THE SEGMENTATION OF COFFEE CHERRIES IMAGESBIODIESEL FROM BIOETHANOL AND PALM OIL. TECHNO-ECONOMIC STUDY índice de autoresíndice de assuntospesquisa de artigos
Home Pagelista alfabética de periódicos  

Serviços Personalizados

Journal

Artigo

Indicadores

Links relacionados

  • Em processo de indexaçãoCitado por Google
  • Não possue artigos similaresSimilares em SciELO
  • Em processo de indexaçãoSimilares em Google

Compartilhar


DYNA

versão impressa ISSN 0012-7353versão On-line ISSN 2346-2183

Dyna rev.fac.nac.minas v.77 n.164 Medellín out./dez. 2010

 

MEJORA DE PROCESOS DE SOFTWARE ÁGIL CON AGILE - SPI PROCESS

AGIL SOFTWARE PROCESS IMPROVEMENT WITH AGILE SPI - PROCESS

 

CÉSAR PARDO
Universidad del Cauca, Colombia, cpardo@unicauca.edu.co

JULIO ARIEL HURTADO
Universidad del Cauca, Colombia, ahurtado@unicauca.edu.co

CÉSAR A. COLLAZOS
Universidad del Cauca, Colombia, ccollazo@unicauca.edu.co

 

Recibido para revisar Febrero 13 de 2009, aceptado Julio 17 de 2009, versión final Julio 21 de 2009

 


RESUMEN: Motivar la aplicación de proyectos de mejora de procesos en las empresas de desarrollo de software iberoamericanas, en su gran mayoría Micro, Pequeñas y Medianas Empresas Desarrolladoras de Software (MiPyMEs_DS) es una necesidad imperante para la búsqueda de una industria de software que sea competitiva no solo en contextos regionales sino también internacionales. Los modelos internacionalmente reconocidos, representan alto riesgo en su aplicación para una MiPyMES_DS, esto debido quizá a su gran inversión en dinero, tiempo, recursos, difícil gestión, además de la complejidad de las recomendaciones y un retorno de la inversión a largo plazo. El objetivo de este trabajo es presentar a Agile SPI - Process como un proceso de mejora de procesos basado principalmente en metodologías y principios ágiles, requerimientos livianos y adaptaciones de modelos internacionales. De la misma manera en el artículo se presentan los resultados obtenidos en la implementación de Agile SPI - Process en varias MiPyMEs_DS de Iberoamérica y el sur occidente de Colombia.

PALABRAS CLAVE: Procesos Ágiles, Micro Pequeñas y Medianas Empresas (MIPyMEs), Proceso Software, Mejora de Procesos Software (SPI), Grupo de Mejora de Procesos de Software (TSPI).

ABSTRACT: The idea of motivate the Iberoamerican software development companies, in particular Small and medium software development enterprises (SME's), to improve their processes is a real necessity looking for a competitiveness and international software industry not only in national but international markets. The international models are expensive and are not easy to implement in SME's due to money investment, poor management, time, resources, and the complexity in the recommendations suggested for the International Standards. The main goal of this paper is to present a Process called Agile SPI - Process, as a process that intends to improve the software process based mainly on easy principles and methodologies, soft requirements and adaptation to international models. This paper also presents Process the results obtained in the implementaion of Agile SPI - Process in some companies in Iberoamerica and at the South-West Region in Colombia.

KEYWORDS: Agile, Small and Medium Enterprises (SME's), Software Process, Software Process Improvement (SPI), Team Software Process Improvement (TSPI).


 

1. INTRODUCCIÓN

El esquema tradicional de SPI (Software Process Improvement) ha demostrado ser efectivo en proyectos de gran envergadura donde se exige tener un riguroso control sobre el "qué" y el "cómo" de las cosas. Sin embargo, este enfoque no resulta ser el más adecuado para MiPyMEs_DS que deseen implementar un proyecto de SPI, ya que en este tipo de industria el contexto es muy cambiante y al igual que en sus proyectos de desarrollo software, necesitan reducir drásticamente los tiempos de los proyectos y costos relacionados sin alterar la calidad del mismo [1], [2]. "Casi todos los autores están de acuerdo en que las características especiales de las pequeñas empresas hacen que los programas de mejora de procesos deban aplicarse de un modo particular y visiblemente diferente a como se hace en las grandes organizaciones, y que esto no es tan sencillo como el hecho de considerar dichos programas de mejora versiones a escala de las grandes compañias" [1]. Una prueba de ello es que para muchos equipos de SPI, la implementación de modelos de mejora tradicionales en su gran mayoría pesados y burocráticos, les resulta muy distante, por ejemplo, no es lo mismo mejorar los procesos al interior de equipos con alta rotación, y gran número de participantes, que mejorarlos en un equipo pequeño y estable [2]. El contexto es totalmente diferente y cambiante.

Ante esta situación, la adaptación de las metodologías ágiles a los proyectos de mejora de procesos de software aparece como una posible respuesta para suplir esta necesidad metodológica, primero por estar orientados para proyectos pequeños, y segundo por obtener resultados orientados al valor, elevada simplificación de actividades, soluciones a medida y rápido ROI (Return On Investment). Dicha adaptación y ajuste permite mapear la gestión de proyectos de Software al rango de proyectos de SPI en las MiPyMEs_DS, en las cuales los equipos de mejora son pequeños, con plazos reducidos, requisitos de mejora volátiles, rápido retorno de la inversión, poca disponibilidad de recursos humanos, económicos, de procesos detallados, tiempo, etc. [1],[8].

El interés por agilizar los proyectos de SPI ha venido creciendo últimamente, en especial cuando la adaptación y definición de modelos de calidad y mejora de procesos de software para MiPyMEs_DS demuestra ser un punto clave y de rápido crecimiento en el contexto iberoamericano. Prueba de ello son los proyectos de investigación desarrollados en México con la definición del Modelo de Procesos para la Industria del Software (MoProSoft) [3], Colombia con su Framework Agile SPI [4], Brasil con su Modelo de Referencia para la Mejora de Proceso de Software (MR mps) [5] y el proyecto "Mejora de Procesos para Fomentar la Competitividad de la Pequeña y Mediana Industria del Software de Iberoamérica" (COMPETISOFT).

En este artículo se presenta la adaptación de algunos principios y metodologías ágiles en el proceso para la mejora de procesos que hemos denominado Agile SPI - Process. El objetivo es presentar cómo la definición de pautas y criterios en las metodologías de desarrollo de software ágil, benefician la gestión de proyectos de SPI en el sector más representativo de la industria del software, las MiPyMEs [19]. Además de la presente introducción, el artículo está organizado como sigue. En la sección 2 se presenta una descripción de las metodologías Agiles utilizadas. Posteriormente, se describe la vista Agil de SPI Process. Luego se describen los requerimientos fundamentales para un SPI liviano. La sección 5 se centra en el vértice humano con la descripción de la conformación y gestión de equipos de mejoramiento ágil y liviano, presentando sus principales características, las iteraciones incrementales orientadas al valor y su correspondencia con el proceso de desarrollo SCRUM. En la sección 6 se presentan los estudios de caso en los que ha sido y se encuentra siendo aplicado Agile SPI - Process, y finalmente en la sección 7 aparecen las conclusiones y trabajo futuro.

 

2. METODOLOGÍAS ÁGILES INVOLUCRADAS

El objetivo principal de las metodologías ágiles es el de esbozar los valores y principios que deberían permitir a los equipos de trabajo, desarrollar software rápidamente y responder a los cambios que pudieran surgir a lo largo del proyecto [2]. Con la adaptación de estas se pretenden ofrecer una alternativa a los proyectos de SPI tradicionales, caracterizados por ser rígidos y dirigidos por la documentación que se genera en cada una de las actividades desarrolladas. A continuación se resumen algunos de los conceptos, modelos y técnicas adaptadas:

El Manifiesto Ági es, un documento que resume la esencia de las metodologías ágiles, y una serie de principios que valora principalmente los siguientes aspectos [2]: (1) Al individuo y las interacciones del equipo de desarrollo sobre el proceso y las herramientas; (2) Desarrollar software que funciona, más que conseguir una buena documentación; (3) La colaboración con el cliente, más que la negociación de un contrato; (4) Responder a los cambios, más que seguir estrictamente un plan.

Programación Extrema (XP -Extreme Programming) [24], este enfoque se centrada en potenciar las relaciones interpersonales como clave para el éxito en desarrollo de software, promover el trabajo en equipo, preocuparse por el aprendizaje de los desarrolladores y propiciar un buen clima de trabajo.

SCRUM [17], es un proceso de desarrollo que además de facilitar la gestión de proyectos con un rápido cambio de requisitos, permite llevar a cabo desarrollos de software iterativos e incrementales. Por lo general es usado en ambientes de desarrollo ágiles.

Lean Development [23], esta metodología de desarrollo tiene como precepto la eliminación de basura (artefactos que no tienen utilidad) a través de la mejora constante, haciendo que el producto fluya a instancias del cliente para hacerlo lo más completo posible, entre otras [9].

 

3. VISTA ÁGIL DE AGIL SPI - PROCESS

Agile SPI - Process además de integrar características ágiles, definir el qué hacer, el cómo hacerlo, ser sencillo de leer, interpretar y aplicar, también propone una infraestructura de trabajo detallada, define técnicas de gestión para facilitar la mejora y adopta una metodología para la conformación efectiva de los equipos de trabajo en torno a la infraestructura y un conjunto detallado de las disciplinas que inciden de manera transversal durante un proyecto de SPI como pieza fundamental del cómo hacerlo [8]. En resumen Agile SPI - Process se caracteriza por:

  1. Guiar la mejora de los procesos de desarrollo de software, manteniendo el nivel de agilidad que la empresa desee.
  2. Adaptar principios y características de modelos y metodologías de gestión para el desarrollo ágil y liviano.
  3. Estar adecuado a una industria dinámica, creativa, innovadora e incierta como lo es la industria del software. Una industria orientada al conocimiento organizacional y al talento humano como diferenciadores competitivos.

 

4. REQUERIMIENTOS Y PRINCIPIOS ÁGILES EN LA MEJORA DE PROCESOS SOFTWARE

Para la mejora de procesos se han identificado una serie de requerimientos mínimos que debería tener un proyecto de SPI. En la figura 1, se pude observar los principios básicos asociados a los requerimientos, a los cuales hemos adaptado una serie de principios básicos que permiten solventar dichas necesidades.


Figura 1.
Principios Básicos de requerimientos
Figure 1. Requirements Basic Principles

4.1 Requerimientos en los proyectos de SPI
La preocupación de las MiPyMEs_DS se orienta en como aprovechar todo el conocimiento adquirido, la experiencia ganada y la tecnología desarrollada para impactar positivamente la mejora de los procesos en sus realidades específicas. Cuatro requerimientos fundamentales para un SPI liviano, emergen de la necesidad de satisfacer esas necesidades [12] (ver figura 1):

R1. Ser efectivo y producir buenos resultados [p.e., ciclos de desarrollo más cortos, detección de errores y retorno de la inversión más temprana].
R2. Ser incremental en términos de que deberá ser factible de implementarse inicialmente con poco esfuerzo y luego ser extendido incrementalmente mediante ciclos cortos que coincidan con los ciclos de desarrollo de los proyectos a los cuales se apliquen.
R3. Proveer resultados rápidos y tangibles de tal forma que pueda justificarse su continuación.
R4. Utilizar tecnologías informáticas existentes y probadas en este campo de aplicación.

4.2 Principios Ágiles en la Mejora de Procesos
La principal diferencia entre un proceso ágil y uno burocrático se encuentra en la orientación a la entrega de valor, el apoderamiento de los individuos a la reflexión constante sobre la forma de hacer el trabajo, a las característica de adaptación a medida de los proyectos, sencillez, fácil aprendizaje y aplicación, [2]. Con el propósito de establecer una línea de trabajo ágil basada en las características mencionadas anteriormente, Agile SPI - Process define y adopta del Manifiesto Ágil una serie de principios que deberían ser considerados como pilares en la gestión de un proyecto de SPI ágil y efectivo. A continuación hacemos un resumen de dichos principios.

P1. Satisfacer la necesidad del cliente. La prioridad más alta deberá ser el satisfacer la necesidad del cliente a través de la entrega temprana y continua de mejoras significativas.

P2. El diagnóstico es una fase clave. El diagnóstico es un fase clave en cualquier proyecto de SPI, puesto que permite iedentificar y las fortaleces y debilidades de una organización frente a un modelo de referencia.

P3. Entrega temprana de Mejoras. Las entregas tempranas de mejora obligan a que se generen ciclos cortos de visibilidad de los proyectos, mejorando la percepción de los mismos y garantizando la entrega frecuente de valor al negocio, además de un rápido ROI. Esto puede llevarse a cabo mediante la incorporación de varias iteraciones incrementales a la vez en un mismo proyecto de SPI. Las iteraciones de mejora son mini-ciclos o mini-proyectos de SPI pero con objetivos mucho más pequeños y específicos en comparación al proyecto de SPI general.

P4. Reuniones cara a cara La forma más eficiente y efectiva de comunicar información bilateral dentro de un equipo de mejora es mediante la conversación cara a cara. Esto obliga a que continuamente se estén evaluando las labores, así el conocimiento se expande y los problemas se solucionan entre más personas fortaleciendo la colaboración entre ellas.

P5. Individuos motivados. Gestionar proyectos en torno a individuos y grupos de trabajo motivados hacia la mejora de procesos. Brindar todo el apoyo, respaldo, confianza y herramientas necesarias para que realicen las tareas.

P6. Medición continua del progreso. La madurez del proceso, como el desempeño promedio de los proyectos, debe ser la medida primaria de la mejora del progreso. Las mediciones base para medir el desempeño son la productividad y la calidad (enfocarse en el producto según: los tiempos de desarrollo, gestión, trazabilidad, niveles de calidad con respecto a los requisitos de mejora, etc.).

P7. Mejora y Aprendizaje continuos. El trabajo deberá ser continuo e indefinido a través de ciclos de mejora en el tiempo de la misma manera como el aprendizaje a través de cada uno de los ciclos como resultado de la experiencia ganada para mejorar la toma de decisiones.

P8. Infraestructura de trabajo para gestionar proyectos de SPI. Soportar el proyecto de mejora sobre una infraestructura de trabajo adecuada. Agile SPI - Process provee una infraestructura técnica y de gestión para la creación de grupos frente a una serie de actividades, roles establecidos y técnicas de colaboración como el TSP para conformación efectiva de grupos de trabajo con calidad [26].

P9. Minimizar la documentación. Minimizar la documentación, hacer mayor énfasis en aquella que represente gran valor para la gestión del proyecto de mejora y no una pérdida de esfuerzo, tiempo y dinero.

P10. Independencia del modelo de referencia a seguir. Permitir gestionar proyectos de mejora independientemente del modelo de calidad o método de evaluación que se elija

Basados en los anteriores principios, se definieron los requerimientos de Agile SPI - Process para determinar cuando y cómo un proyecto de mejora puede ser clasificado como un SPI Liviano.

4.3 Características ágiles en el ciclo de vida
Si bien, la agilidad viene dada por la búsqueda de la interiorización y aplicación de los principios ágiles, el ciclo de vida de Agile SPI - Process expone una estructura de proceso para guiar el alcance de los objetivos y para soportar la aplicación de los principios. El ciclo de vida de Agile SPI es ágil y liviano porque delimita un camino mínimo pero completo para ejecutar un ciclo de mejora alcanzable por empresas MIPyMES que no cuentan con la disponibilidad humana y económica suficiente para emprender un proyecto SPI. La Figura 2 muestra el modelado bajo SPEM [13] de las fases que componen a Agile SPI - Process: Instalación, Diagnóstico, Formulación, Mejora y Revisión del proyecto.


Figura 2.
Modelado bajo SPEM de las fases de Agile SPI - Process
Figure 2. Agile SPI - Process modelling on SPEM

La Figura 3, muestra Agile SPI - Process como un proceso, iterativo e incremental, basado en lo que denomina casos de mejora. Los casos de mejora son unidades atómicas a mejorar en las áreas de procesos que se han seleccionado de acuerdo al nivel de prioridades establecida por el negocio. Los casos de mejora permiten obtener o arrojar resultados rápidos. Estas iteraciones son mini-ciclos de mejora que hacen que el proyecto SPI sea orientado al valor, una de las características claves para poder considerarlo como ágil. Las iteraciones de mejora desarrollan un conjunto de casos de mejora.


Figura 2.
Agile SPI - Process: Un Proceso de mejora iterativo e incremental
Figura 2. Agile SPI - Process: An iterative and incremental improvement process

El arrojar resultados rápidos de mejora permitirá que las mejoras sean visibles desde las fases tempranas del proyecto SPI, esto brinda agilidad y rapidez en la medida que las iteraciones de mejora brindan retroalimentación. El orden en que se realicen las iteraciones y sus respectivos casos de mejora depende de los criterios de priorización que la empresa defina de acuerdo a sus objetivos de negocio y los diagnósticos realizados.

La mejora rápida y permanente de los procesos permite motivar al personal frente al proyecto de mejora y facilita mitigar riesgos del proyecto en las fases tempranas, en especial en lo referente a aspectos económicos, de motivación, incertidumbre y poca experiencia. Esta característica permite enfocar el mayor esfuerzo en las áreas que la empresa considere más importantes para su negocio y no correr riesgos en un proyecto de SPI innecesario o bien dimensionado.

El ciclo de vida es altamente influenciado por los modelos de ciclo de vida iterativo e incremental presente en muchos procesos de desarrollo tales como RUP, XP, SCRUM, entre otros; dado que los proyectos de mejora cubren extensos requisitos e impactan toda la estructura organizacional de cualquier empresa, Agile SPI - Process adapta características de estos modelos para crear un proceso de mejora completo, ágil, con menos personal y sensible a las actividades referentes a la gestión [p.ej., reuniones, documentos, infraestructura, etc.].

En la anterior figura, además del concepto de casos de mejora introducido se visualiza el paralelismo que puede existir entre iteraciones de mejora, esta característica es ventajosa en el sentido de que se pueden introducir y desarrollar mejoras en áreas de procesos donde exista una clara independencia.

En los procesos de certificación, son muy importantes los modelos de evaluación, ya que nos permiten tomar decisiones y guiar el proyecto con respecto a los resultados obtenidos. Así mismo, permiten estimar el grado de madurez con base a un referente o modelo de calidad [14] para determinar las oportunidades de mejora según las fortalezas y debilidades identificadas.

 

5. EL VÉRTICE HUMANO DE LA AGILIDAD EN AGILE SPI - PROCESS: LA CONFORMACIÓN Y GESTIÓN DE EQUIPOS DE MEJORAMIENTO TSPI+SCRUM

El TSP [15] es un modelo desarrollado por el Software Engineering Institute (SEI) que ha resultado ser muy valioso para guiar a los ingenieros y sus directores en el uso de métodos para la conformación de equipos efectivos de trabajo. Este modelo fue adaptado en Agile SPI - Process para usar los valores propuestos y garantizar un mejor trabajo en los equipos que se recomiendan crear (ver [26]). Esta tecnica la hemos denominado Team Software Process Improvement (TSPI) [8]. TSPI provee un contexto disciplinado y ágil para el trabajo de mejora, generando consecuencias positivas dentro de cualquier proyecto, uno de ellos es permitir a los participantes y personal relacionado con la mejora, llevar a cabo un trabajo más eficiente, ordenado, serio, orientado al valor y paralelo a sus habilidades y conocimientos, realizando así un trabajo más eficaz. Todo esto posible siempre y cuando se mantenga la premisa de que los equipos se encuentren adecuadamente conformados, convenientemente entrenados, organizados con miembros expertos y conducidos eficazmente.

Gracias al TSP adaptado a la mejora de procesos de software en Agile SPI - Process, el personal y demás personas involucradas en la mejora, pueden realizar un seguimiento más real y ordenado no solo de los grupos de mejora que conforman el proyecto, sino también con respecto a la evaluación periódica y su planificación.

Integrado al TSPI se encuentra el modelo de gestión del ciclo de vida de propuesto en SCRUM, este proceso por orientar sus esfuerzos al valor, por ser dinámico, adaptable [16], iterativo e incremental para desarrollar cualquier producto o manejar y gestionar cualquier trabajo como complemento a otras metodologías [17], ha permitido llevar a cabo la implementación y ejecución de iteraciones de mejora de una manera más completa, ordenada y ágil (ver [21], [22] y [20]). En el siguiente apartado describiremos de una mejor manera dicha adaptación.

5.1 Las iteraciones de Agile SPI - Process y su correspondencia con el proceso de desarrollo de software SCRUM
Agile SPI - Process define una iteración como un WorkDefinition de SPEM [13], el cual se caracteriza por tener un "milestone" (serie de fechas de programación) orientado al valor, y corresponde a un mini-ciclo de mejora que permite adelantar el desarrollo y gestión de un conjunto de casos de mejora de manera independiente. La iteración es el concepto integrador entre fases y disciplinas. Las fases pueden ser descompuestas en el tiempo y el espacio (equipos) por iteraciones, y una iteración, al ser por sí misma un proyecto de mejora pero en menor escala, es definida a partir de un conjunto de disciplinas de acuerdo a la fase en la que se encuentre y a las características del proyecto de SPI. Las iteraciones en Agile SPI - Process son un agregado muy importante en la mejora de procesos de software, ya que de esta manera se pueden desarrollar mejoras independientes. La clave está en desarrollar iteraciones en áreas que sean independientes de otras, de esta manera el trabajo en ellas se puede realizar paralelamente, sin que el trabajo de mejora que en ellas se desarrolle ocasione problemas, no obstante hay que tener en cuenta que puede ocurrir el caso en el que exista una dependencia entre áreas (ver [8]), procesos o subprácticas, la definición depende del modelo de calidad que se haya elegido seguir como base, [p.e., para ISO se habla de procesos y subprocesos, en CMMI de prácticas y subprácticas, en ese caso hay que estudiar cuál es el impacto arrojado que podría crear un caso de mejora y con base en esto ordenar la manera en cómo se priorizan las mejoras en los demás casos de mejora [25].

Algo en lo que hemos considerado importante ahondar y detallar en este trabajo, es que las iteraciones para los casos de mejora en las fases de Diagnóstico, Formulación y Mejora pueden ser desarrollados de manera similar a la forma como se lleva a cabo en SCRUM con los Sprints. En cada una de las corridas o sprints hay tres fases: pre-juego, juego y post-juego, las cuales fueron adaptadas al contexto de un proyecto de mejora llamándolas: pre-mejora, mejora y pos-mejora [17].

De la misma manera, los casos de mejora pueden verse como los Sprint Backlog o Listado de Requisitos de Mejora en nuestro caso, los cuales han sido desarmados en necesidades de mejora más pequeñas, y éstos en su totalidad y respectiva correspondencia conformarían un área específica, que podrían verse como un listado priorizado de rasgos requeridos por la mejora, listado que ha sido obtenido por la valoración y posterior análisis realizado a la empresa [18]. La priorización de las áreas de mejora permite planificar iterativamente entregas de valor a la organización, y enfocar el esfuerzo inicialmente en las áreas más estratégicas para la organización. Cada organización en su proyecto de mejora deberá priorizar y actualizar continuamente la prioridad de los casos de mejora.

Agile SPI - Process incluye en su manual de Técnicas y Prácticas [8], una técnica denominada: Taller de Instalación del Proyecto de Mejora de Procesos Software (SPIAW - SPI Attribute Workshop), la cual permite reunir a los participantes relevantes del proceso y encontrar las necesidades claves para el éxito del proyecto de mejora de primera mano como resultado de la negociación entre los involucrados.

En la Figura 4 se visualiza como se desarrollan las iteraciones de mejora en Agile SPI - Process. En la fase de pre-mejora se desarrolla la disciplina de valoración para la creación del Registro de Acumulación o Retraso del Producto el cual ha sido llamado: "Listado de Requisitos de Mejora Iniciales". Luego de priorizar las áreas a mejorar, se crea un listado de requisitos de mejora mediante la evaluación de cada una de las áreas, lo cual permite definir un orden para cada una de las iteraciones de mejora a ejecutar. Es conveniente mediante la ayuda de una de Red de Dependencias ordenar de una manera más detallada las mejoras a realizar en las áreas seleccionadas para la mejora; esta red permite identificar los casos de mejora o el número de iteraciones a desarrollar por cada área. Los casos de mejora podrían ser las actividades que componen a las áreas de procesos, teniendo en cuenta que estas pueden llamarse: prácticas, subprácticas, procesos o subprocesos según el caso o el modelo de calidad que se haya elegido.


Figura 4.
Iteraciones en Agile SPI - Process
Figure 4. Iterations on Agile SPI - Process

Luego de identificar los casos de mejora que componen el área y ordenarlos mediante una Red de Dependencias, continúa el posterior análisis y diseño del nuevo o mejorado proceso y la respectiva implantación y documentación del mismo.

En Agile SPI - Process no sólo se ha definido y adaptado metodologías como SCRUM y principios ágiles para poder proveer soluciones en espacios de gestión de las iteraciones de mejora, también adapta y propone técnicas y prácticas para la conformación y gestión de los equipos de SPI, ejemplifica la Red de Dependencias que pueden existir entre las áreas o prácticas que a estas las componen dependiendo del modelo de calidad y la manera de cómo tratar esta característica, también documenta e identifica los hitos de verificación y productos de trabajo resultantes de estos y propone algunas plantillas de control y gestión para el proceso de mejora, todo esto dentro de una guía que no pretende ser un modelo extenso sino un proceso de mejora de procesos de software amigable, fácil de utilizar, ágil, independiente del modelo de calidad a utilizar y métodos o modelos de evaluación, y lo más importante adaptado a las características de la industria del software Colombiana y el resto de Iberoamérica como se ha venido realizando con el proyecto COMPETISOFT [19], [6].

5.2 Activos livianos de proceso
Agile SPI - Process tiene asociados activos de proceso incorporados a su mejora. Estos activos incluyen componentes anteriormente mencionados tales como: principios, disciplinas, roles, actividades y productos de trabajo, así como plantillas de referencia para documentar los productos de entrada y salida. El proceso busca alivianar la carga dejando los productos de trabajo mínimos, y simplificando el contenido de cada uno de ellos sin perder la objetividad del papel que juegan los documentos en una iniciativa SPI. Estos siguen la premisa: "haz lo necesario, si alcanzas, haz algo más" [18]. Acompañando a Agile SPI - Process hay activos de proceso para hacer lo necesario. Particularmente para las actividades de evaluación se cuenta con guías de entrevistas, encuestas, contratación de personal, plantillas de planificación, reporte de evaluación, matriz de hallazgos, de perfiles de capacidad y madurez para CMMI e ISO/IEC 15504. El método tiene asociado un modelo de evaluación liviano para las MiPyMEs basado en ISO/IEC 15504 [18].

La mayoría de los activos de proceso, son ágiles y livianos: principios, roles y prácticas adaptados desde métodos ágiles y otros modelos como SCRUM, PSP y TSP descritos anteriormente y utilizados para mejorar y guiar el trabajo personal y de equipos [20].

 

6. ESTUDIOS DE CASO

Agile SPI - Process ha sido y sigue siendo aplicado en 6 empresas pequeñas del suroccidente colombiano: Por razones de Confidencialidad las empresas serán llamadas EmpDS1, EmpDS2, EmpDS3, EmpDS4, EmpDS5 y EmpDS6. En este grupo de empresas, se tienen evidencias de su aplicación y excelentes resultados en la mejora de sus procesos software. Cuatro de las cinco empresas estas iniciando el proceso de mejora, por lo tanto ellas se benefician con la retroalimentación y ajuste de los modelos utilizados. La tabla 1 presenta un resumen de las empresas que aplicaron y que están aplicando Agile SPI - Process como proceso de mejora de procesos software, el modelo de procesos MoProSoft y el método de Evaluación PvalCompetisoft, según la adaptación del proyecto COMPETISOFT. En la figura, también se muestra el tamaño de las empresas según el número de empleados, si poseen certificaciones de calidad, proyectos SPI previos, equipo interno de calidad y los productos de servicios que ofrecen.

Tabla 1. Casos de Estudio
Table 1. Cases of study

Los proyectos de mejora de procesos de software han sido ejecutados teniendo en cuenta cada una de las características y componentes ágiles abarcando en un 80% la totalidad del proyecto SPI, ese 80% se refiere a la etapa de Instalación, Diagnóstico y Formulación, las cuales se han desarrollado en tiempo aproximado de 50 días, por cada uno de los casos de estudio. Es vital que los proyectos de mejora sean ágiles y menos burocráticos, Agile SPI - Process hasta el momento así lo demuestra en este trabajo como en otros (ver [21], [22], [20] y [27]).

Debido a la rápida respuesta entre evaluación y mejora, los resultados mostraron que se ganó confianza sobre el trabajo de SPI y la visualización continua de los cambios de mejora rápidos y ágiles permitió mantener el interés de los proyectos de mejora. Así mismo, debido a la disminución del esfuerzo, la retroalimentación continua, la actualidad y ajuste de los modelos, los casos de estudio han podido desarrollarse exitosamente.

 

7. CONCLUSIONES Y TRABAJO FUTURO

En este artículo se ha presentado un Proceso Ágil para la Mejora de Procesos de Software: Agile SPI - Process. Las características fundamentales del proceso son: las disciplinas de trabajo transversales a un proyecto de mejora de las cuales se hablará en un posterior trabajo, la definición y adaptación de técnicas para la conformación de los grupos o equipos de mejora y la posibilidad de realizar las mejoras en los procesos de una manera iterativa e incremental.

Para aligerar el proceso, Agile SPI - Process adopta los principios del manifiesto ágil y las características para un SPI liviano, lo cual hace que los proyectos de mejora se enfoquen en arrojar resultados ágiles y de acuerdo a las necesidades de las empresas.

El proceso de mejora presentado en este artículo proporciona a las MiPyMEs_DS un proceso de mejora de procesos de software adaptado a sus características, las cuales no disponen de los medios y recursos suficientes para la aplicación de modelos de mejora de procesos tradicionales propuestos por el SEI o la ISO. Para la definición de Agile SPI - Process se han considerado las necesidades de las empresas del sector informático de Colombia (inversión económica, tiempo, recursos, gestión, y ROI), pero el proceso ha sido definido de forma tal que puede ser aplicado a cualquier empresa software del sector informático Iberoamericano. En relación a otras propuestas relacionadas, Agile SPI - Process proporciona un proceso de mejora de procesos de software ágil y liviano con el fin de establecer mejoras en los procesos ágiles o menos burocráticos independientemente del modelo de calidad de software elegido (CMM, CMMI o ISO).

Como trabajo futuro se pretende refinar el proceso de mejora y aplicarlo a más empresas desarrolladoras de software en Iberoamérica, y como se menciona en [7] "ya se han probado versiones preliminares de estos modelos en empresas de México, Argentina y Colombia, y en este año se prevé aplicarlos en los demás países incluyendo a dos empresas españolas con el fin de refinar los modelos y empezar a construir las herramientas de soporte correspondientes", de igual manera se está a la espera que se emita un trabajo donde se presenten los resultados concretos en la mejora de procesos de software de las empresas Iberoamericanas que han participado del proyecto COMPETISOFT.

 

AGRADECIMIENTOS

Este trabajo ha sido parcialmente financiado por el proyecto REVVIS 507AC0326 financiado por CYTED y por el proyecto Entorno Colaborativo de Apoyo a la mejora de procesos para la industria de software Colombiana, apoyado por Colciencias, Código 3531-403-20708.

 

REFERENCIAS

[1] MAS, Antónia. La mejora de los procesos de software en las pequeñas y medianas empresas (PyME). Un nuevo modelo y su aplicación a un caso real. Revista Española de Innovación, Calidad e Ingeniería del Software, Vol.1, No. 2, 2005.pp. 7-26.         [ Links ]
[2] CANÓS, José H. LETELIER Patricio. PENADÉS, María Carmen. Metodologías ágiles en el Desarrollo de Software. Universidad Politécnica de Valencia. Metodologías Ágiles en el Desarrollo de Software Alicante - España, 12 de Noviembre de 2003. pp. 1-8.         [ Links ]
[3] MOPROSOFT. Modelo de Procesos para la Industria de Software. MoProSoft Versión 1.1. Mayo 2003. pp. 1-186.         [ Links ]
[4] HURTADO, J. Ariel. Sistema Integral para el Mejoramiento de los procesos de Desarrollo de Software en Colombia (SIMEP-SW). Departamento de Sistemas, Universidad del Cauca. Popayán, Julio de 2003. pp. 1-31.         [ Links ]
[5] MPS.BR - Melhoria de Processo do Software Brasileiro. Guía General (Versión 1.2). 30 de Junio de 2007. SOFTEX. pp. 1-56.         [ Links ]
[6] COMPETISOFT. Mejora de Procesos para Fomentar la Competitividad de la Pequeña y Mediana Industria del Software de Iberoamérica. Versión 0.2. CYTED - Ciencia y Tecnología para el Desarrollo. Diciembre de 2007. pp. 1-196.         [ Links ]
[7] Entrevista al Doctor: Mario Piattini Velthuis. Universidad de Castilla - La Mancha. INFOCAMPUS. Febrero de 2007, pp. 18-19.         [ Links ]
[8] PARDO, César. HURTADO, Julio. FERNANDEZ, Luis. VIDAL, Juan. Anexos. Proceso Ágil para la Mejora de Procesos de Software: Agile SPI - Process. Proyecto SIMEP - SW. Tesis de Pregrado, 2006, pp. 43.         [ Links ]
[9] REYNOSO, Carlos. De los Métodos Heterodoxos en la construcción de Software. 2004. pp. 46-72.         [ Links ]
[10] GARCÍA, Javier. AMESCUA, Antonio. VELASCO, Manuel. TOP 10 de factores que obstaculizan la mejora de los procesos de verificación y validación en organizaciones intensivas en software. Departamento de Informática. Escuela Politécnica Superior. Universidad Carlos III de Madrid. Revista Española de Innovación, Calidad e Ingeniería del Software. Volumen 2, No. 2, octubre, 2006. pp. 18-29.         [ Links ]
[11] AGIL MANIFIESTO. Manifesto for Agile Software Development. Disponible en: http://www.agilemanifesto.org/ . Último acceso miércoles 19 de Marzo de 2008.         [ Links ]
[12] MORENO, Jair. Proyecto SIMEP - SW. IMPACT Versión 1.0. Universidad del Cauca. Facultad Ingeniería Electrónica y Telecomunicaciones. Departamento Ingeniería de Sistemas. 2.005. pp. 1-7.         [ Links ]
[13] OBJECT MANAGMENT GROUP. "Software Process Engineering Metamodel Specification". Adopted Specification of the Object Management Group, Inc; Versión 1.0 formal. 2.002.         [ Links ]
[14] DE LA VILLA, Manuel. RUIZ, Mercedes. RAMOS, Isabel. Modelos de Evaluación y Mejora de Procesos: Análisis Comparativo. Proyecto CICYT. 2.004. 18 p.         [ Links ]
[15] HUMPREY, S. W. Introduction to the Team Software Process. 1999. 504 p.         [ Links ]
[16] POPPENDIECK, Mary. 12 Questions with Mary Poppendieck. Lean Software Development: An Agile Toolkit for Software Development Managers.2006. http://www.shmula.com/183/12-questions-with-mary-poppendieck.         [ Links ]
[17] REYNOSO. Carlos. SCRUM. "Métodos heterodoxos en desarrollo de software". 2006. http://www.microsoft.com/spanish/msdn/arquitectura/roadmap_arq/heterodox.asp.         [ Links ]
[18] PARDO, César. HURTADO, Julio. FERNANDEZ, Luis. VIDAL, Juan. Proceso Ágil para la Mejora de Procesos de Software: Agile SPI - Process. Proyecto SIMEP - SW. Tesis de Pregrado, 2006, pp. 47-93.         [ Links ]
[19] PARDO, César. HURTADO, Julio. FERNANDEZ, Luis. VIDAL, Juan. Un Proceso Ágil para el Mejoramiento de Procesos de Desarrollo de Software para PYMES - Agile SPI - Process. IV Simposio internacional de sistemas de información e ingeniería de software en la sociedad del conocimiento - SISOFT, 2006, pp. 113-114.         [ Links ]
[20] HURTADO, J. PARDO, C. FERNÁNDEZ, L., VIDAL, J. Una Estrategia Ágil de Evaluación del Proceso Software: Agile SPI - Process Assessment Method. In VI Jornada Iberoamericana de Ingeniería del Software e Ingeniería del Conocimiento - JIISIC'07. 31 de Enero al 2 de Febrero del 2007. Pontificia Universidad Católica del Perú. Lima Perú. pp. 349-358.         [ Links ]
[21] PARDO, César. HURTADO, Julio. FERNANDEZ, Luis. VIDAL, Juan. Aplicación y ajuste en la práctica del nuevo proceso de mejora para procesos de software Agile SPI - Process: Caso de estudio real en una PyME. Revista Gerencia Tecnológica GTI, 2006, pp. 21-29.         [ Links ]
[22] PARDO, César., HURTADO, Alegría., PINO, Francisco. Factores de éxito o fracaso para la mejora de procesos software: caso real en un grupo de MIPYMES. In VI Jornada Iberoamericana de Ingeniería del Software e Ingeniería del Conocimiento - JIISIC'08. Guayaquil Ecuador.         [ Links ]
[23] POPPENDIECK, Mary., and POPPENDIECK, Tom. Implementing Lean Software Development: From Concept to Cash. The addison Wesley Signature Series.         [ Links ]
[24] Disponible en: http://www.extremeprogramming.org/. último acceso miércoles 19 de Marzo de 2008.         [ Links ]
[25] PINO, Francisco., GARCÍA, Felix., PIATTINI, Mario. Priorización de procesos como apoyo a la mejora de procesos en pequeñas organizaciones software. XXXIII Conferencia Latinoamericana de Informática (CLEI 2007), 2007, San José, Costa Rica.         [ Links ]
[26] PARDO, C., PINO, F., COLLAZOS, C., and JIMENEZ, J., "Infraestructura de Trabajo para Gestionar Proyectos de Mejora de Procesos de Software en MiPyMES," in Tendencias en Ingeniería de Software e Inteligencia Artificial, vol. II, Zapata, Carlos y Giraldo Gloria Lucía (Ed.), Ed., 2008.         [ Links ]
[27] PINO, Francisco., PEDREIRA, Oscar., MON, Alicia., GÓMEZ, Jessica., PARDO, César., PASINI, Ariel., PANTOJA, Libardo. Book: COMPETISOFT: Mejora de Procesos para Pequeñas y Medianas Empresas y Proyectos. Chapter in book: Aplicación del marco metodológico de Competisoft. Capítulo V, pp. 85-135. ISBN: 978-84-7897-901-1. Editorial Rama. 2008.
        [ Links ]

Creative Commons License Todo o conteúdo deste periódico, exceto onde está identificado, está licenciado sob uma Licença Creative Commons