Introducción
Los directivos de las organizaciones reconocen que la alta calidad del producto se traduce en ahorro de costo y en una mejora general. La tendencia de la calidad comenzó en los años cuarenta con el influyente trabajo de (Deming, 1986), (Jones, 1994), (Knowles, 1994) y se hizo la primera verificación en Japón (Pressman, 2010). El crecimiento en el mercado de la industria del software trae consigo un incremento del papel de los productos de software en todas las esferas de la sociedad (Bannerman, 2013), (Mellon, 2012). Sin embargo, los resultados no se corresponden con la ejecución eficaz de los mismos (Pressman, 2010). Según los datos publicados por Standish Group desde el 2013, hasta la fecha, el número de proyectos exitosos aún permanecen en solo un 39% (Think Big, 2013).
En la evolución del desarrollo del software se refleja una tendencia a la definición de procesos en aras de una mejor alineación del desempeño organizacional y nos permiten identificar defectos tempranamente y detectar su origen (Jorge Luis Boria, 2013). Investigadores como Bauer, Boehm, Humphrey y Pressman consideran que, aunque el resultado final de un proyecto de desarrollo de software depende de la intervención de muchos factores, constituye un aspecto esencial centrarse en el proceso (Jorge Luis Boria, 2013), (Ahmet Dikici, 2012), (Neeraj Sharma, 2012).
Los estudios sobre calidad de software han ido descubriendo que los equipos de proyectos cometen los mismos errores una y otra vez, sin percatarse de que pudieran alcanzar sus objetivos de manera más fácil si incorporaran las lecciones aprendidas de proyectos anteriores (Paul Clarke, 2010), (Bannerman, 2013). Desarrollar un proyecto exitoso por sí solo tiene pocas ventajas, la incorporación y utilización de las experiencias anteriores de manera sistemática en la definición e implementación de los procesos es el verdadero éxito, pues eleva la madurez y capacidad de los mismos (Jorge Luis Boria, 2013).
En la industria del desarrollo de software se han presentado varios modelos, normas y guías que incorporan las prácticas a implementar por una organización, siendo objeto de esta investigación los siguientes: el Modelo de Capacidad de Madurez Integrada (CMMI por sus siglas en inglés) propuesto por el Instituto de Ingeniería de Software (SEI por sus siglas en inglés); el Modelo de Mejora de Proceso del Software Brasileño MPS.Br (SOFTEX, 2012); la Resolución 124 de la Gaceta Oficial de la República de Cuba No. 45 del 4 julio del 2019, donde se establecen las reglas básicas para la producción de programas y aplicaciones informáticas (Comunicaciones, 2019) y el Modelo de la Calidad para el desarrollo de aplicaciones informáticas(MCDAI) (Yoandy Lazo Alvarado, 2016). Todas estas proporcionan una guía para mejorar consecutivamente el proceso de desarrollo de software con el propósito de alinear la organización con el modelo de calidad deseado (Saulius Ragaisis, 2010), (Stasys Peldzius, 2011).
Teniendo en cuenta sus necesidades y para hacer frente a los altos índices de fracaso en los proyectos de desarrollo de software, las organizaciones han comenzado a realizar el proceso de aseguramiento de la calidad. En muchos casos de manera formal, basados en uno de los modelos, normas o estándares de calidad reconocidos para la industria del software (Sune Dueholm Müller, 2010), (Gleison Santos M. K., 2012), (Tanja Woronowicz, 2013), (Mas, 2017), (Stamelos, 2018).
El aseguramiento de la calidad establece la infraestructura de apoyo a los métodos de la ingeniería de software, la administración racional de proyectos y las acciones de control de calidad, todo con una gran importancia si se trata de elaborar software de alta calidad (Pressman, 2010). Tiene como característica ser sistemático, independiente y documentado. Su objetivo fundamental es obtener información relevante con el fin de evaluar la calidad de los procesos de la organización para la toma de decisiones. Examina y evalúa la conformidad entre la definición de los procesos y la ejecución de estos en la producción (University, 2010).
El aseguramiento de la calidad de software (PQA por sus siglas en ingles), es una actividad que se aplica a todo el proceso del software. Esto ocurre debido a que provee las prácticas necesarias para evaluar objetivamente los procesos definidos, productos de trabajo y servicios de la organización contra la descripción de los procesos, normas y procedimientos definidos y garantizar que todas las no conformidades sean corregidas. El PQA incluye procedimientos para la aplicación efectiva de métodos y herramientas, supervisa las actividades de control de la calidad, tales como revisiones técnicas y las pruebas de software, procedimientos para la administración de cambio y elaboración de reportes (Pressman, 2010).
Cuando en una organización no se realiza aseguramiento de la calidad se provoca:
Desconocimiento de los procesos que se siguen en la organización, así como si se respetan los estándares definidos para los procesos y productos (Jorge Luis Boria, 2013).
Los mismos productos se entregan con niveles diferentes de calidad.
Los buenos productos no pueden garantizar buenos procesos organizacionales (Jorge Luis Boria, 2013).
Se incurre en un alto costo financiero y de posicionamiento en el mercado por la falta de calidad (Institute, 2017).
A partir de este análisis es posible concluir que la institucionalización del proceso aseguramiento de la calidad aporta ventajas significativas respecto a la madurez de la organización. No obstante, requiere la institucionalización de buenas prácticas, que son difíciles de abordar, dependiendo del contexto, de ahí que el objetivo de la presente investigación es identificar las oportunidades de mejora del proceso de Aseguramiento de la Calidad del Proceso y el Producto en la Universidad de las Ciencias Informáticas.
Métodos o Metodología Computacional
Entre los métodos de trabajo científico utilizados en la investigación se destacan los que se mencionan a continuación. Además, se brinda una breve explicación de los fines para los que fueron utilizados.
Métodos teóricos:
Histórico - lógico: para realizar un análisis del aseguramiento de la calidad del proceso y el producto a través de los modelos, normas y guía de calidad se analiza el impacto generado a partir de su aplicación en la producción de software y cómo puede contribuir a la definición del proceso propuesto.
Sistémico: para integrar armónicamente los componentes del proceso.
Analítico - sintético: para realizar un análisis de los fundamentos teóricos existentes referentes al aseguramiento de la calidad del proceso y el producto en el desarrollo de software y resumir los principales elementos q sustenta los resultados.
Métodos empíricos:
Revisión documental: para reunir evidencia que demuestre la necesidad de la investigación, a partir de la de la revisión de los expedientes de revisiones realizadas a nivel de proyectos, centros de desarrollo y Universidad en los años 2016-2021.
Resultados y discusión
En la literatura sobre el proceso Aseguramiento de la calidad se encuentran varios modelos y guías para ayudar a los directivos de las organizaciones a conducir el proceso, algunos de ellos son: Modelo Integrado de Madurez y Capacidad para desarrollo (CMMI-DEV) versión 1.3 (Mary Beth Chrissis, 2010), el Modelo de Mejora y Evaluación del Proceso de Desarrollo de Software Brasileño MPS. Br (Gisele Villas Boas, 2010), (Gleison Santos M. K., 2012), (Gleison Santos M. K., 2010), la Resolución 124 de la Gaceta Oficial de la República de Cuba -No. 45 del 4 julio del 2019 (Comunicaciones, 2019) y el Modelo de la Calidad para el desarrollo de Aplicaciones Informáticas (MCDAI) (Yoandy Lazo Alvarado, 2016).
El modelo CMMI-DEV proporciona una orientación para aplicar las buenas prácticas para el desarrollo de software en una organización. Las buenas prácticas del modelo se centran en las actividades para desarrollar productos y servicios de calidad con el fin de cumplir las necesidades de clientes y usuarios finales. El CMMI, fue publicado en el año 2000, (Mary Beth Chrissis, 2010).
MPS.Br (Gisele Villas Boas, 2010), es un modelo de mejora y evaluación del proceso de desarrollo de software, para las micro, pequeñas y medianas empresas principalmente de la industria del software del Brasil. Los protagonistas del programa destinado a la creación y difusión del modelo MPS fueron los representantes de la Academia, Gobierno e Industria (Triple Hélice), bajo coordinación de Softex (SOFTEX, 2012). El sustento de este modelo se basa en las normas internacionales ISO/IEC 12207:2008, ISO/IEC 15504: 2008 y CMMI (Saulius Ragaisis, 2010), (Stasys Peldzius, 2011).
En Cuba se ha establecido un marco jurídico para el desarrollo de software. En la Resolución 124 de la Gaceta Oficial de la República de Cuba No. 45 del 4 julio del 2019 (Comunicaciones, 2019), se resaltan las reglas básicas que norman la producción y la evaluación de la calidad de los procesos productivos y de sus productos resultantes. Las reglas básicas referentes al área de PQA son las siguientes:
Realizar el aseguramiento de la calidad
Realizar evaluaciones periódicas a la ejecución de los procesos y a sus productos de trabajo, para asegurar la conformidad con los planes, procedimientos y estándares definidos.
Registrar las no conformidades identificadas durante las evaluaciones y asignarle acciones correctivas.
Realizar el seguimiento de las no conformidades hasta la solución definitiva.
Estas reglas se complementan con el MCDAI, modelo elaborado por el Centro Nacional de Calidad de Software (CALISOFT), el cual propone niveles de capacidad y de madurez organizacional, con el propósito de estandarizar los procesos de desarrollo, definir buenas prácticas y seguirlas sistemáticamente (Yoandy Lazo Alvarado, 2016). Con ello pretende promover un marco cubano de referencia que identifique las particularidades del sistema organizacional a nivel nacional, siguiendo las regulaciones: Decreto No. 281/2013 Perfeccionamiento Empresarial y la Resolución 60/2011 Control Interno; y se alinee con reconocidos modelos y estándares internacionales para la producción de software, tales como: Modelo de Madurez y Capacidad Integrado para el Desarrollo (CMMI-DEV v1.3) (Mary Beth Chrissis, 2010), Modelo de Procesos para la Industria del Software (MoProSoft) (Darias González, 2019), Mejora de Proceso de Software Brasileño (MPS.Br) (SOFTEX, 2012), Mejora de Procesos para Fomentar la Competitividad de la Pequeña y Mediana Industria del Software de Iberoamérica (COMPETISOFT), Guía de Fundamentos para la Dirección de Proyectos (PMBOK) (Institute, 2017), ISO 9001:2015 Sistema de Gestión de la Calidad, ISO 12207:2008 Procesos del Ciclo de Vida del Software, ISO/IEC/IEEE 90003:2018 Directrices para la aplicación de la ISO 9001:2015 a software de computadora, entre otras.
Del análisis de las propuestas se puede concretar que, aunque con diferentes nombres (directrices, reglas, prácticas, requisitos), todos ofrecen elementos en común para llevar a cabo el aseguramiento de la calidad en un ciclo desde la evaluación, comunicación y resolución de no conformidades. Es significativo destacar que en todos los casos se propone llevar a cabo PQA a nivel de proyecto y a nivel organizacional con prácticas específicas y genéricas. Resulta importante para esta investigación abundar en las investigaciones similares realizadas que puedan aportar en la organización de las actividades a desarrollar por cada uno de los roles y los productos de trabajo de entrada y salida. Es importante destacar que las actividades de aseguramiento pueden variar en las organizaciones dependiendo del contexto, por tanto, algunas actividades podrán ejecutarse de manera: iterativa, superpuestas, combinadas, concurrentes y/o se omiten.
Abundante es la bibliografía que aborda procesos de aseguramiento de la calidad del proceso y el producto en diferentes contextos, algunos de ellos son: Gómez (Gerzon Gómez, 2014), Boria (Jorge Luis Boria, 2013) y otros, Paladines (Paladines, 2014), Dante (Carrizo, 2017), Toro (Peláez, 2018), Aranibar, Méndez y Mauricio (Bryan Aranibar, 2019), Martínez (Martínez-Fernández, 2018), Gutiérrez (Acea, 2018).
Se pueden identificar, algunas carencias presentadas por los trabajos anteriores, tales como: los procesos de aseguramiento son solamente para la etapa de implementación del software y testing, dejando de lado las fases iniciales del desarrollo de un producto de software; y, por último, un plan de aseguramiento de la calidad se encarga de gestionar la calidad en todo el desarrollo del proyecto, por lo tanto, no es una medida de control.
Varios son los autores, que proponen procesos, y actividades que aseguren de una u otra forma la calidad en el desarrollo de software, las dificultades que tiene las organizaciones desarrolladoras de software (Kroeger, 2014), (Muñoz, 2013) y los resultados de (Montoni, 2014), dan cuenta de la necesidad de desarrollar procesos específicos en las organizaciones que aseguren la calidad en el desarrollo de productos de software.
La Universidad de las Ciencias Informáticas (UCI), cuenta una Red de Centros de producción, donde se ejecuta el proceso productivo con Centros de Desarrollo. La Dirección de Calidad de Software de la institución, tiene la misión de "coordinar la mejora continua de la calidad de los productos y servicios informáticos ofrecidos por los centros productivos, mediante actividades de formación del capital humano de estos; la normalización, seguimiento y revisión a los procesos, productos y servicios con la participación de los desarrolladores e integrando fundamentos científicos, experiencias prácticas y basados en el modelo de calidad CMMI"(UCI 2015a). Esta misión está bastante enfocada en la mejora continua de la organización y ello se debe a que la Universidad desde el 2009 implementa programas de mejora de procesos.
El proceso de aseguramiento de la calidad del proceso y el producto por el cual se rigió el área productiva desde el 2016, está descrito en el IPP-3550:2016 Libro de Procesos para PPQA donde se describen todas las actividades, roles, responsabilidades y recursos necesarios para ejecutarlo. Su alcance inicial está orientado a la Red de Centros. De manera general en él se describen los elementos para alinear las actividades de PQA con los objetivos y prácticas de CMMI. Con los elementos abordados se cubre el área de procesos de PPQA de CMMI para Desarrollo en su versión 1.3, en el análisis de brechas se identifican algunas oportunidades de mejora como:
No se puede observar cuales No Conformidades (NC) se manejaron como “permiso”.
Revisar algunas causas de las NC, quizá algunas ya no tengan sentido que existan.
Revisar días para corregir NC en proyectos de menor duración, como portales.
Posterior al 2016 el marco jurídico cubano se ha ampliado con la salida de la Resolución 124 de la Gaceta Oficial de la República de Cuba No. 45 del 4 julio del 2019 y el Modelo de Calidad para Aplicaciones Informáticas MCDAI en el 2021, el modelo CMMI evoluciono de la versión 1.3 a la 2.0, por último, el análisis de varios trabajos similares ha permitido identificar deficiencias en el proceso del 2016 que son objeto de análisis en esta investigación:
Al cierre de las no conformidades no se realiza un análisis de si las acciones correctivas y preventivas actúan sobre las causas de la no conformidad, para garantizar que se actúen sobre la no conformidad, pero también se actué sobre las causas e incidir en la mejora continua.
En el análisis de tendencia se realiza un análisis de las causas que más inciden en las no conformidades, pero no en las acciones de prevención que se realizan para eliminar las causas de las no conformidades y si estas cubren las causas o no. Estas acciones deben ser objeto de seguimiento hasta su cierre.
En el proceso propuesto no se realiza un análisis de los riesgos en dos sentidos, primero la acción sobre la no conformidad mitiga riesgo del proyecto o del centro o el proceso organizacional donde se detecte la NC y la segunda es identificar los riesgos de PPQA y clasificar la NC en correspondencia con el riesgo y no solamente con proceso y producto como se plantea en el proceso actual.
La escala de severidad es Alta, Media y Baja puede evolucionar a un análisis más profundo al incorporar la escala de severidad propuesta por Boria, Insalvable, Grave, Negociable, Salvable, Advertir que se corresponde en mayor medida con el seguimiento a realizar.
En el análisis de la encuesta de utilidad donde se recopila información respecto a las expectativas y la utilidad de los procesos y productos que se analiza en el análisis de tendencia de PPQA, no se abordan las acciones acometer por la organización a partir de los resultados y estas acciones seguirlas hasta su cierre.
De manera general el proceso de PPQA que existe en la Universidad cumple con las prácticas de los modelos, pero a partir de los análisis realizados por la autora se concluye que es necesario que incluyan el análisis de los riesgos en el proyecto y los relativos a PPQA, de las acciones sobre las causas de las no conformidades, de la severidad de las NC más alineado con el seguimiento de estas y la utilidad de los procesos y producto.
Conclusiones
Un enfoque de calidad hacia el aseguramiento de la calidad del proceso y el producto aporta ventajas significativas respecto a la madurez de la organización, no obstante, requiere la institucionalización de buenas prácticas, que son difíciles de abordar, dependiendo del contexto.
El aseguramiento de la calidad del proceso y el producto se recoge en varios modelos, normas y guías para la mejora de procesos, aunque con diferentes nombres (directrices, reglas, prácticas, requisitos), todos ofrecen elementos en común para llevar a cabo el aseguramiento de la calidad en un ciclo desde la evaluación, comunicación y resolución de no conformidades, tanto a nivel de proyecto como a nivel organizacional.
Aunque existen modelos, normas y guías para la definición del proceso de aseguramiento de la calidad del proceso y el producto, las actividades, roles, productos de trabajos y demás componentes de un proceso varían en dependencia del contexto y las actividades pueden ejecutarse de manera: iterativa, superpuestas, combinadas, concurrentes y/o se omiten.
Del análisis de los modelos, normas, guías y estudios similares se puede obtener una propuesta que no solo se sustente en el modelo CMMI, sino que sea multi-modelo y la Universidad puede ser evaluada teniendo en cuenta CMMI, MCDAI e ISO 9001:20018.
El proceso de PPQA actual de la Universidad cumple con las prácticas de los modelos, pero se puede identificar mejora a partir del análisis de los riesgos en el proyecto y los relativos a PPQA, de las acciones sobre las causas de las no conformidades, de la severidad de las NC más alineado con el seguimiento de estas y la utilidad de los procesos y producto.