El principal problema que tienen las empresas en sus áreas de tecnología, así como las empresas desarrolladoras de software al iniciar un proyecto, radica en que el tiempo de vida del proyecto y el presupuesto que son estimados al principio del proyecto, son rebasados desde un 20% hasta un 400% por arriba de lo estimado. Esto ocasiona pérdida de tiempo y dinero para la empresa. Qué es el Modelo CMMI? El CMMI v1.3 (Capability Maturity Model Integration), es un modelo de madurez y capacidad de los procesos de desarrollo de software y sistemas que proporciona a las organizaciones un marco de referencia con las mejores prácticas de la industria para establecer un programa de mejora continua de sus procesos. El CMMI y sus antecesores, el CMMI ver 1.1 y el SW CMMI fueron desarrollados por el Software Engineering Institute (SEI) de la Universidad de Carnegie Mellon auspiciada por el Departamento de la Defensa de Estados Unidos (DoD) a fin de proveer un marco de referencia estándar para evaluar la capacidad de los procesos de sus proveedores de servicios de software con el fin de obtener servicios y productos de calidad y que fuesen construidos dentro de los tiempos y los costos estimados. Con más de 15 años de uso de los modelos de madurez desarrollados por el SEI actualmente el CMMI es el estándar de facto de la industria a nivel mundial para desarrollar e implementar programas de mejora de procesos de software. Su aplicación en las organizaciones tiene como principal objetivo apoyar para mejorar los resultados de la organización y su habilidad para generar proyectos de desarrollo de software y de sistemas exitosos generando productos de alta calidad, Esto se logra a través de incorporar las mejoras prácticas para que una organización sin cultura organizacional de calidad, sin procesos establecidos y que ejecuta sus proyectos basados en los actos heroicos de su personal gradualmente aumente su capacidad para planear y administrar sus proyectos, contar con procesos establecidos para desarrollar sus actividades de ingeniería y desarrollar un orientación organizacional en procesos que le permita responder de mejor forma las necesidades de su cliente y cumplir sus objetivos de negocio. La premisa fundamental es que: La calidad del producto final está altamente influenciada por la calidad del proceso utilizado para desarrollarlo y mantenerlo El Capability Maturity Model (CMMI ) es una marca registrada del Software Engineering Institute (SEI) de la Universidad de Carnegie Mellon, Pittsburgh, USA.
En qué consiste el Modelo CMMI? Es un modelo que contiene las mejores prácticas para el desarrollo/mantención de sistemas de información. Estas mejores prácticas están agrupadas en lo que se denominan las áreas de proceso (Process Areas o PAs). El modelo define 22 Áreas de Proceso y ellas están agrupadas por su vez en 5 niveles de Madurez, que reflejan el estado de implementación de ellas. En donde: En el Nivel de Madurez 1 INICIAL: No se ha alcanzado a dominar ninguna de las 22 Pas. El proceso es impredecible, sin control y reactivo. El éxito de los proyectos depende del talento de las personas involucradas. En el Nivel de Madurez 2 GESTIONADO: Se dominan hasta 7 Pas. Existen procesos básicos de gestión en los proyectos (costo, calendario, funcionalidad=. Los procesos existentes hacen que se puedan repetir éxitos en proyectos de similares características. En el Nivel de Madurez 3 DEFINIDO: Se dominan hasta 18 Pas. Existe un proceso de software documentado y estandarizado dentro de la organización. Todos los proyectos utilizan una versión a medida del proceso. En el Nivel de Madurez 4 GESTIONADO CUANTITATIVAMENTE: Se dominan hasta 20 Pas. La organización recolecta métricas del proceso de software y de los productos desarrollados. Tanto el proceso como los productos se entienden y controlan cuantitativamente. En el Nivel de Madurez 5 EN OPTIMIZACIÖN: Se dominan las 22 Pas. Existe una mejora continua del proceso de software, basada en la realimentación cuantitativa del proceso y en la puesta en práctica de ideas y tecnologías innovadoras.
En el diagrama siguiente se pueden ver los 5 Niveles de Madurez y la respectiva Pas asociada. Se puede apreciar que no existe PAs relacionadas al NM1. Cómo se representa el Modelo CMMI? Esta forma de representación del modelo es conocida como Representación por ESTADOS y es la más divulgada y utilizada mundialmente porque define claramente cada estado de madurez y permite reconocer y asociar rápidamente donde se encuentra una organización según el estado de madurez que presente. Existe también otra forma de mirar las PAs que es a través de la Representación CONTINUA, en la cual cada PA se puede manejar individualmente y no por un grupo pre establecido, hacia niveles de capacidad, que también van del Nivel 1 al Nivel 5. En concreto, ambas representaciones contienen las mismas prácticas, solo que se distribuyen de distinta manera y su avance en mejora o implementación, puede ser por grupo o individual, según se opte.
Continua PA 1 PA 2 PA 3 CL0 CL1 CL2 CL3 CL4 CL5 Process Area Capability para un área de proceso o un conjunto de áreas de proceso que se tratan por separado ML 1 ML2 ML3 ML4 Por Estados ML5 para un conjunto de áreas de proceso a través de la organización que se agrupan por niveles No obstante la existencia de ambas representaciones y la libertad que existe en la Representación Continua de elegir que es lo que la organización quiere privilegiar, América XXI recomienda empezar a trabajar en el mejoramiento de procesos eligiendo en primera instancia la Representación por Estados y tratar de alcanzar el Nivel de Madurez 2, con ello la organización logra en primera instancia controlar los proyectos. Una vez que ya se dominan las PAs de este NM, la organización podrá elegir que PA le conviene ahora elegir para continuar su proceso de mejora. A quién va dirigido? El CMM I está dirigido principalmente a unidades o empresas que desarrollan y/o dan mantenimiento a software y desean mejorar los resultados sus proyectos y mejorar la calidad de sus productos o servicios, así mismo es de gran utilidad para empresas consumidoras de servicios de software y sistemas que requiere evaluar y administrar adecuadamente a sus proveedores Cuáles son los Beneficios Directos para la Organización? Es un hecho que en general la industria del software ha acarreado problemas comunes a lo largo del tiempo, problemas tales como: Retrasos importantes en el tiempo de finalización del proyecto. Sobrepasar los presupuestos estimados Gran número de errores que aparecen cuando el software se pone en producción. Dificultad para administrar adecuadamente los requerimientos del usuario y/o cliente Falta de tiempo para atender eficazmente proyectos de mantenimiento y nuevos desarrollos. Insatisfacción de los usuarios por el exceso de mantenimiento requerido o la falta de conformidad con sus requerimientos Pérdida de información entre proyectos por falta de documentación y/o pérdida de versiones Largos días de trabajo y muchos sobre tiempos, por mencionar los más comunes.
El modelo CMMI provee un conjunto de mejores prácticas probadas mundialmente y con resultados cuantitativos de sus beneficios, es el estándar de facto actualmente para resolver las principales problemáticas en el desarrollo de productos de software y sistemas. Beneficios de CMMI Una guía efectiva para un mejoramiento efectivo y eficiente a través de múltiples procesos dentro de la organización. Mejoras a las mejores prácticas que fueron incorporadas por la misma empresa o por modelos anteriores. Una visión integrada y común para el mejoramiento de todos los elementos dentro de la organización. Mejoras al emplear el Modelo CMMI : Mejora en la predictibilidad de los programas y presupuestos de los proyectos Mejora en los tiempos del ciclo de vida del proyecto Incremento en la productividad Mejoramiento de la calidad (medido en número de errores) Incremento de la satisfacción del cliente Incremento de la moral/ánimo de los empleados del área TI Incremento en el ROI Disminución de los costos por conseguir una mejor calidad. CARENCIAS FRECUENTES DENTRO DE LAS COMPAÑÍAS A continuación se definen una serie de carencias más habituales dentro de los departamentos de desarrollo y mantenimiento de software. Estas dificultades representan el punto de inicio para la adopción del modelo CMMI. a. Los proyectos se desvían en costo y plazo. La calidad es baja. b. El software resultante tiene numerosos defectos y no satisface las expectativas de los clientes. c. Poca documentación de las aplicaciones y los proyectos. d. No se puede validar la calidad del software en puntos intermedios. e. No existe control sobre los cambios en los requisitos. f. No existe uniformidad entre el trabajo desarrollado por distintas personas. g. El éxito de los proyectos depende de las capacidades individuales. h. Si personas clave dejan de participar en el proyecto se para la fabrica.
Ante este tipo de deficiencias que en la actualidad se dan en los departamentos de desarrollo y mantenimiento de software o Factoría de software, se debe de decidir sobre la conveniencia de implantar una metodología compatible con CMMI. No obstante, antes de comenzar su implantación se deben de valorar 5 cuestiones de suma importancia para el éxito de este modelo. 1. Compromiso de toda la organización. La implantación del CMMI debe de aglutinar los esfuerzos de toda la organización desde la dirección hasta el equipo que finalmente se encarga del desarrollo del proyecto. 2. Se deben realizar moderadas inversiones iniciales en medios o herramientas que sirvan de base para la implantación del modelo CMMI. 3. Los resultados derivados de la implantación de este tipo de modelos no siempre son visibles a corto plazo. 4. Una vez implantado el modelo CMMI, debe mantenerse de forma permanente e ir autoalimentándose para lograr el objetivo: un desarrollo de software bajo el paradigma de la mejora continua. 5. La adopción de prácticas de planificación, gestión, seguimiento y control dentro de las empresas supone un esfuerzo y un cambio de mentalidad empresarial sin el cual no es posible alcanzar una implantación exitosa del modelo CMMI. BENEFICIOS Y VENTAJAS DE LA IMPLANTACIÓN DEL CMMI A continuación se exponen las 7 principales ventajas que aporta a las organizaciones la implantación del modelo CMMI. 1. Mayor efectividad en la detección de errores a lo largo del ciclo de vida, reduciendo drásticamente el número de errores que afecta directamente a los clientes y usuarios. 2. Reducción de las desviaciones en plazo de los proyectos. 3. Mayor tolerancia al cambio e incremento de la capacidad de adopción y adaptación de nuevas tecnologías 4. Mejora en la rapidez y efectividad de respuesta ante exigencias del negocio (Reducción del Time to Market) 5. Mejora en la colaboración y comunicación efectiva con implicados internos y externos. 6. Resultados predecibles en los proyectos. 7. Implementar técnicas proactivas de gestión, mitigando los riesgos que afectan los proyectos. Todos los beneficios derivan finalmente en un incremento de la productividad en la realización de Software y en una considerable mejora de la calidad del producto terminado.