• No se han encontrado resultados

AGILIZANDO LA MEJORA DE PROCESOS DE SOFTWARE CON AGILE SPI – PROCESS

N/A
N/A
Protected

Academic year: 2023

Share "AGILIZANDO LA MEJORA DE PROCESOS DE SOFTWARE CON AGILE SPI – PROCESS"

Copied!
1
0
0

Texto completo

(1)

AGILIZANDO LA MEJORA DE PROCESOS DE SOFTWARE CON AGILE SPI – PROCESS

César Jesús Pardo1 , Julio Ariel Hurtado , Francisco Pino 1,3 1,2 Universidad del Cauca, Colombia1

2 Universidad de la Mancha, España

3 Universidad de Chile, Chile

{cpardo, jcvidal, fjpino, ahurtado}@unicauca.edu.co César Jesús Pardo1, Julio Ariel Hurtado1,2, Juan Carlos Vidal 1,

1Universidad del Cauca, Colombia

2Universidad de Chile, Chile

{cpardo, jcvidal, ahurtado}@unicauca.edu.co Abstract

Keywords: Agile, MIPyMEs, Software process improvement, SPI.

Resumen

Para motivar a las empresas Iberoamericanas a mejorar sus procesos de desarrollo de software, es necesario adecuar a sus propias características los modelos internacionalmente reconocidos de mejoramiento, evaluación y calidad creados por el SEI, ESI e ISO. El objetivo es obtener un nivel de madurez en sus procesos que garantice su competitividad internacional. Los modelos internacionales son muy difíciles de implantar en las MIPyMEs debido a: su gran inversión en dinero, difícil gestión, tiempo y recursos, 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 modelos de mejora tan completos como el modelo IDEAL [2], del cual se busca ser aplicable a las micro, pequeñas y medianas empresas, de manera fácil y económica, con pocos recursos y en poco tiempo.

Palabras Clave: Ágil, MIPyMEs, Mejora de Procesos de Software, SPI, Calidad.

1. Introducción

(2)

En las últimas dos décadas las notaciones de modelado, herramientas y gestión de los proyectos en materia de desarrollo de software, han sido como se menciona en [LETELIER] las “balas de plata” para alcanzar el tan deseado éxito en el desarrollo de software. La mejora de procesos al igual que el desarrollo de software conllevan una asociada y marcada tendencia hacia el control del proyecto mediante una rigurosa definición de actividades, tareas, productos de trabajo, roles, y demás componentes definidos algunos en su totalidad por modelos y guías internacionalmente reconocidos como IDEAL, ISO/IEC 15504, entre otros, los cuales han sido definidos y desarrollados para empresas con características totalmente diferentes a las micro, pequeñas y medinas empresas desarrolladoras de software – MiPyMEs DS. Este esquema de mejora de procesos de software “tradicional” ha demostrado ser efectivo en proyectos SPI de gran envergadura donde se exige tener un riguroso control sobre el “que” y el

“como” de las cosas. Sin embargo, este enfoque no resulta ser el más adecuado para muchas empresas que deseen implementar un proyecto SPI en especial las MIPyMEs DS, puesto que en este tipo de industria el contexto es muy cambiante y se exige al igual que los proyectos de desarrollo reducir drásticamente los tiempos de proyectos SPI, pero manteniendo ante todo la calidad del mismo.

Actualmente, en la práctica, para muchos equipos SPI, ante las dificultades para implementar proyectos de mejoramiento de procesos tradicionales, pesados y demasiado burocráticos, se llegó a la conclusión de agilizar y alivianar al igual que con el desarrollo de software los proyectos de mejoramiento de procesos, solo con el único objetivo de ajustarse ante las necesidades y realidades del sector más representativo de la industria del software. Ante esta situación la adaptación de las metodologías ágiles a los proyectos de mejora de procesos de software aparecen como una posible respuesta para suplir esta necesidad metodológica, primero por estar orientadas para proyectos pequeños, obtener resultados ágiles, elevada simplificación de actividades, soluciones a medida y rápido retorno de la inversión.

El tema por agilizar los proyectos SPI ha venido creciendo en especial cuando la adaptación y definición de modelos de calidad y mejora de procesos de software para MIPyMEs demuestra ser un punto clave y de rápido crecimiento en países latinoamericanos e iberoamericanos, un ejemplo es México con su modelo Moprosoft, Colombia con su Framework Agile SPI y Brasil con MPS Br, donde todos persiguen a través de COMPETISOFT (España), proyecto iberoamericano financiado por CYTED, un objetivo en común, el de “Incrementar el nivel de competitividad de las MIPYMES Iberoaméricanas productoras de software mediante la creación y difusión de un marco metodológico común que, ajustado a sus necesidades específicas, pueda llegar a ser la base sobre la que se pueda establecer un mecanismo de evaluación y certificación

(3)

de la industria del software reconocido en toda Iberoamérica”. Actualmente los investigadores del proyecto 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 [INFOCAMPUS].

El tema de la calidad es obligado en la actualidad. La creciente curiosidad por parte de empresas, universidades y grupos de investigación sobre este tipo de temáticas, hace prever una fuerte implementación de metodologías de mejoramiento de procesos de software acordes a la realidad de nuestra industria software. Por un lado, para muchos equipos SPI la implementación de modelos de mejora tradicionales les resulta muy distante, por ejemplo, no es igual 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, el contexto es totalmente diferente y cambiante. Por otro lado, las características de los proyectos para los cuales las metodologías ágiles han sido especialmente pensadas se han adaptado y ajustado al rango de proyectos SPI, en los cuales los equipos de desarrollo son pequeños, con plazos reducidos, requisitos volátiles, rápido retorno de la inversión, etc.

Este artículo presenta la adaptación de algunas de las metodologías ágiles en la guía de mejora Agile SPI – Process como opción para la gestión de proyectos de mejora de procesos de software. El artículo está organizado como sigue. En la sección 2 se presenta una descripción del proceso de mejora de procesos de desarrollo de software definido: Agile SPI – Process, así como los principales principios tomados del

“Manifiesto ágil” y adaptados a la mejora de procesos de software, como también los requerimientos fundamentales para un SPI liviano. La sección 3 se centra en el proceso software para la conformación y gestión de equipos de mejoramiento ágil y liviano, presentando sus principales características, las Iteraciones en Agile SPI – Process y su correspondencia con el proceso de desarrollo SCRUM. En la sección 4 se realiza un paralelo entre los modelos de mejora de software existentes y Agile SPI – Process. Finalmente en la sección 5 aparecen las conclusiones.

2. Las 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 desarrollar software rápidamente y responder a los cambios que pudieran surgir a lo largo del proyecto. Estas metodologías pretenden ofrecer una alternativa a los procesos de desarrollo de software tradicionales, caracterizados por ser rígidos y dirigidos por la documentación

(4)

que se genera en cada una de las actividades desarrolladas. El manifiesto ágil1, un documento que resume la esencia de las metodologías ágiles, valora: (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 [CANOS]. Algunas de las metodologías más conocidas son: Programación Extrema (Extreme Programing – XP), 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, para proyectos con un rápido cambio de requisitos; Crystal Methodologies, conjunto de metodologías caracterizadas por estar centradas en las personas que componen el equipo y la reducción al máximo del número de artefactos producidos; Lean Development, entre otras.

Con el propósito de definir en la ingeniería del software especialmente en el tema de calidad, una guía completa que facilite la gestión de la mejora de los procesos software, la guía de mejora Agile SPI – Process adapta características de gestión ágiles, livianas y esenciales en la mejora de procesos de desarrollo de software, como por ejemplo SCRUM, principios del Manifiesto Ágil, Requerimientos para un SPI liviano, entre otros.

2.1. Agilizando la mejora de procesos de desarrollo de software con Agile SPI - Process

En la actualidad existen varios modelos, procesos y metodologías que facilitan la gestión e implantación de un programa de mejoras de procesos de software, este es el caso del modelo IDEAL, modelo PDCA, ISO/IEC 15504, entre otros, a pesar que estos modelos tienen como propósito principal el establecer mecanismos necesarios para facilitar la realización de programas de mejora continua en organizaciones, modelos como el IDEAL aunque mundialmente reconocido como uno de los modelos aplicables a empresas de software por su completes y aplicación, no se encuentra definido para ser implantado en micro, pequeñas y medianas empresas, las cuales difieren de las grandes empresas por sus procesos, economía, proyectos y talento humano [AMAS].

Existe un pensamiento que se ha generalizado en los investigadores y escritores de este tipo de temáticas sobre la existencia de las diferencias operacionales entre grandes y pequeñas empresas, en [Dyba] se desarrolla un estudio con el fin de determinar si el tamaño de una organización puede determinar el éxito o fracaso en la

1 www.agilemanifesto.org.

(5)

estrategia de implantación de un programa de mejora de procesos de software, concluyéndose cuantitativamente, con base a las medidas de rendimiento realizadas durante el estudio, que sin importar el tamaño las empresas mejoran su rendimiento introduciendo programas de mejora de procesos, demostrando así que el tamaño de una empresa en ningún momento limita el éxito de los programas de mejora que para ellas se instancien.

La guía o mapa de carreteras aplicado a 4 empresas desarrolladoras de software del sur occidente colombiano como guía para la gestión de la mejora y obtención de una serie de lecciones aprendidas como factores determinantes del éxito o fracaso de un programa de mejora de procesos dentro del proyecto SIMEP - SW y COMPETISOFT fue el proceso Agile SPI - Process. Este proceso de mejora de procesos de software desarrollado por investigadores del proyecto SIMEP - SW asociado al proyecto COMPETISOFT, busca incrementar el nivel de competitividad de las PYMES productoras de software tanto colombianas como Iberoamericanas respectivamente, mediante la creación y difusión de un marco metodológico común que, ajustado a sus necesidades específicas, pueda llegar a ser la base sobre el que se pueda establecer un mecanismo de evaluación y certificación de la industria del software reconocido en toda Iberoamérica. Agile SPI – Process ha tenido gran aceptación dentro del proyecto COMPETISOFT por su completes, sencillez y agilidad. Actualmente es la guía de mejora de procesos de software con la cual se capacitará junto a los demás modelos de Competisoft: Evalprosoft como modelo de evaluación y Moprosoft como modelo de calidad.

Agile SPI – Process es una guía de mejora que ha sido desarrollada teniendo en cuenta una serie de características como la agilidad, el que hacer, el como hacerlo, ser liviano, una infraestructura de trabajo, técnicas de gestión, la conformación de grupos y una descripción detallada de las disciplinas que inciden de manera transversal durante un programa de mejora de procesos como pieza fundamental del como hacerlo. En resumen Agile SPI – Process se caracteriza por:

a) Guiar la mejora de los procesos de desarrollo de software, manteniendo el nivel de agilidad que la empresa desee, normalmente un proceso liviano y/o ágil adecuado a las MIPyMES.

b) Estar basado en modelos ágiles y livianos, además de soportar un programa de mejoramiento continuo.

c) Estar adecuado a una industria dinámica, creativa, innovadora e incierta como lo es la industria del software. Una industria donde el conocimiento y el talento humano son elementos fundamentales para garantizar su éxito.

(6)

2.2. Principios ágiles adaptados a la mejora de procesos de software

En busca de obtener una mayor agilidad en las mejoras de los procesos que las organizaciones identifiquen como candidatas a mejorar luego de una evaluación a sus procesos, Agile SPI – Process adopta [MANIFIESTO] y define una serie principios ágiles que se describirán a continuación, principios que deben ser considerados como pilares en la gestión de un programa SPI ágil y efectivo. Esos principios son:

 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 al proceso de desarrollo.

 No hay requisitos de mejora estables por parte de la empresa. Por ello, el diagnóstico es una fase clave. Aún así, requisitos de mejora que surjan deberán ser priorizados y acogidos en la medida en que sea factible realizarlos.

 Debe ser posible entregar con frecuencia mejoras del proceso de software (desde 2 hasta 6 meses). Retorno rápido de la inversión.

 Un programa de mejora con Agile SPI – Process debe basarse en la colaboración efectiva entre los consultores, grupo de mejora, la alta gerencia, el grupo de desarrollo, el grupo SQA, marketing y demás dependencias relacionadas con el proyecto SPI.

 Construir proyectos en torno a individuos motivados hacia la mejora de procesos individuales, grupales y organizacionales. Darles la oportunidad y el respaldo que necesitan y procurarles confianza para que realicen las tareas.

 La forma más eficiente y efectiva de comunicar información de ida y vuelta dentro de un equipo de mejora es mediante la conversación cara a cara.

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

 Agile SPI - Process promueve el desarrollo sostenido. El trabajo deberá ser continuo e indefinido.

 Agile SPI - Process promueve una infraestructura técnica y de gestión, adecuada para soportar la mejora del proceso.

 Agile SPI - Process promueve la conformación de una infraestructura organizacional dinámica, basada en objetivos, no en estrategias de control.

 Agile SPI - Process promueve el aprendizaje continuo como una disciplina clave. El objetivo de esta disciplina es que permita conocer el trabajo, reflexionar acerca de éste y ajustar el trabajo a través de iteraciones cortas y concisas.

(7)

 Agile SPI - Process promueve la conformación efectiva de los grupos propuestos por su infraestructura, se preocupa por la calidad del trabajo humano a realizar.

 Agile SPI - Process permite responder oportunamente a los cambios de mejora, permitiendo gestionar varias iteraciones de mejora a la vez en un proyecto.

 Agile SPI - Process minimiza la documentación, hace mayor énfasis en aquella que represente gran valor para la gestión del proyecto de mejora.

 Agile SPI - Process tiene como alcance los procesos del ciclo de vida del software definidos en cualquier norma o modelo internacional de calidad.

2.3 Requerimientos para un SPI Liviano.

Muchas tecnologías han sido desarrolladas para soportar proyectos SPI, entre ellas pueden mencionarse: Modelos, disciplinas y herramientas para la gestión y documentación, simulación, comunicación y ejecución de procesos, métodos para determinar la madurez del proceso en todo tipo de organizaciones mediante el monitoreo del proceso de desarrollo, etc. En síntesis, el problema para las MiPyMEs DS consiste en como aprovechar todo el conocimiento adquirido, la experiencia ganada y la tecnología desarrollada para impactar positivamente el mejoramiento de sus procesos de desarrollo en sus realidades específicas. Cuatro requerimientos fundamentales para un SPI liviano, emergen de la necesidad de satisfacer las preocupaciones planteadas anteriormente [SCOTT]:

 Requerimiento 1. Ser efectivo y producir buenos resultados [p.ej., ciclos de desarrollo más cortos, detección de errores más temprana y buen retorno de la inversión].

 Requerimiento 2. 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.

 Requerimiento 3. Proveer resultados rápidos y tangibles de tal forma que pueda justificarse su continuación.

 Requerimiento 4. Utilización de tecnologías existentes y probadas en este campo de aplicación.

2.3. Características ágiles en el ciclo de vida.

Agile SPI - Process como se menciona en uno de sus principios es un proceso ágil y liviano de mejora de procesos de software, el cual puede ser utilizado como guía para

(8)

la ejecución de un programa SPI en MiPyMEs DS. Liviano porque empresas como las micro, pequeñas y medianas empresas al poseer ciertas características como: bajos recursos, procesos livianos, recurso humano pequeño, disponibilidad económica limitada, etc, necesitan un modelo que soporte un programa de mejora que tenga en cuenta las características reales de su industria, además de ofrecer resultados rápidos en sus programas de mejora.

Tal como lo muestra la Figura 1, se puede notar que Agile SPI – Process está compuesto de 5 fases: Instalación, Diagnóstico, Formulación, Mejora y Revisión del Programa, y al igual que la arquitectura y todos sus artefactos ha sido definido utilizando SPEM [SPEM].

Figura 1. Modelado bajo SPEM de las fases de Agile SPI – Process.

Como se puede apreciar en la Figura 2, Agile SPI - Process es también un proceso, iterativo e incremental y está basado en casos de mejora, el cual tiene la característica de poder arrojar resultados rápidos de mejora, esto porque permite crear iteraciones de que abarcan o están comprendidos dentro de casos de mejora, y estos a su vez dentro de un programa de mejoramiento global. Los casos de mejora son unidades atómicas de mejora en las áreas de procesos que se han seleccionado para ser mejoradas ya sea porque la empresa persigue una certificación o porque para ella su prioridad es mejorar un proceso específico.

Figura 2. Agile SPI - Process: Un Proceso de mejora iterativo e incremental

El arrojar resultados rápidos de mejora permitirá en consecuencia que las mejoras sean visibles desde las fases tempranas del proyecto SPI, así mismo que estas sean más ágiles y rápidas en la medida que las iteraciones de mejora terminan, todo lo anterior dependiendo de los criterios de priorización que la empresa haya definido

(9)

previamente o que se haya establecido en base a valoraciones y evaluaciones realizadas. Con esto se busca mantener una motivación del personal frente al programa de mejora, a través de resultados de mejora permanentes y eliminando los riesgos del proyecto en las primeras fases, para enfocar el mayor esfuerzo en las áreas que la empresa considere más importantes para su negocio. 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 RUP2, XP3, SCRUM4, 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, menos burocrático y sensible a las actividades referentes a la gestión [p.ej., reuniones, documentos, infraestructura, etc].

En la anterior Figura se visualiza el paralelismo que puede existir entre iteraciones de mejora, esto se puede hacer y es ventajoso en el sentido en que se pueden desarrollar mejoras en áreas de procesos en donde exista una clara independencia.

En los procesos de certificación, los modelos de evaluación junto con la valoración y evaluación misma de los procesos antes de la puesta en marcha de un programa de mejora son muy importantes, ya que nos permiten estimar que áreas de procesos posee una empresa y cual es el grado de madurez de estas en base a un referente o modelo de calidad [VILLA]. Actualmente existen muchas herramientas (ver [SANCHEZ] [CMM-QUEST] [IME] [APPRAISAL]) con las cuales se pueden valorar las áreas de procesos de una empresa según un modelo de calidad en particular, [p.ej., en CMMI en su versión continua o escalonada ó ISO/IEC 15504, ISO 9001-2000, entre otros]. Como se muestra en la Figura 3, Agile SPI – Process puede ser usado como proceso de mejora independientemente de los modelos de evaluación y calidad [p.ej., pueden realizarse mejoras a los procesos de una empresa si se seleccionada un modelo de calidad como CMMI continuo, escalonado, ISO/IEC 15504 o 9001, nombrando estos como los más utilizados].

2 http://www.rational.com/

3 http://www.xprogramming.com/

4 http://www.controlchaos.com/

(10)

Figura 3. Valoración Independiente del Modelo de Madurez

3. Agilidad en el Proceso Software para la conformación y Gestión de Equipos de Mejoramiento. TSPI + SCRUM

El TSP [HUMPREY] es un modelo muy importante que define la forma de guiar a los ingenieros y sus directores en el uso de métodos en la conformación de equipos efectivos de trabajo, éste fue desarrollado por el SEI y su adaptación en Agile SPI –- Process permitirá usar el TSP como técnica para desarrollar mucho mejor el trabajo de los equipos de gestión, de tecnología de procesos y de mejora. Lo importante del proceso de Ssoftware para equipos de mejoramiento adaptado o TSPI es que provee de un contexto disciplinado para el trabajo de mejora. La utilización del TSPI dentro del contexto de un proyecto de mejora de procesos de software resulta ser muy provechoso y genera consecuencias muy positivas dentro de cualquier proyecto, permitiendo a los participantes y personal relacionado con la mejora, desarrollar un trabajo más eficiente, ordenado y serio, el cual es paralelo a sus habilidades y conocimientos, realizando así un trabajo extraordinario, pero solamente si están adecuadamente conformados, convenientemente entrenados, organizados con miembros expertos y conducidos eficazmente. El objetivo del TSPI es construir una guía para tales grupos.

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 podrán realizar un mejor seguimiento del proyecto y la evaluación periódica del proyecto y su nueva planeación.

Un modelo importante en la gestión de un proyecto SPI con la adaptación que se hace en Agile SPI -– Process por la manera como se desarrollan las iteraciones y se gestiona el tiempo del talento humano (reuniones, juntas, exposiciones) es el modelo de gestión de desarrollo SCRUM, por ser un proceso dinámico, adaptable [POPPENDIECK], iterativo e incremental para desarrollar cualquier producto o manejar

(11)

y gestionar cualquier trabajo5 como complemento a otras metodologías [REYNOSO], es por esas características que permite desarrollar las iteraciones de mejora que se pueden llevar a cabo en Agile SPI – Process de una manera más completa, ordenada y ágil.

3.1Las Iteraciones en Agile SPI – Process y su correspondencia con el proceso de desarrollo SCRUM.

3.1. Las iteraciones en Agile SPI – Process y su correspondencia con el proceso de desarrollo SCRUM.

De acuerdo a la definición de SPEM [SPEM], una iteración es un componente WorkDefinition que se caracteriza por tener el menor “milestone” (serie de fechas de programación), una iteración de mejora en Agile SPI – Process, es 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 una guía de mejora, 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 mejora. 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 y arrojar mejoras de una manera más ágil. 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 [CPARDO]), procesos o subprácticas, la definición depende del modelo de calidad base, [p.ej., 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 en base a esto ordenar la manera en como se desarrollarán las mejoras (priorización) en los demás casos de mejora].

Algo en lo que se ha considerado importante ahondar y detallar, 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 lo hace el Proceso de Desarrollo SCRUMcrum [REYNOSO] con los sprints, en cada uno de las cuales hay tres fases:

pre-juego, juego y pos-juego, las cuales fueronhemos adaptadaos al contexto de un programa de mejora llamándolas: pre-mejora, mejora y pos-mejora.

5 www.controlchaos.com

(12)

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, el cuál ha sido obtenido por la valoración realizada a la empresa. En relación al proceso de desarrollo de SCRUM estos listados de rasgos son los que se crean a partir de los requerimientos de la empresa o cliente en el caso de SCRUM y son llamados Product Backlog o Listado de Requisitos de Mejora Iniciales en el caso de Agile SPI - Process.

Figura 4. Iteraciones en Agile SPI - Process

En la Figura 4 podemos ver como se desarrollan las iteraciones de mejora en Agile SPI – Process. En la fase de pre-mejora se desarrollan disciplinas de valoración para la creación del registro de acumulación o retraso del producto (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 nos permite identificar los casos de mejora o el número de iteraciones a desarrollar por cada área. Los casos de mejora no son más que las actividades que componen a las áreas de procesos, teniendo en cuenta que estas pueden llamarse: prácticas o subprácticas según el caso o el modelo de calidad que se haya elegido.

(13)

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.

Ahora bien, Agile SPI – Process no sólo ha adaptado metodologías como SCRUM y principios ágiles para poder proveer soluciones en espacios de gestión de las iteraciones de mejora sino también que adapta y propone técnicas y prácticas para la conformación y gestión de equipos, ejemplifica la red de dependencias que pueden existir entre las áreas o practicas 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 y métodos de evaluación, y lo más importante adaptado a las características de la industria del software Colombiana y en general Latinoamérica [CPARDO2].

3.1. Activos Livianos de proceso.

Agile SPI – Process tiene asociados activos de proceso incorporadosasociados a su mejora. Estos activos incluyen sus mismos componentes (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 minimizando 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”. 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 PYMES basado en ISO/IEC 15504.

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 [HURTADO].

(14)

4. Paralelo entre los modelos de mejora de software existentes y Agile SPI – Process.

La Tabla 1 relaciona algunas de las características más importantes con las cuales es posible comparar al Proceso Ágil para soportar programas SPI con los modelos, frameworks y guías mencionadas anteriormente, según: si son para empresas desarrolladoras de software, comprensibles, basados en procesos, prácticos, si la mejora del proceso esta orientada a los objetivos del negocio, si son aplicables como norma, aplicables a PyMEs, si proporcionan una guía para la mejora, si la guía para la mejora que proporcionan cumple con el manifiesto ágil [MANIFIESTO] y los requerimientos para un SPI liviano.

Model os

Características ISO 15504 IDEAL IMPACT PDCA IDIOT MoPro-Soft MPS - Br Agile SPI - Process

1. Para SW

2. Comprensible

3. Basado en Procesos

4. Práctico

5. PSI orientada al objetivo del negocio

6. Aplicable como norma

7. Aplicable a PyMEs

8. Guía de Mejora

9. Guía Ágil de Mejora

Tabla 1. Paralelo de características entre modelos de mejoramientos de software.

5. Casos de Estudio

Agile SPI – Process ha sido y sigue siendo aplicado en 5 empresas pequeñas del suroccidente colombiano: Unisoft, Sidem, Seratic, Totems, Input, en donde se tienen evidencias de su aplicación. Los dos últimos casos son empresas en donde se está iniciando el proceso de mejora por lo tanto ellas se benefician con la retroalimentación y ajuste de los modelos utilizados. La tabla 2. Presenta un resumen de las empresas que aplicaron o que están aplicando Agile SPI – Process como proceso de mejora de procesos de software, el modelo de procesos Moprosoft y el modelo de Evaluación Evalprosoft, estos modelos han sido adoptados por el proyecto Competisoft, en la tabla 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.

(15)

Los proyectos de mejora de procesos de software han sido ejecutados teniendo en cuanta cada una de las características y componentes ágiles abarcando en un 45% la totalidad del proyecto SPI, ese 40% se refiere a la etapa de instalación, diagnóstico y parte de la Formulación, las cuales se han desarrollado en tiempo aproximado de 45 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 [CPARDO3]).

Nro. Empleados Certificaciones en Calidad

Proyectos de mejora previos

Equipo Interno de trabajo en

SPI

Producto/

Servicio

Unisoft 6 Empleados Microempresa (1-10

Empleados)

NO SI NO Educación: reportes y

nómina.

Sidem 20 Empleados Pequeña empresa (11-

50 Empleados)

NO SI SI Software de administración.

Software Financiero.

Seratic 5 Empleados Micro oempresa (1-10

Empleados)

NO SI NO Telefonía celular,

dispositivos móviles.

Totems 5 Emp leados

Microempresa (1-10 Emppleados)

NO NO NO Plataforma de Gestión del

Conocimiento.

Input 4 Emp leados Microempresa (1-10

Empleados)

NO NO NO Software para la gestión de

proyecto en mejoramiento continuo ISO 9001.

Tabla 1. Casos de Estudio.

El proyecto SPI esta siendo llevado a cabo entre investigadores del grupo Investigación y Desarrollo en la Ingeniería del Software – IDIS de la Universidad del Cauca que a su vez hacen parte como investigadores del proyecto Competisoft como uno de los 23 grupos de investigación que a nivel Iberoamericano están trabajando y contribuyendo en el desarrollo del proyecto. El grupo IDIS ha brindado y brinda la capacitación y acompañamiento al personal en la aplicación del método de evaluación.

Como resultados obtenidos en los casos de estudio hasta el momento, se espera emitir un trabajo donde se presente un informe concreto sobre la situación de las áreas de procesos de administración de proyectos específicos y procesos de desarrollo de software según el modelo de Procesos de Moprosoft.

Debido a la rápida respuesta entre evaluación y mejora, brindado por los modelos de Competisoft, los resultados mostraron que se ganó confianza sobre el trabajo SPI y la visualización continua de los cambios de mejora rápidos y ágiles permitió mantener el

(16)

interés de los programas de mejora. 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.

6. Conclusiones y trabajos futuros

En este artículo se ha presentado una guía o proceso de mejora de procesos de software ágil. Las características fundamentales del proceso son: las disciplinas de trabajo transversales a un programa 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 programas 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 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 ISO. Para la definición de Agile SPI – Process se han considerado las necesidades de las empresas del sector informático de Colombia, pero el proceso ha sido definido de forma general con el fin de ser aplicado a cualquier MIPyME del sector Latinoamericano. 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 para 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, como lo mencionó el Dr. Mario Piattini en una entrevista realizada por la Universidad Castilla – La Mancha [INFOCAMPUS] “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”.

Agradecimientos

(17)

Este trabajo forma parte del proyecto SIMEP-SW, financiado por Colciencias, Universidad del Cauca de Colombia y la empresa privada SITIS Ltda. Queremos también agradecer la atención e interés manifestado por las empresas donde se desarrollaron y se desarrollan proyectos de mejora como Sidem, Seratic y Unisoft Ltda. Como casos de estudio principales de este proyecto. Al proyecto COMPETISOFT como medio de divulgación y apropiación del proceso de mejora Agile SPI – Process en Iberoamérica como muestra de su interés por incrementar el nivel de competitividad de las PyMEs Iberoamericanas productoras de software mediante la creación y difusión de un marco metodológico común basado en técnicas y prácticas definidas según las necesidades de este sector de la industria del software.

Bibliografía

[LETELIER] LETELIER, Patricio. SÁCHEZ, Emilio. Metodologías Ágiles en el Desarrollo de Software. Grupo ISSI (Ingeniería del Software y Sistemas de Información). Alicante – España 12 de Noviembre de 2003.

[INFOCAMPUS] INFOCAMPUS. Entrevista al Doctor: Mario Piattini Velthuis.

Universidad de Castilla - La Mancha. Febrero de 2007, pag 19.

[CANOS] CANÓS, José H. LETELIER Patricio. PENADÉS, María Carmen.

Metodologías ágiles en el Desarrollo de Software. Universidad Politécnica de Valencia.

2004.

[AMAS] 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.

[Dyba] Dyba, T. “Factors of Software Process Improvement Success in Small and large Organizations: An Empirical Study in the Scandinavian Context”. Proceedings of the European Software Engineering Conference and ACM SIGSOFT Symposium on the Foundations of Software Engineering, 2003, pp. 148-157.

[HUMPREY] HUMPREY, S. W. The Team Software Process. Technical Report CMU/SEI-2000-TR-023. 2.000.

[REYNOSO] REYNOSO. Carlos. SCRUM. “Métodos heterodoxos en desarrollo de software”. Último acceso Lunes, 3 de abril de 2.006.

http://www.microsoft.com/spanish/msdn/arquitectura/roadmap_arq/heterodox.as p [SCOTT] SCOTT, L. JEFFERY, R. CARVALHO, L. D’AMBRA, J. RUTHERFORD, P.

Practical Software Process Improvement – The IMPACT Approach in Proceedings 2001 Australian Software Engineering Conference, pp. 182-189, IEEE Computer Society Press, 2001. The University of New South Wales.

[MANIFIESTO] Manifesto for Agile Software Development. Último acceso martes, 10 de octubre de 2.006. http://www.agilemanifesto.org/

(18)

[SPEM] OBJECT MANAGMENT GROUP. “Software Process Engineering Metamodel Specification”. Adopted Specification of the Object Management Group, Inc; Versión 1.0 formal/02-11-14. Noviembre 2.002.

[CPARDO] 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. 8-9.

[CPARDO2] 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.

[CPARDO3] 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. #-#.

[VILLA] DE LA VILLA, Manuel. RUIZ, Mercedes. RAMOS, Isabel. Modelos de Evaluación y Mejora de Procesos: Análisis Comparativo. Proyecto CICYT. 2.004.

[SANCHEZ] SANCHEZ, C. Johana. SOLIS, M. Elena. PINO, J. Francisco. VIDAL, J.

Carlos. SIMEP-SW: Herramienta web para la valoración de la calidad de procesos software en pymes tool web for appraisal of quality of software processes in pymes.

2.005

[CMM-QUEST] CMM-QUEST, 2001. Self assessment tool, HM&S IT-Consulting GmbH. Demo disponible en el sitio de la empresa. Último acceso viernes, 6 de Abril de 2.007. http://www.cmm-quest.com/

[IME] IME TOOLKIT, 2003. Interim Maturity Evaluation Toolkit, Management Information Systems. Último acceso viernes, 6 de Abril de 2.007

http://www.man-info-systems.com/MIS_files/page0006.htm

[APPRAISAL] APPRAISAL WIZARD, 2003. Formal or informal appraisal tool, Integrated System Diagnostics Incorporated. Demo disponible en el sitio de la empresa. Último acceso viernes, 6 de Abril de 2.007. http://www.isd-inc.com.

[POPPENDIECK] POPPENDIECK, Mary. 12 Questions with Mary Poppendieck. Lean Software Development: An Agile Toolkit for Software Development Managers. 21 de Agosto del 2006. http://www.shmula.com/183/12-questions-with-mary-poppendieck [HURTADO] HURTADO, Julio. PARDO, César, VIDAL, Juan. FERNADEZ, Luis. Un método de Evaluación Ágil del proceso Software: Agile SPI – Process Asseeement Method.

Referencias

Documento similar

Como parte de la personalización de la plantilla de procesos MSF para el desarrollo ágil, se elimina este reporte del resto definido en la plantilla, según (MSF for Agile

Con el propósito de plantear una gestión de riesgos eficiente para compañías que utilizan una mezcla de métodos ágiles como: Scrum, RUP (Proceso Unificado del Software) y MSF

Proporcione esta nota de seguridad y las copias de la versión para pacientes junto con el documento Preguntas frecuentes sobre contraindicaciones y

se decidió el modelo de trabajo a usar: modelo V (Figura 1) combinado con reuniones diarias para evaluar el progreso como en la metodología Agile (Scrum); se preparó una lista

el sprint planning el equipo de desarrollo trabaja para predecir la funcionalidad de las tareas que se van a desarrollar en ese sprint, el producto owner estudia y discute los

diabetes, chronic respiratory disease and cancer) targeted in the Global Action Plan on NCDs as well as other noncommunicable conditions of particular concern in the European

o Si dispone en su establecimiento de alguna silla de ruedas Jazz S50 o 708D cuyo nº de serie figura en el anexo 1 de esta nota informativa, consulte la nota de aviso de la

Ciaurriz quien, durante su primer arlo de estancia en Loyola 40 , catalogó sus fondos siguiendo la división previa a la que nos hemos referido; y si esta labor fue de