SciELO - Scientific Electronic Library Online

 
 número17Estableciendo controles y perímetro de seguridad para una página web de un CSIRTUna aproximación basada en metamodelado del área de proceso de Validación del CMMI: Un caso de estudio índice de autoresíndice de materiabúsqueda de artículos
Home Pagelista alfabética de revistas  

Servicios Personalizados

Revista

Articulo

Indicadores

Links relacionados

  • No hay articulos similaresSimilares en SciELO

Compartir


RISTI - Revista Ibérica de Sistemas e Tecnologias de Informação

versión impresa ISSN 1646-9895

RISTI  no.17 Porto mar. 2016

https://doi.org/10.17013/risti.17.16-25 

ARTÍCULOS

Establecimiento del estado del arte sobre el aligeramiento de procesos de software

Establishing the state of the art on software process lightening

Juan Miramontes 1, Mirna Muñoz 1, Jose A. Calvo-Manzano 2, Brisia Corona 1

 

1 Centro de Investigación en Matemáticas, Av. Universidad No. 222, 98068, Zacatecas, México. E-mail:juan.miramontes@cimat.mx, mirna.munoz@cimat.mx, brisia.corona@cimat.mx

2 Universidad Politécnica de Madrid, Escuela Técnica Superior de Ingenieros Informáticos. Campus de Montegancedo S/N, 28660, Madrid, España. E-mail: joseantonio.calvomanzano@upm.es

 

RESUMEN

Existen varios modelos utilizados en la mejora de procesos de software tales como CMMI e ISO/IEC 15504, cuya implementación adecuada, implica no sólo la definición de los procesos, si no también introducir a las empresas de software en el desarrollo de una cultura de mejora continua. Un camino factible que tienen estas empresas para lograr la mejora continua es la optimización de sus procesos mediante su aligeramiento. Este artículo presenta un resumen de protocolo de la revisión sistemática llevado a cabo para esta investigación, así como los resultados del análisis de estrategias para el aligeramiento de procesos de software actualmente utilizados.

Palabras-clave: Aligeramiento de procesos de software; Estrategias para aligerar procesos; Mejora de procesos de software; Revisión sistemática de la literatura.

 

ABSTRACT

There are several models used in the software process improvement such as CMMI and ISO/IEC 15504. A proper implementation of a model or standard, involves not only the definition of processes, but introducing the software organizations in the development of a continuous process improvement culture. A feasible way for these organizations to achieve a continuous improvement is the optimization of their processes through their lightening. This paper presents a summary of the systematic review protocol performed for this research and the results of the analysis of strategies for software process lightening currently used.

Keywords: Software process lightening; Strategies for lightening process; Software process improvement, Systematic literature review.

 

1. Introducción

La mejora de procesos de software (Software Process Improvement, SPI) tiene como objetivo hacer más eficiente el proceso de software e incrementar la calidad del producto mediante la evaluación y ajuste continuo del proceso (Petersen & Wohlin, 2010). Con este propósito se han propuesto varios modelos y estándares de mejora de procesos como Capability Maturity Model Intregration(CMMI) (CMMI Product Team, 2010) o el ISO/IEC 15504 (ISO/IEC, 2004), los cuales proporcionan un conjunto de mejores prácticas que han demostrado tener éxito en las organizaciones de software (Pettersson, et al., 2008).

En este contexto, es importante resaltar que la implementación adecuada de un modelo o estándar implica no sólo la definición de procesos, además implica introducir a las empresas en el desarrollo de la cultura de mejora continua.

Actualmente, un desafío crítico para las organizaciones de software es encontrar la forma de mejorar sus procesos de desarrollo, de manera que puedan aumentar su ventaja competitiva con respecto a sus competidores para sobrevivir en el mercado (Cuevas, Jezreel, Muñoz, & Tomas, 2010). En empresas que cuentan con procesos definidos basados en la implementación de modelos y estándares como CMMI o ISO/IEC 15504 y que han adoptado una cultura de mejora continua, se ha identificado que un camino viable a seguir para la mejora continua de procesos es la optimización de sus procesos mediante su aligeramiento.

Citando a Saint-Exupéry (como se menciona en Kruchten, 2011): “La perfección se consigue, no cuando no hay nada más por añadir, sino cuando no hay nada más por quitar”. Este artículo tiene como objetivo establecer el estado del arte respecto a estrategias para el aligeramiento de proceso.

El resto del documento se organiza de la siguiente manera: la sección 2 muestra el resumen del protocolo de revisión sistemática ejecutado, la sección 3 muestra un análisis de las estrategias para aligerar procesos identificadas, la sección 4 presenta una comparativa de propuestas relacionadas, la sección 5 muestra la propuesta de un método para aligerar procesos y, la sección 6 presenta las conclusiones.

 

2. Revisión sistemática de la literatura

La revisión sistemática de la literatura (Systematic Literature Review (SLR) por sus siglas en inglés) es un método que permite identificar, evaluar e interpretar toda la evidencia disponible relevante a un tema o pregunta de investigación (Kitchenham & Charters, 2007). El objetivo de la ejecución de la revisión sistemática es la obtención de información relevante sobre un tema a través de la utilización de un método formal, reduciendo la posibilidad de sesgo en las búsquedas de estudios, ya que se basa en la definición de un protocolo que especifica los métodos utilizados para guiar la revisión (Muñoz, Gasca, & Valtierra, 2014), se constituye de tres fases principales: planificación, ejecución, y reporte de resultados. A continuación se detallan las actividades realizadas en cada fase para la definición del protocolo de SRL para esta investigación como se indica: la Tabla 1 muestra las actividades realizadas en la fase de planificación, mientras que en la Tabla de 2 se encuentran las actividades realizadas para la fase de ejecución. El reporte completo de la revisión sistemática realizada se encuentra en (Miramontes, Muñoz, Calvo-Manzano, & Corona, 2016).

 

 

 

 

3. Estrategias para aligerar procesos de software

Para conocer las estrategias utilizadas en el aligeramiento de procesos, se ha realizado una categorización enfocada en las siguientes características: el uso de herramientas, la combinación de prácticas formales y ágiles, la identificación de factores de éxito en el desarrollo ágil, la identificación de las mejores prácticas de una organización, el uso de reuniones entre partes interesadas (stakeholders), el diseño de metodologías para el aligeramiento y el uso de métodos Lean. La Tabla 3 muestra las estrategias con su respectiva descripción y el número de estudios encontrados de acuerdo a la clasificación realizada.

 

 

Como se observa en la Tabla 3, de acuerdo a los resultados obtenidos, la estrategia más utilizada para aligerar procesos de software es el uso de herramientas, sin embargo éstas se enfocan en la automatización del proceso, reduciendo el tiempo y esfuerzo que toma su implementación y no en el análisis del proceso para su aligeramiento.

Además, debido a la naturaleza de las estrategias, se identifica que las estrategias identificadas no son mutuamente excluyentes, es decir, pueden combinarse para establecer un enfoque adecuado para aligerar procesos.

4. Comparativa de propuestas

A continuación en la Tabla 4 se muestra una comparación entre algunas de las principales propuestas, excluyendo las propuestas que son herramientas (ya que éstas solo automatizan el proceso pero no lo aligeran). En esta tabla para cada propuesta se muestra la problemática, una descripción de la propuesta y los resultados.

 

 

Las propuestas analizadas son:

    • Mapping CMMI Level 2 to Scrum Practices: An Experience Report (Diaz, Garbajosa, & Calvo-Manzano, 2009).

    • A Framework of Software Process Tailoring for Small and Medium Size IT Companies (Akbar, Hassan, & Abdullah, 2012).

    • A Proposed Methodology for Establishing Software Process Development Improvement for Small Software Development Firms (Al-Tarawneh, Abdullah, & Ali, 2011).

    • Software Development Practice for FDA-Compliant Medical Devices (Lin & Fan, 2009).

    • Software Process Improvement though the Lean Measurement (SPI-LEAM) method (Petersen & Wohlin, 2010).

    • SPLICE: A Lightweight Software Product Line Development Process for Small and Medium Size Process (Vale et al., 2014).

    • Using CMMI together with agile software development: A systematic literature review (Selleri Silva et al., 2015).

    • Using Scrum to guide the execution of software process improvement in small organizations (Pino, Pedreira, García, Luaces, & Piattini, 2010).

En la Tabla 5 se analizan el grado en el que las estrategias identificadas para aligerar procesos son cubiertas por las ocho propuestas analizadas, así mismo se agrega el modelo, estándar o metodología ágil que implementa. Para el análisis se utiliza la siguiente nomenclatura: si una característica es cubierta completamente; se utiliza el icono relleno con color negro (), si la característica es cubierta parcialmente; se utiliza el icono relleno a la mitad (), por último, si la característica no es cubierta; se utiliza el icono blanco ().

 

 

5. Propuesta de método para aligerar procesos

Con base análisis de las estrategias encontradas en la revisión sistemática, como trabajo en curso se desarrolla una propuesta de un método para aligerar procesos centrándose en 3 de las estrategias encontradas: combinación de prácticas formales y prácticas ágiles, identificación de las mejores prácticas de la organización y uso de técnicas Lean.

La propuesta del método se compone de 5 pasos mostrados en la Figura 1. Aunque la estrategia más utilizada es el uso de herramientas, esta no fue seleccionada como estrategia para el desarrollo de la propuesta, debido a que las herramientas se enfocan en la automatización del proceso y no en su aligeramiento, sin embargo, son contempladas en el cuarto paso de la propuesta, que consiste en proveer sugerencias de herramientas y técnicas ligeras para llevar a cabo la implementación de las prácticas.

 

 

Los objetivos de cada paso del método se describen a continuación:

    • Modelar el proceso de la empresa: Extraer las prácticas que realmente son llevadas a cabo en la organización y diagramar un proceso en base a ellas.

    • Analizar el valor añadido de las prácticas: Identificar las prácticas del proceso que no contribuyen a la creación de valor para el cliente o la empresa, así como obtener las mejores prácticas de la organización.

    • Realizar mapeo de prácticas formales a prácticas ágiles: Identificar prácticas ágiles equivalentes a las prácticas llevadas a cabo en la organización.

    • Sugerencia de técnicas y herramientas ligeras: Proveer sugerencias de técnicas y herramientas ligeras a llevar a cabo la implementación de las prácticas.

    • Rediseño del proceso: Rediseñar el proceso de la empresa con los cambios recomendados: quitando prácticas que no añaden valor, cambiando prácticas formales por prácticas ágiles y, sugiriendo técnicas y herramientas ligeras.

 

6. Conclusiones

Se realizó una revisión sistemática de la literatura para establecer el estado del arte con respecto a estrategias para el aligeramiento de procesos de software.

Entre los resultados se encontró que la estrategia más utilizada para aligerar procesos de software es el uso de herramientas, sin embargo, estas herramientas se centran en la reducción del tiempo y esfuerzo para la ejecución de un proceso, sin realizar un análisis del proceso en sí que permita su optimización. Además, analizando propuestas como la integración de prácticas de métodos formales con prácticas de desarrollo ágil de software y la identificación de prácticas clave o elementos críticos para el éxito de una organización, se concluye que las estrategias utilizadas para aligerar procesos existentes pueden ser integradas para la creación de un método que analice los procesos para su adecuado aligeramiento, tal que, puedan obtenerse procesos optimizados que apoyen a la mejora continua de las organizaciones.

En el análisis realizado a las propuestas existentes da como resultado que no existe una propuesta como la que se está desarrollando como parte de esta investigación. Sin embargo, las estrategias para aligerar procesos encontradas en la revisión sistemática enfocadas en la combinación de prácticas formales y prácticas ágiles, la identificación de las mejores prácticas de la organización y el uso de técnicas Lean sirvieron como base para el desarrollo de una propuesta de un método para aligerar procesos de software, logrando un análisis de las actividades del proceso e involucrando a los usuarios de los procesos. Además se está desarrollando una herramienta para la automatización del uso del método.

 

Referencias

Akbar, R., Hassan, M. F., & Abdullah, A. (2012). A framework of software process tailoring for small and medium size IT companies. 2012 International Conference on Computer & Information Science (ICCIS), 2, 914–918. http://doi.org/10.1109/ICCISci.2012.6297156         [ Links ]

Al-Tarawneh, M. Y., Abdullah, M. S., & Ali, A. B. M. (2011). A proposed methodology for establishing software process development improvement for small software development firms. Procedia Computer Science, 3, 893–897. http://doi.org/10.1016/j.procs.2010.12.146        [ Links ]

CMMI Product Team. (2010). CMMI® for Development, Version 1.3. Pittsburgh, PA.         [ Links ]

Cuevas, G., Jezreel, M., Muñoz, M., & Tomas, S. F. (2010). Experiencia en la Mejora de Procesos de Gestión de Proyectos Utilizando un Entorno de Referencia Multimodelo. RISTI - Revista Ibérica de Sistemas E Tecnologias de Informação, 87–100.         [ Links ]

Diaz, J., Garbajosa, J., & Calvo-Manzano, J. a. (2009). Mapping CMMI Level 2 to Scrum Practices: An Experience Report. Software Process Improvement, 42, 93–104. http://doi.org/10.1007/978-3-642-04133-4        [ Links ]

Garzás, J., Pino, F. J., Piattini, M., & Fernández, C. M. (2013). A maturity model for the Spanish software industry based on ISO standards. Computer Standards and Interfaces, 35(6), 616–628. http://doi.org/10.1016/j.csi.2013.04.002        [ Links ]

ISO/IEC. (2004). ISO/IEC 15504 Information Technology – Process Assessment (Parts 1–5).         [ Links ]

Kitchenham, B., & Charters, S. (2007). Guidelines for performing Systematic Literature Reviews in Software Engineering. Engineering, 2, 1051. http://doi.org/10.1145/1134285.1134500        [ Links ]

Kruchten, P. (2011). A plea for lean software process models. Procs. 2011 International Conference on Software and Systems Process (ICSSP), 1(604), 235–236. http://doi.org/10.1145/1987875.1987919        [ Links ]

Lin, W. L. W., & Fan, X. F. X. (2009). Software Development Practice for FDA-Compliant Medical Devices. 2009 International Joint Conference on Computational Sciences and Optimization, 2, 388–390. http://doi.org/10.1109/CSO.2009.191        [ Links ]

Miramontes, J., Muñoz, M., Calvo-Manzano, J. a., & Corona, B. (2016). Establishing the state of the art of frameworks, methods and methodologies focused on lightening software process: A systematic literature review. Advances in Intelligent Systems and Computing, 405, 71–85. http://doi.org/10.1007/978-3-319-26285-7_7        [ Links ]

Muñoz, M., Gasca, G., & Valtierra, C. (2014). Caracterizando las necesidades de las pymes para implementar mejoras de procesos software: Una comparativa entre la teoría y la realidad. RISTI - Revista Ibérica de Sistemas E Tecnologias de Informação, 1(E1), 1–15. http://doi.org/10.4304/risti.e1.1-15        [ Links ]

Petersen, K., & Wohlin, C. (2010). Software process improvement through the Lean Measurement (SPI-LEAM) method. Journal of Systems and Software, 83(7), 1275–1287. http://doi.org/10.1016/j.jss.2010.02.005        [ Links ]

Pettersson, F., Ivarsson, M., Gorschek, T., & Öhman, P. (2008). A practitioner's guide to light weight software process assessment and improvement planning. Journal of Systems and Software, 81(6), 972–995. http://doi.org/10.1016/j.jss.2007.08.032        [ Links ]

Pino, F. J., Pedreira, O., García, F., Luaces, M. R., & Piattini, M. (2010). Using Scrum to guide the execution of software process improvement in small organizations. Journal of Systems and Software, 83(10), 1662–1677. http://doi.org/10.1016/j.jss.2010.03.077        [ Links ]

Rizwan, M., & Hussain, S. a. (2008). An adaptive software development process model. Advances in Engineering Software, 39(8), 654–658. http://doi.org/10.1016/j.advengsoft.2007.08.001        [ Links ]

Selleri Silva, F., Soares, F. S. F., Peres, A. L., Azevedo, I. M. De, Vasconcelos, A. P. L. F., Kamei, F. K., & Meira, S. R. D. L. (2015). Using CMMI together with agile software development: A systematic review. Information and Software Technology, 58, 20–43. http://doi.org/10.1016/j.infsof.2014.09.012        [ Links ]

Vale, T., Cabral, B., Alvim, L., Soares, L., Santos, A., Machado, I., … Almeida, E. (2014). SPLICE: A Lightweight Software Product Line Development Process for Small and Medium Size Projects. 2014 Eighth Brazilian Symposium on Software Components, Architectures and Reuse, 42–52. http://doi.org/10.1109/SBCARS.2014.11        [ Links ]

 

Recebido/Submission: 03/27/2016

Aceitação/Acceptance: 04/14/2016

Creative Commons License Todo el contenido de esta revista, excepto dónde está identificado, está bajo una Licencia Creative Commons