Resumen: La Industria del desarrollo de software constituye un factor clave en la economía. En Latinoamérica este sector se compone por el 99% de pymes. Esto resalta la importancia de la implementación de buenas prácticas de ingeniería de software en las pymes para asegurar su mejora continua. En este contexto, existen diversos modelos y estándares que contienen buenas prácticas enfocadas en mejorar los procesos de desarrollo de software tales como CMMI, ISO-12207, ISO-15504, etc. Sin embargo, para aplicar dichos modelos, las pymes requieren adaptarlos según su tamaño y tipo de negocio. Por lo tanto, se apoyan de técnicas y herramientas para la implementación de buenas prácticas contenidas en ellos. El objetivo de este artículo es presentar una herramienta que facilita la implementación de buenas prácticas para realizar una la gestión de riesgos básica en una pyme.
Palabras clave:Gestión de proyectosGestión de proyectos,gestión de riesgosgestión de riesgos,técnicas y herramientastécnicas y herramientas,pymespymes.
Abstract: Software development industry is a key factor in the worldwide economy. In Latin America, this sector consists mostly of small and medium enterprises (SMEs) and they represent the 99% of the business software industry. This highlights the importance to implement best practices in software engineering SMEs to ensure a continuous improvement. In this context, there are several models and standards that contain best practices focused on improving software development processes such as CMMI-DEV v1.3, ISO 12207, ISO 15504, etc. However, to implement them in SMEs they should be tailored according to the organization size and type of business. Therefore, SMEs require the use of techniques and tools that help them in the implementation of best practices. This paper aims to present a tool that facilitates the implementation of best practices allowing to SMEs to carry out a basic risk management.
Keywords: Project management, risk management, techniques and tools, SMEs.
Computación e Informática
Desarrollo de Herramientas Enfocadas en Ayudar a las Pymes de Desarrollo de Software en la Implementación de Buenas Prácticas de Gestión de Proyectos
Development of Tools Focused on Helping Software Development SMEs in the Implementation of Project Management Best Practices

Recepción: 07 Septiembre 2016
Aprobación: 13 Marzo 2017
En la actualidad, el software es un elemento clave en la economía, el uso de software está presente en la mayoría de las industrias y es un factor de éxito en todos los sectores económicos (Rivas, Perez, Mendoza, & Grimán, 2010). En América Latina alrededor del 99% del negocio de la industria del software está formado por pymes (Gómez, Aguileta, Ancona, & Gómez, 2014).
Por lo anterior, la implementación de buenas prácticas de Ingeniería de Software es una actividad que las pymes deben realizar con el fin de mejorar la calidad de sus productos y/o servicios (Contact, 2014)(Durón, Muñoz, & Mejía, 2013)(Navarro & Garzás, 2010). Para ello se utilizan modelos como CMMI-DEV v1.3(Chrissis, Konrad, & Shrum, 2010), ISO 12207(Rajchel et al., 2011), ISO 15504(ISO, 2012), entre otros. Sin embargo, los modelos sólo explican ¿Qué hacer? y no ¿Cómo hacerlo?.
El objetivo de este artículo es mostrar una herramienta que facilita la implementación de la gestión de riesgos, permitiendo a las pymes realizar una gestión de riesgos básica. La estructura del artículo se detalla a continuación: después de la sección de introducción, la sección II presenta el marco teórico que contiene conceptos referentes a la gestión de proyectos, gestión de riesgos y trabajos relacionados, la sección III el desarrollo de la herramienta de Gestión de Riesgos, en la sección IV se presenta la herramienta y por último en la sección V se presentan las conclusiones y trabajo futuro.
La gestión de proyectos es la aplicación de conocimiento, habilidades, herramientas y técnicas en actividades del proyecto para cumplir con los requisitos del proyecto
La gestión de proyectos es la aplicación de conocimiento, habilidades, herramientas y técnicas en actividades del proyecto para cumplir con los requisitos del proyecto (Project Management Institute, 2013).
En este contexto, los principales problemas encontrados en la gestión de proyectos (Wangenheim, Carlo, Hauck, & Wangenheim, 2009)(Torrecilla-Salinas, Sedeño, Escalona, & Mejías, 2015)(Tomer, 2015)se listan a continuación:
Las pymes utilizan herramientas para automatizar las actividades de gestión de proyecto; aunque tienen limitaciones que les obligan a seleccionar sus tecnologías de acuerdo a recursos de tiempo y dinero limitados (Rivas et al., 2010).
Los ingenieros de software frecuentemente son ascendidos a puestos administrativos en función de su desempeño como ingenieros, pero no cuentan con el conocimiento de gestión de proyectos adecuado, ya que no reciben la educación suficiente. Por lo que, desde etapas tempranas dentro de las pymes de software se enfrentan a problemas para cumplir con el presupuesto y calendario, evaluar riesgos potenciales, mantener una comunicación efectiva en los equipos, entre otras (Pino, García, & Piattini, 2006).
La aplicación de modelos y estándares de calidad en las pymes es difícil, porque están orientados a grandes empresas y por lo tanto representan una gran inversión de recursos humanos, económicos, de tiempo, entre otros (Mas, Antonia; Amengual, 2005)(Richardson, 2001)(Pressman, 2010).
Una gestión de riesgos permite llevar a cabo la detección temprana y dinámica de riesgos, ya que es más fácil, menos costosa y menos perjudicial realizar los cambios y corregir los esfuerzos de trabajo durante las fases tempranas del proyecto, en lugar de fases posteriores (Chrissis et al., 2010).
Todo proyecto de desarrollo de software suele tener riesgos, de tal manera que la gestión de riesgos es un área significativa dentro del desarrollo de software debido a que su objetivo es enfocarse en la identificación de problemas potenciales antes de que éstos ocurran (Chrissis et al., 2010).
En este contexto, un riesgo implica dos características:
Pérdida: son las consecuencias no deseadas que ocurren cuando el riesgo se convierte en realidad.
La gestión de riesgos comprende tanto la identificación como las actividades que pueden ser definidas para su tratamiento durante todo el ciclo de vida del desarrollo del software. Sin embargo, muchas organizaciones continúan sin una cultura ni las habilidades para realizar y gestionar sus riesgos de manera adecuada.
A continuación, en la Tabla 1 se muestra una clasificación de trabajos relacionados.

Como resultado del análisis de los trabajos relacionados se observa que proponen una gran variedad de herramientas que requieren un conocimiento especializado. Además, debido a la falta de tiempo y recursos, el desconocimiento y la falta de experiencia de los desarrolladores, las pymes no escogen las más óptimas. Como una solución a esta problemática, este trabajo presenta una herramienta que apoye a las pymes a realizar una gestión de riesgos básica según sus necesidades, su forma de trabajo y entorno.
En este apartado se muestran los resultados obtenidos al aplicar el “Método para el Desarrollo de Catálogos enfocados en Facilitar la Implementación de Buenas Prácticas para Gestión de Proyectos de Desarrollo de Software en PyMEs”(García, Muñoz, Mejía, Martínez, Gasca-Hurtado, & Hincapié, 2016) para el desarrollo de la herramienta del área de gestión de riesgos siguiendo los 5 pasos descritos a continuación.
Para realizar la búsqueda de técnicas y herramientas de la gestión de riesgos, se tomó como fuente la documentación de modelos como CMMI-DEV v1.3(Chrissis et al., 2010), PMBOK (Project Management Institute, 2013), la metodología MAGERIT(Ministerio de Hacienda y Administraciones Públicas, 2012b)(Ministerio de Hacienda y Administraciiones Públicas, 2012a)(Ministerio de Hacienda y Administraciones Públicas, 2012c), el modelo eSourcing Capability Model for Client Organizations – eSCM-CL (Hefley & Loesche, 2006), el estándar de la taxonomía de riesgos de IEEE(Engineering & Committee, 2001), obteniendo una selección de 28 técnicas y/o herramientas del área de gestión de riesgos.
En la Tabla 2 se presenta el listado de las técnicas y herramientas identificadas.

A partir de este conjunto de técnicas, se buscó información de cada una, se revisó la información y se realizó el análisis y la clasificación de técnicas por enfoque y por nivel de dificultad.
Para realizar este análisis se establece el criterio de enfoque, que es la consideración del aspecto (Real Academia Española, 2017) que resalta la herramienta o técnica para ser ejecutada, identificándose participación directa/indirecta de personas, elementos matemáticas y elementos gráficos, los cuales se describen a continuación:
Enfoque matemático: aquellas técnicas o herramientas que se enfocan en el uso de fórmulas matemáticas para la gestión de riesgos.
Enfoque visual: aquellas técnicas o herramientas que se enfocan en la presentación gráfica del análisis de riesgos para la gestión de riesgos.
El procedimiento para realizar la clasificación de las técnicas y herramientas consistió en revisar el objetivo, los componentes y el formato que la técnica o herramienta utiliza para mostrar resultados. Este procedimiento se siguió para cada técnica y herramienta.
La Tabla 3 muestra la clasificación de las técnicas y herramientas por enfoque.

En este análisis se realizó la clasificación de las técnicas y herramientas de gestión de riesgos por nivel de dificultad. La dificultad se refiere al conocimiento requerido para ejecutar la técnica y herramienta. Los niveles de dificultad considerados se listan a continuación:
Intermedias: aquellas técnicas o herramientas que requieren de conocimientos básicos en gestión de riesgos para su realización, por lo tanto, se considera que tienen un nivel de dificultad intermedio.
Sencillas: aquellas técnicas o herramientas que no requieren conocimiento previo especializado y por lo tanto, tienden a ser fáciles de implementar.
El procedimiento para realizar la clasificación de las técnicas y herramientas consistió en revisar las instrucciones para ejecutar la técnica o el manual de usuario de la herramienta. Así como los requerimientos de conocimiento para su uso. Este procedimiento se siguió por cada técnica y herramienta.
La Tabla 4, muestra la clasificación de las técnicas y herramientas por nivel de dificultad.

El modelo de capacidad y madurez integrado para desarrollo es un modelo que tiene gran impacto en la mejora de los procesos a nivel organizacional y amplia aceptación a nivel internacional (Chrissis et al., 2010). El propósito del área de proceso de gestión de riesgos de acuerdo a (Chrissis et al., 2010) comprende un proceso con visión a futuro, que es una parte importante para la gestión del proyecto, cuyo propósito es la identificación de problemas potenciales antes de que éstos ocurran. De tal forma que las actividades para el tratamiento de los riesgos pueden ser planificadas e invocadas cuando sea necesario a través del ciclo de vida del producto o del proyecto para la mitigación de impactos adversos que afecten el logro de los objetivos(Accountants, 2007) .
Esta área de proceso está formada por 3 metas específicas (SG) y 7 prácticas específicas como a continuación se detalla:
SG 1. Preparar la gestión de riesgos: Se establece y mantiene una estrategia para identificar, analizar y mitigar los riesgos, dicha estrategia se documenta en un plan de gestión de riesgos. Incluye las siguientes prácticas específicas:
1.1) Determinar las fuentes y las categorías de riesgos,
1.2) Definir los parámetros de riesgos y
1.3) Establecer una estrategia de gestión de riesgos.
SG 2. Identificar y analizar los riesgos: Se identifican los riesgos de las fuentes internas y externas, se evalúan para determinar su probabilidad y consecuencias y se clasifican para permitir su tratamiento. Incluye las siguientes prácticas específicas: 2.1) Identificar los riesgos y 2.2) Evaluar, clasificar y priorizar los riesgos
SG 3. Mitigar los riesgos: Se desarrollan e implementan planes de mitigación para reducir el impacto de ocurrencia del riesgo y planes de contingencia para tratar con el impacto de los riesgos que pueden ocurrir aun cuando se intentaron mitigarlos. Incluye las siguientes prácticas específicas: 3.1) Desarrollar los planes de mitigación de riesgos y 3.2) Implementar los planes de mitigación de riesgos.
En este paso se realizó una trazabilidad de las técnicas y herramientas con prácticas formales de gestión de riesgos, con la finalidad de identificar la cobertura y cumplimiento de éstas con el uso de las técnicas y herramientas. Para realizar este análisis se toman como base las metas y prácticas específicas de (Chrissis et al., 2010)enfocadas en la gestión de riesgos, identificadas en el paso anterior.
La trazabilidad entre prácticas y técnicas y herramientas se muestra en la Tabla 5.

La herramienta desarrollada tiene como objetivo el ayudar a las pymes a realizar una gestión de riesgos básica. La herramienta de gestión de riesgos permite determinar las fuentes y categorías de riesgos; identificar los riesgos; definir los parámetros de riesgos, evaluar, clasificar y priorizar los riesgos; así como establecer una estrategia de gestión de riesgos, a través de una aplicación web.
A. Elementos que contiene la herramienta que facilita la implementación de buenas prácticas de ingeniería de software.
Técnicas de taxonomía de riesgos, entrevistas y cuestionarios: permiten determinar las categorías de riesgos, identificar los riesgos, y obtener una lista de riesgos categorizados; así como obtener información de la empresa y del proyecto.
Técnicas de análisis mediante tablas, tormenta de ideas, valoración Delphi a través de técnicas ágiles como el Planning Póker: permiten establecer los parámetros de impacto y probabilidad, valorar los riesgos, así como agregar acciones de mitigación y la identificación del responsable del riesgo.
Técnicas gráficas: permiten visualizar los resultados de riesgos clasificados y priorizados para enfocarse en los de probabilidad e impacto críticos y así poder establecer un plan de mitigación de riesgos.
B. Requisitos
La siguiente tabla muestra el listado de los requisitos funcionales.

C. Diseño
A continuación se describen los conceptos de diseño elegidos:
Estilo arquitectónico de capas (Layers): Las capas permiten aislar de forma lógica las responsabilidades del sistema: los aspectos relacionados con el usuario (Capa de presentación), el manejo de la lógica del negocio (Capa de negocio) y la persistencia de datos (Capa de datos).
Patrón arquitectónico MVC: Al separar las vistas, controladores y modelos es más factible realizar la modificación de componentes sin afectar la lógica del sistema con el objetivo de mejorar el rendimiento.
Selección de Tecnologías: Se eligió el Framework Django, es un Framework de Desarrollo Web, utiliza Python, HTML y Apache.
1. Vista física de la herramienta
La Figura 1 muestra la perspectiva física de la herramienta.

La Tabla 7 muestra los elementos de la vista física de la herramienta:

2. Pantallas
A continuación se muestran las pantallas de la funcionalidad principal del sistema.
a. Selección de riesgos que pueden afectar al proyecto


b. Obtener una lista de riesgos categorizados, identificar los riesgos, establecer parámetros de evaluación, evaluar los riesgos



c.Evaluar, priorizar y clasificar los riesgos, establecer estrategia

d. Mostrar gráfico

e. Establecer estrategia

Los resultados de la realización del método arrojan que las técnicas y herramientas con mayor cobertura de prácticas específicas son: documentar la política de gestión de riesgos y lecciones aprendidas cubren el 100% de las prácticas específicas de la gestión de riesgos, después las técnicas de tormenta de ideas y enfoque formal con un porcentaje de cobertura de prácticas específicas de 57% y por último se encuentran las técnicas de valoración Delphi, análisis de escenarios y tablero de riesgos con dos tipos de notas con un porcentaje de cobertura de prácticas específicas de 43%.
La práctica específica que cuenta con la mayor cobertura de técnicas y herramientas es la SP 2.2 evaluar, clasificar y priorizar los riesgos con un porcentaje de 53% de cobertura de técnicas y herramientas, enseguida se ubica la SP 2.1 identificar los riesgos con un porcentaje de 46% de cobertura de técnicas y herramientas y finalmente se encuentra la SP 1.1 determinar las fuentes y categorías de riesgos con un porcentaje de cobertura de técnicas y herramientas de 43%.
Basado en el análisis se identificó que los elementos que debe contener una herramienta que facilite la implementación de buenas prácticas de ingeniería de software para realizar una gestión de riesgos básica son: Las técnicas de catálogo de amenazas, la taxonomía de riesgos, entrevistas y cuestionarios se pueden utilizar para obtener una lista de riesgos categorizados. Las técnicas de análisis mediante tablas y tormenta de ideas se pueden utilizar para obtener una lista de riesgos con parámetros establecidos de impacto y probabilidad, así como la identificación del responsable del riesgo. Las técnicas gráficas permiten visualizar resultados de riesgos clasificados y priorizados.
La herramienta de gestión de riesgos proporcionará a las pymes el conocimiento de un conjunto de técnicas y herramientas que permiten llevar a cabo una gestión de riesgos básica, con lo cual se está impulsando la implementación de buenas prácticas de ingeniería de software enfocadas en la gestión de riesgos. Como trabajo futuro se está preparando un caso de estudio para validar la herramienta en un entorno real.



























