miércoles, 3 de diciembre de 2008

El Modelo de Capacidad y Madurez: CMM-CMMi

Muchas veces hemos oído hablar del término madurez relacionado con la Ingenería del Software pero, realmente, ¿cómo se puede medir la madurez de un producto o empresa? Para dar respuesta a esta pregunta, surgió CMM.

CMM (Capability Maturity Model o Modelo de Capacidad y Madurez) es un modelo orientado a la mejora de los procesos empresariales, evaluando la calidad de los productos que desarrolla y clasificándolos según cinco niveles de madurez. Fue desarrollado por el SEI (Software Engineering Institute) a mediados de los años ochenta a petición del Departamento de Defensa de los Estados Unidos con la finalidad de evaluar a las distintas compañías que le proporcionan software. Este modelo está basado en conceptos de calidad total y de mejoramiento continuo.

CMMi (Capability Maturity Model Integration) es la evolución natural de CMM y surge con la intención de mejorar la usabilidad de los modelos de madurez integrando varios modelos diferentes en un solo framework. Así mismo describe las prácticas de ingeniería de software y gestión que permite a las organizaciones madurar sus procesos de desarrollo y mantenimiento del software, para cualquier proyecto en cualquier entorno. El CMMi presenta un conjunto de prácticas recomendadas en una serie de áreas clave que permiten mejorar el potencial del proceso de software. Abarca veintidós áreas de proceso, que van desde la Gestión de la Configuración y de los Requisitos hasta la Formación Organizacional, y se van concatenando en los distintos niveles de madurez.

CMMi, al igual que CMM presenta cinco niveles de madurez. Para poder estar en uno de ellos se han de cumplir todos los requisitos del mismo y de todos los niveles anteriores, de tal forma que si una organización cumple todos los requerimientos para estar en nivel 3 pero le falta uno de nivel 2 y sí cumple con los de nivel 1, se clasificará en este último. Los cinco niveles son los siguientes:
  1. Inicial: las organizaciones no disponen de un ambiente estable para el desarrollo y mantenimiento de software. Aunque se utilicen técnicas correctas de ingeniería, los esfuerzos se ven minados por falta de planificación. El éxito de los proyectos se basa la mayoría de las veces en el esfuerzo personal, aunque a menudo se producen fracasos y casi siempre retrasos y sobrecostes. El resultado de los proyectos es impredecible.
  2. Repetible: las organizaciones disponen de unas prácticas institucionalizadas de gestión de proyectos, existen unas métricas básicas y un razonable seguimiento de la calidad. La relación con subcontratistas y clientes está gestionada sistemáticamente.
  3. Definido: las organizaciones disponen, además de una buena gestión de proyectos, de correctos procedimientos de coordinación entre grupos, de formación del personal, técnicas de ingeniería más detalladas y un nivel más avanzado de métricas en los procesos.
  4. Gestionado: las organizaciones disponen de un conjunto de métricas significativas de calidad y productividad, que se usan de modo sistemático para la toma de decisiones y la gestión de riesgos. El software resultante es de alta calidad.
  5. Optimizado: la organización completa está volcada en la mejora continua de los procesos. Se hace uso intensivo de las métricas y se gestiona el proceso de innovación.
(Pinchar sobre la imagen para ampliar)

Para dar una idea de la dificultad que supone alcanzar la excelencia, únicamente hay dos empresas en todo el mundo, Infosys y Tata Consulting Services, que tienen un nivel 5 CMMi, mientras que en España, Indra y Everis pelean por estar en el nivel 4.

No hay comentarios: