Instituto Polit�cnico Nacional
Instituto Politécnico Nacional
"La Técnica al Servicio de la Patria"

Boletín No. 73
1o. de julio de 2019




CMMI EN MÉXICO Y ANÁLISIS DE APLICACIÓN EN UNA PYME MEXICANA

 

Ing. Tania Jezabel López García
Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.
Dra. Elizabeth Acosta Gonzaga
Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.
Jesús Antonio Alvarez-Cedillo
Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.

Instituto Politécnico Nacional
UPIICSA
SEPI

 

Resumen

Dentro de una organización las estrategias de mejora continua son utilizadas cuando sobreviene la aparición de nuevos proyectos que se han de incorporar a las rutinas de la organización, así mismo, particularmente, son implementadas para la integración de sistemas. En este sentido, el presente documento aborda el análisis de implementación de CMMI para una mediana empresa, donde se tiene contemplado el desarrollo de un sistema en apoyo a la gestión de módulos específicos dentro de su operación. Generalmente, cuando se trata de la integración un proyecto informático en una organización, se presentan algunas dificultades importantes respecto a la resistencia al cambio; en este caso en particular, la principal dificultad se encuentra en que el sistema a desarrollar involucra una tecnología utilizada que heredara funcionalidades al nuevo sistema. Dado estas características, es importante identificar y analizar las posibilidades de implementación, específicamente, la parte enfocada al desarrollo: CMMI-DEV.

Palabras Clave: : Gestión de procesos, CMMI-DEV, Optimización de procesos, mejora continua, desarrollo de software.

 

I. Introducción

 

El marco CMMI brinda la organización requerida para establecer los modelos del CMMI y los componentes de evaluación de CMMI. Este marco de trabajo, permite el uso de múltiples modelos, por lo cual, abarca los componentes más comunes a todos los modelos CMMI aplicables. El material común es nombrado “CMMI Model Foundation” o “CMF”, los componentes del CMF son utilizados para conformar todos los modelos generados a partir del modelo CMMI, esos componentes trabajan en armonía con el material aplicable a un área de interés para crear un “modelo a la medida”. La colección de componentes que son utilizados para construir modelos, materiales de entrenamiento y materiales en el área de interés son llamados “constelación”. (Meneses, Padilla, Mora, & Barrera, 2014)

De esta manera, Meneses, Padilla, Mora & Barrera (2014), mencionan en su artículo, que dentro del universo que representa esta certificación, se encuentran tres clasificaciones determinantes:

 CMMI-DEV. Se implementa para desarrollo, brinda las guías necesarias para medir, controlar y gestionar los procesos de desarrollo.

 CMMI-ACQ. Se implementa para la adquisición, brinda una guía para controlar y gestionar la adquisición de productos y servicios que cumplan con las necesidades del cliente.

 CMMI-SVC. Se especializa en servicio, brinda guías para aquellos que proveen servicios dentro de las organizaciones y a clientes externos.

Es un hecho, que la industria de software representa una actividad económica de gran importancia en la gran mayoría de países del mundo, presentando una oportunidad de bienestar en países en vías de desarrollo, tal como lo mencionan Aspray, Mayadas y Vardi (2006), citados por Diez y compañía (2014).

La industria de desarrollo de software a nivel mundial está conformada en mayor medida por micro, pequeñas y medianas empresas desarrolladoras que suponen cerca del 90% de los negocios formales y generalmente el 40 y el 50% del empleo total. No obstante, en palabras de Batista (2000), estas empresas de software presentan serios problemas de madurez en sus procesos de desarrollo; además, en la mayoría de los casos la operación de sus procesos es “caótica”, lo que, evidentemente, afecta a toda la organización. Dicha situación resulta especialmente crítica, ya que conlleva problemas asociados como falta de competitividad y consecuentemente limita el crecimiento. También se suelen dar estos problemas de madurez en el caso de pequeños proyectos de software, incluso en grandes empresas. (Diez, Howlet, & Aguilar, 2014)

Muchas PyMEs pueden considerar asegurar la calidad de sus productos mediante la mejora de sus procesos y la acreditación en modelos de calidad de organismos tales como el Software Engineering Institute (SEI) y la International Organization for Standarization (ISO). Sin embargo, la preparación y análisis previo a la acreditación en estos estándares, generalmente, es costosa y presupone largos periodos de trabajo, porque los modelos de mejora, procesos y evaluación, como los propuestos por el SEI e ISO, están estructurados (y han sido creados) para ser aplicables en grandes empresas, así como lo declararon en su momento Saiedian y Carr (1997). (Meneses, Padilla, Mora, & Barrera, 2014)

Habitualmente, las empresas organizan y administran el trabajo con base en las tareas o áreas de habilidad, y no en torno a procesos que agregan valor para el cliente. Esta forma de trabajo deriva usualmente en ambigüedad de la definición de quien será responsable por la realización de actividades y productos. Por esta razón, algunas actividades no se realizan o son duplicadas, lo que causa problemas operativos con el cliente. Además, el conocimiento y la experiencia sobre los asuntos administrativos y el propio desarrollo de software están dispersos entre innumerables libros, artículos o estándares. Encontrar, asimilar y aplicar estos conocimientos no es una tarea fácil para grupos pequeños con recursos restringidos. (Guell, 2016)

A pesar de que el primer modelo de áreas claves de procesos de software como el Capability Maturity Model (CMM) y el modelo de procesos de ciclo de vida de software ISO/IEC 12207, fueron publicados hace más de diez años, la adopción de las mejores prácticas integradas en procesos en la industria de software no se ha generalizado. La mayor dificultad la tienen las pequeñas empresas, o las de reciente creación, principalmente por la falta de recursos para comprender y adoptar lo necesario de los modelos mencionados. (Meneses, Padilla, Mora, & Barrera, 2014)

 

Tabla 1. Comparativa de modelos de mejora en el área tecnología. Fuente: Meneses, Padilla, Mora, & Barrera (2017)

 

CMMI que se especializa en el desarrollo, se encarga de brindar un compendio de guías completas e integradas para desarrollar productos y servicios, igualmente, provee orientación para aplicar las buenas prácticas CMMI en una organización de desarrollo. Estas buenas practicas mencionadas, se centran en las actividades para desarrollar productos y servicios de calidad, con la finalidad de cumplir las necesidades del cliente(es) y/o usuarios finales. (Meneses, Padilla, Mora, & Barrera, 2014)

Este modelo trabaja con cada área de proceso asociándolo con uno de los 5 niveles de madurez que implementa. Estos niveles sirven como punto de referencia para conocer el “nivel de madurez” en el cual se encuentra la organización. En este sentido, es posible alcanzar cualquiera de estos niveles cuando la organización ha implantado todas las áreas de procesos y sus prácticas requeridas, tanto de dicho nivel como de los niveles que le preceden. (Meneses, Padilla, Mora, & Barrera, 2014)

Para conocer el estado de una empresa donde se pretende implmenetar un modelo de mejora, se debe conocer, hablando espcificamente de CMMI, el estado inicial de las organizaciones de software. A continuación, en la Fig. 1, se presenta un macro de una metodología para diagnostico, elaborada por dos ingenierias de la Universidad EAFIT.

 

Figura 1. Macro de las metodologías de diagnóstico. Fuente: Meneses (2014)

 

Prerrequisitos y Planeación del Diagnóstico

 

 Analizar Requerimientos del Diagnóstico. Se debe entender las necesidades del negocio, así mismo, se debe estar consciente del por qué es necesario el diagnóstico, él será quien defina los objetivos, alcance y los resultados esperados del proceso.

 Definir el Nivel de Madurez en el que se realizará el Diagnóstico. Fase de investigación que se enfoca en la organización, mediante la cual, busca determinar si se ha tendido alguna experiencia con la evaluación en CMMI. En caso de que el resultado sea positivo, la organización podría sugerir al evaluador el alcance con el cual se hará la evaluación

 Definir los Proyectos que conformarán la muestra a diagnosticar. debe seleccionar un conjunto de proyectos para conformar la muestra con la cual se llevará a cabo el diagnóstico.

 Definir las Fechas en las que se realizará el Diagnóstico. en qué momento se puede comenzar con dicho proceso, con el fin de que los Miembros del Equipo Evaluador y las personas que serán entrevistadas cuenten con la disponibilidad de tiempo necesaria.

 Elaborar el Documento de Planeación del Diagnóstico. documento que contendrá las bases para monitorear y controlar el proceso de diagnóstico.

 Firmar Documento de Aprobación de Entradas del Diagnóstico. se debe hacer la aprobación de dichos insumos o entradas. Además, el Patrocinador debe firmar un documento donde conste la aceptación de dichas entradas del diagnóstico.

 

Ejecución del Diagnóstico

 

Esta etapa de la Metodología mencionada, consta de cinco fases, así mismo, cada una de estas fases se conforma por una serie de subfases y/o actividades, mismas que se presentan:

  • Preparación
  • Recolección de Información
  • Análisis de Información
  • Presentación de Resultados
  • Cierre de la Evaluación

Así como menciono anteriormente, el método de mejora CMMI, se puede trabajar a niveles y por procesos de desarrollo. Igualmente, se basa en determinar si una organización es madura o inmadura en sus procesos, mediante niveles de madurez que están definidos de la siguiente manera: 1: Inicial, 2: Gestionado, 3: Definido, 4: Cuantitativamente gestionado y 5: Optimizado.

Resumiendo, el modelo CMMI, consiste en las mejores prácticas que tratan las actividades de desarrollo y de mantenimiento que cubren el ciclo de vida del producto/servicio, abarcando la concepción, la entrega y el mantenimiento, según palabras de Konrad & Shrum (2009). Además, el CMMI Institute, revela datos que precisan la traducción, de este modelo, a 10 idiomas, cuenta con presencia en 101 países; de los cuales, “11 gobiernos lo utilizan como soporte para el desarrollo económico de sus naciones, hace que CMMI se convierta en un modelo consistente, y con un fuerte reconocimiento de su implementación”. (Meneses, Padilla, Mora, & Barrera, 2014)

 

Figura 2. Ranking de certificaciones CMMI activas.

 

Por otro lado, Carlos Augusto Gutiérrez Pérez, (especialista en la implementación de procesos de CMMI en niveles de alta madurez 4 y 5), menciona algunas de las ventajas que significa la implementación de este modelo en niveles altos de madurez, específicamente, en empresa mexicanas. Entre estas se encuentran las siguientes:

 Mejor control de los proyectos que ejecutan, igualmente, los gerentes y directores cuentan con más elementos para la toma de decisiones. (Software Guru, s.f.)

 Mayor dirección en las estrategias de negocio de la empresa, de esta manera, se ha mejorado la participación en las diferentes decisiones. (Software Guru, s.f.)

 Mejoras cuantitativas que representan para la organización ahorros substanciales; tiempo, esfuerzo y/o costo son relevantes en estos resultados. De esta manera, ayuda al logro de los objetivos de negocio y estratégicos de la organización. (Software Guru, s.f.)

De igual forma, otro de los beneficios que se obtienen de una implementación de procesos en niveles superiores, es la generación de un lenguaje cuantitativo; lo cual, permite un mayor entendimiento entre las diversas áreas de la organización. También, se debe considerar los beneficios individuales, es decir, al implementar un nivel por separado. En este sentido, respecto a la madurez que se adquiere de los administradores de proyectos es bastante considerable, ya que muchas de las actividades realizadas en nivel 4, son enfocadas a ese rol, pues la experiencia y el uso de datos cuantificables para la administración integrada del proyecto provee las herramientas a los administradores para gestionar, controlar y evitar problemas de manera más precisa. (Software Guru, s.f.)

 

MATERIALES Y METODO

 

Debido a la constante competencia dentro del mercado de desarrollo de software a nivel mundial, ha influenciado considerablemente a las empresas mexicanas dedicadas a esta especialidad, convirtiéndose en una motivación para mejorar sus procesos y sus productos de software finales. En este contexto, México se encuentra bien posicionado, con respecto a la implantación del Modelo CMMI-DEV (desarrollo), con 4 organizaciones certificadas en el nivel 5 (Nvo León, Jalisco, Edo. México, Querétaro), además, México ocupo (hasta el 2014) el cuarto lugar a nivel mundial en certificación en CMMI-DEV. (Meneses, Padilla, Mora, & Barrera, 2014)

     

    Tabla. 2 Niveles de madurez contemplados por CMMI.

     

    Para poder implementar este marco de trabajo, se debe contar con proceso bien definidos, y con actividades que provean, no solo un valor agregado, sino también la posibilidad de mejora y con ello, hacer posible la innovación. Tal como mencionan Mejía, Padilla, & Gonzaga (2013), en su libro “Desarrollo y aprendizaje organizacional mediante el uso de TIC’s”, las empresas en pleno crecimiento, en ocasiones, pueden visualizar la importancia de la información y las TIC, y como estas tienen un gran impacto en la competitividad de la organización; ya que impulsa sus fortalezas dentro del mercado por el solo hecho de implementarse en su planeación estratégica.

    A continuación, se muestran los procesos (que en lo siguiente serán nombrados “módulos”), que se tiene contemplados para sistematización, es decir, el software que se pretende desarrollar deberá cumplir con las funcionalidades definidas en cada uno de los módulos. Cabe mencionar, que los procesos en los que se basan los módulos, se desarrollaron como se establece en las “mejores prácticas” y a un cuarto nivel de descripción, según el BPMN y metodologías que se implementaron para la gestión de procesos. (Navarro, 2010)

     

    Tabla 3. Descripción de módulos contemplados para sistematización. Fuente: PyME Mexicana.

     

    Así mismo, el Business Process Model and Notación (BPMN), que guio el desarrollo de cada uno de los módulos, permitió crear los diagramas pertinentes para describir con gran detalle, cada uno de los procedimientos que abarca cada proceso. Este modelo y notación de procesos de negocio, es una notación gráfica estandarizada que permite el modelado de procesos de negocio, en un diagrama de flujo.

     

     

    El diagrama de procedimiento mostrado en la Fig. 3, corresponde al módulo de “recursos materiales”, este fue hecho con el software de modelado “ADONIS”, el cual, es una opción de paga para el modelado en la gestión de procesos. Algunas de las ventajas que este software ofrece son:

     Se puede adaptar a cualquier Método metodología de modelación

     Los usuarios necesitan “poca formación” para generar un diagrama con esta herramienta (software intuitivo)

     Los procesos se integran fácilmente con otros Integración modelos (organigramas, mapas operativos, mapas de sistemas, modelos de riesgos, etc.)

     La información generada se guarda en una Base de Base datos Datos relacional común para todos los usuarios

     Los procesos se pueden analizar mediante una simulación y consultas a la base de datos en tiempo real

     Se pueden generar informes, procedimientos, subprocesos, etc.

    A partir del trabajo de gestión de procesos, se determinaron los requerimientos para el sistema, mediante una metodología general, esta progresión típica del flujo de trabajo para un definir un requisito es:

     El propietario del producto crea un requisito en el estado propuesto con un motivo predeterminado, y deriva en nuevo requisito

     El propietario del producto actualiza el estado a “activo” cuando comienzan a trabajar para implementarlo

     El equipo actualiza el estado a “resuelto” cuando se completa el desarrollo del código y se pasan las pruebas del sistema

     El propietario del producto transfiere el requisito a “cerrado” cuando el propietario del producto da su VoBo (validación) de que se implementó de acuerdo con los criterios de aceptación y pasó todas las pruebas de, valga la redundancia, validación

    De esta manera, el equipo de trabajo puede definir fechas y tiempos de desarrollo, es decir, definen tareas y estiman horas o días para completar las tareas previstas. Se pronostica el trabajo y definen las tareas al inicio de una iteración, y cada miembro del equipo realiza un subconjunto de esas tareas. Las tareas incluyen desarrollo, pruebas y otros tipos de trabajo. En este caso, el desarrollador define tareas para implementar requisitos, y el probador definir tareas para escribir y ejecutar casos de prueba. Esto es importante, ya que, al vincular las tareas con los requisitos y los errores, se puede visualizar el progreso realizado en estos elementos. (Brualla, 2015). A pesar de que la gestión de procesos provee, precisamente, procesos bien definidos, se requiere de cierto nivel de diseño, para realizar una descripción para el sistema lo suficientemente detallado, para reconocer y seleccionar soluciones más óptimas. En este sentido, se generaron algunos prototipos (conocidos también como pilotos) se utilizan como un medio para adquirir conocimientos suficientes para desarrollar un paquete de datos técnicos o un conjunto completo de requisitos. Cabe mencionar, que los modelos de atributos de calidad, simulaciones, prototipos se pueden utilizar para proporcionar información adicional sobre las propiedades de las posibles soluciones de diseño para ayudar en la selección de soluciones. Estas simulaciones son particularmente útiles para proyectos de desarrollo de software, tal como se presenta en el caso de estudio este documento. (DQS Certification India Private Limited, s.f.)

    En este contexto, las prácticas específicas de soluciones técnicas se aplican no solo al producto y a los componentes del producto, sino también a los procesos relacionados con el “ciclo de vida” del producto. Los procesos del “ciclo de vida” relacionados con el producto se desarrollan junto con el producto o componente del producto. Dicho desarrollo puede incluir la selección y adaptación de los procesos existentes (incluidos los procesos estándar) para su uso, así como el desarrollo de nuevos procesos. (Guell, 2016)

     

    3. RESULTADOS

     

    Después del análisis que implica una correcta implementación de gestión de procesos de negocio, se puede pasar de lleno a la parte de desarrollo de software, que es lo que compete el modelo de mejora de CMMI.

    La perspectiva de análisis presente para la posible implementación de este marco de desarrollo, tal como se mencionó en un principio, es CMMI-DEV, así, retomando un poco el concepto, se enfocó en algunas premisas indispensables: (Microsoft, 2017)

    • Requerimientos de desarrollo
    • Solución técnica
    • Integración de producto
    • Verificación
    • Validación

    De esta manera, se debe mencionar que e presente análisis abarco hasta la parte de integración del producto, ya que actualmente, se encuentra en desarrollo y aún no llega a la etapa de verificación y validación.

     

    Figura 4. Diagrama de secuencia de funcionalidad. Elaboración propia.

     

    La Fig. 5, presenta en diagrama de secuencia de la funcionalidad “solicitud de compra”, la cual, se encuentra especificada dentro del modelo de Recursos Materiales. Este diagrama muestra la secuencia de pasos que debe seguir un usuario para completar esta función en el sistema. Esta descripción de “pasos a seguir”, es muy importante ya que muestra de manera detallada como se debe realizar esta actividad en el sistema, y así poder ser más precisos al momento de comenzar con la etapa de la programación.

       

      Tabla 4. Propuesta de solución técnica. Fuente: PyME mexicana

       

      En el presente “caso de estudio”, con las etapas consideradas, se puede observar que la implantación de un proceso basado en CMMI es perfectamente viable, específicamente para medianas empresas; así mismo, resulta una opción muy recomendable, para posibles futuras mejoras y así tener la opción de poder implementar modelo o prácticas de innovación desde una etapa temprana, para potencializar el crecimiento de la organización.

      Estas etapas iniciales de implementación, han significado un esfuerzo relevante a distintos niveles (CMMI), buscando el objetivo de conseguir un procesos flexibles, ágiles y escalables. Es evidente que el trabajo no concluye todas las etapas del CMMI-DEV, sin embargo, se lleva un buen recorrido en los que significa análisis de procesos de negocio para la extrapolación al sistema, y de este mismo, se tiene bien definidos los “procedimientos” a seguir para la correcta codificación de las funcionalidades requeridas. Lo cual permite continuar con un esfuerzo de “reinterpretación” del módulo, mejora de las automatizaciones, simplificación de procesos, entre otras bondades que se irán esclareciendo conforme se vayan culminando las últimas etapas.

       

      4. DISCUSIÓN (O ANÁLISIS DE RESULTADOS)

       

      Daos los resultados obtenidos, se puede decir que la implementación del CMMI, es necesaria en todas las etapas de crecimiento de una empresa que se dedica o quiere desarrollar un proyecto de desarrollo de software. En este sentido, CMMI-DEV constituye el “modelo de referencia” para la evaluación y mejora de los procesos de desarrollo software.

      Por otro lado, no se debe olvidar que una herramienta de software ofrece ventajas inherentes a su implementación puramente computacional; p. ej.: facilita el manejo de grandes cantidades de datos, el control de elementos importantes, velocidad en el tiempo de análisis y procesamiento de la información.

       

      5. CONCLUSION

       

      Se puede concluir, dado los resultados generados, que la empresa que se tomó para caso de estudio, cumple con lo necesario para poder llevar a cabo este modelo de mejora, y de ser generado un óptimo proceso de desarrollo, poder llegar a tener algunas otras certificaciones que validen la calidad de su organización.

      Cualquier empresa que se aventure al desarrollo de software, debe tener en cuenta que una parte fundamental de este proceso es la extracción de requerimientos, ya que estos determinan gran parte de los alcances del software a desarrollar. Los procesos de desarrollo de software en estas empresas, enfrentan el reto de acreditar estos procesos a través de certificaciones como ISO 9001, CMM, o en este caso en particular: CMMI.

      El principal factor de éxito de estos primeros pasos en la implementación de CMMI-DEV, ha sido un equipo multidisciplinar y la suficiente experiencia, así como un conjunto de herramientas adaptadas a las necesidades del proceso y las singularidades de la empresa.

       

      6. AGRADECIMIENTOS

       

      Finalmente, se entiende de manera encarecida un agradecimiento a la empresa PyME mexicana, por proporcionar parte del trabajo realizado para la correcta gestión de su empresa y proyecto de software. Cumpliendo la parte de confidencialidad solicitada para prestar parte de la información de su empresa.

       

      Referencias

       

      1. Baldonedo, J. A. (Junio de 2007) Modelo CMMI y métodos ágiles en la gestión de proyectos software . Oviedo, España.

      2. Blanco, A. (2010) . Computer Science Engineer Web Developer - Multimedia Project Manager . España.

      3. Brualla, C. R. (2015) CMMI: Mejora del Proceso en Fábricas de Software. Madrid, España.

      4. Castellanos, L. R (2012) Desarrollo de Sistemas de Información . Maracaibo , Venezuela .

      5. Diez, M. d., Howlet, L. C., & Aguilar, A. L. (2014) Modelos de calidad usados en PyMEs de tecnología de información ubicadas en el parque de innovación y transferencia de tecnología (PIT2) de la Cd. de Chihuahua. XVI Congreso Internacional de Contaduría, Administración e Informática.

      6. DQS Certification India Private Limited. (s.f) Delhi Quality Services. Obtenido de /https://dqsindia.com/cmmi

      7. García, M. L. (2006) CMMI: Aseguramiento de la Calidad. Ingeniería Industrial, XXVII(2-3), 11-15.

      8. Guell, O. I. (Agosto de 2016) Implementación de Nivel Cuatro de CMMI en Organización Integradora de Software. México, México.

      9. Mejía, A. G., Padilla, D. L., & Gonzaga, E. A. (2013) Desarrollo y aprendizaje organizacional mediante el usode las TIC's. México: Trillas.

      10. Meneses, Y. N., Padilla, N. Y., Mora, J. J., & Barrera, M. G. (2014) Análisis del estado actual de certificaciones CMMI-DEV ver. 1.3 año 2013 y 2014, a nivel Mundial y en México. Research in Computing Science, 121-134.

      11. Microsoft. (19 de Enero de 2017) Azure DevOps Services. Obtenido de Plan a project (CMMI):

      12. Navarro, J. M. (2010) . Experiencia en la implantación de CMMI-DEV v1.2 en una micropyme con metodologías ágiles y software libre. Innovación, Calidad e Ingeniería del Software, 6(1).

      13. Software Guru. (s.f) Conocimiento para construir software grandioso. Obtenido de Lo que Pocos Saben sobre CMMI 5: sg.com.mx

      14. Torres, C., & Arbeláez, D. (2008) Guía de Implantación de CMMI en la Empresa de Software Colombiana. Medellín, España.