El Modelo de Madurez de Capacidades ( CMM ) es un modelo de desarrollo creado en 1986 tras un estudio de datos recopilados de organizaciones que tenían contratos con el Departamento de Defensa de los EE. UU. , que financió la investigación. El término "madurez" se relaciona con el grado de formalidad y optimización de los procesos, desde prácticas ad hoc , hasta pasos definidos formalmente, pasando por métricas de resultados gestionados, hasta la optimización activa de los procesos.
El objetivo del modelo es mejorar los procesos de desarrollo de software existentes , pero también se puede aplicar a otros procesos.
En 2006, el Instituto de Ingeniería de Software de la Universidad Carnegie Mellon desarrolló el Modelo de Integración de Madurez de Capacidad , que ha reemplazado en gran medida al CMM y aborda algunos de sus inconvenientes. [1]
El modelo de madurez de capacidades se desarrolló originalmente como una herramienta para evaluar objetivamente la capacidad de los procesos de los contratistas gubernamentales para implementar un proyecto de software contratado. El modelo se basa en el marco de madurez de procesos descrito por primera vez en IEEE Software [2] y, más tarde, en el libro Managing the Software Process de Watts Humphrey de 1989. Posteriormente se publicó como artículo en 1993 [3] y como libro de los mismos autores en 1994. [4]
Aunque el modelo proviene del campo del desarrollo de software , también se utiliza como modelo para ayudar en los procesos de negocios en general, y también se ha utilizado ampliamente en todo el mundo en oficinas gubernamentales, comercio e industria. [5] [6]
En la década de 1980, el uso de computadoras se generalizó, se volvió más flexible y menos costoso. Las organizaciones comenzaron a adoptar sistemas de información computarizados y la demanda de desarrollo de software aumentó significativamente. Muchos procesos de desarrollo de software estaban en sus inicios y se habían definido pocos enfoques estándar o de " mejores prácticas ".
Como resultado, el crecimiento estuvo acompañado de dificultades: el fracaso de los proyectos era común, el campo de la informática todavía estaba en sus primeros años y las ambiciones de escala y complejidad de los proyectos excedían la capacidad del mercado para entregar productos adecuados dentro de un presupuesto planificado. Personas como Edward Yourdon , [7] Larry Constantine , Gerald Weinberg , [8] Tom DeMarco , [9] y David Parnas comenzaron a publicar artículos y libros con resultados de investigación en un intento de profesionalizar los procesos de desarrollo de software. [5] [10]
En la década de 1980, varios proyectos militares estadounidenses en los que participaban subcontratistas de software superaron el presupuesto previsto y se completaron mucho más tarde de lo previsto, si es que se completaron. En un intento de determinar por qué ocurría esto, la Fuerza Aérea de los Estados Unidos financió un estudio en el Instituto de Ingeniería de Software (SEI).
La primera aplicación de un modelo de madurez por etapas a la TI no fue realizada por CMU/SEI, sino por Richard L. Nolan , quien en 1973 publicó el modelo de etapas de crecimiento para organizaciones de TI. [11]
Watts Humphrey comenzó a desarrollar sus conceptos de madurez de procesos durante las últimas etapas de su carrera de 27 años en IBM. [12]
El desarrollo activo del modelo por parte del Instituto de Ingeniería de Software (SEI) del Departamento de Defensa de los EE. UU. comenzó en 1986, cuando Humphrey se incorporó al Instituto de Ingeniería de Software ubicado en la Universidad Carnegie Mellon en Pittsburgh, Pensilvania, después de jubilarse de IBM. A pedido de la Fuerza Aérea de los EE. UU., comenzó a formalizar su Marco de madurez de procesos para ayudar al Departamento de Defensa de los EE. UU. a evaluar la capacidad de los contratistas de software como parte de la adjudicación de contratos.
El resultado del estudio de la Fuerza Aérea fue un modelo para que el ejército lo utilizara como una evaluación objetiva de la madurez de la capacidad de proceso de los subcontratistas de software. Humphrey basó este marco en la cuadrícula de madurez de la gestión de la calidad desarrollada anteriormente por Philip B. Crosby en su libro "La calidad es gratis". [13] El enfoque de Humphrey difería debido a su visión única de que las organizaciones maduran sus procesos en etapas basadas en la solución de problemas de proceso en un orden específico. Humphrey basó su enfoque en la evolución por etapas de un sistema de prácticas de desarrollo de software dentro de una organización, en lugar de medir la madurez de cada proceso de desarrollo separado de forma independiente. Por lo tanto, el CMMI ha sido utilizado por diferentes organizaciones como una herramienta general y poderosa para comprender y luego mejorar el rendimiento general del proceso empresarial.
El modelo de madurez de capacidad (CMM) de Watts Humphrey se publicó en 1988 [14] y como libro en 1989, en Managing the Software Process . [15]
Las organizaciones fueron evaluadas originalmente utilizando un cuestionario de madurez de procesos y un método de evaluación de capacidad de software ideado por Humphrey y sus colegas del Instituto de Ingeniería de Software.
La representación completa del Modelo de Madurez de Capacidades como un conjunto de áreas de procesos y prácticas definidas en cada uno de los cinco niveles de madurez se inició en 1991, y la Versión 1.1 se publicó en julio de 1993. [3] El CMM se publicó como libro [4] en 1994 por los mismos autores Mark C. Paulk, Charles V. Weber, Bill Curtis y Mary Beth Chrissis.
La aplicación del modelo CMMI en el desarrollo de software ha sido problemática en ocasiones. La aplicación de múltiples modelos que no están integrados dentro y a través de una organización puede resultar costosa en cuanto a capacitación, evaluaciones y actividades de mejora. El proyecto Capability Maturity Model Integration (CMMI) se formó para resolver el problema del uso de múltiples modelos para los procesos de desarrollo de software, por lo que el modelo CMMI ha reemplazado al modelo CMMI, aunque el modelo CMMI sigue siendo un modelo teórico general de capacidad de proceso utilizado en el dominio público. [16] [ cita requerida ] [17]
En 2016, la responsabilidad de CMMI se transfirió a la Asociación de Auditoría y Control de Sistemas de Información (ISACA). Posteriormente, ISACA lanzó CMMI v2.0 en 2021. Se actualizó nuevamente a CMMI v3.0 en 2023. CMMI ahora pone mayor énfasis en la arquitectura de procesos, que generalmente se realiza como un diagrama de procesos. Las copias de CMMI ahora solo están disponibles mediante suscripción.
El CMMI fue concebido originalmente como una herramienta para evaluar la capacidad de los contratistas gubernamentales para llevar a cabo un proyecto de software contratado. Aunque proviene del área de desarrollo de software, puede aplicarse, se ha aplicado y sigue aplicándose ampliamente como modelo general de la madurez de los procesos (por ejemplo, los procesos de gestión de servicios de TI ) en las organizaciones de SI/TI (y otras).
Un modelo de madurez puede verse como un conjunto de niveles estructurados que describen qué tan bien los comportamientos, prácticas y procesos de una organización pueden producir de manera confiable y sostenible los resultados requeridos.
Un modelo de madurez puede utilizarse como punto de referencia para la comparación y como ayuda para la comprensión; por ejemplo, para la evaluación comparativa de diferentes organizaciones en las que existe algo en común que puede utilizarse como base de comparación. En el caso del CMM, por ejemplo, la base de comparación serían los procesos de desarrollo de software de las organizaciones.
El modelo involucra cinco aspectos:
Hay cinco niveles definidos a lo largo del continuo del modelo y, según el SEI: "Se cree que la previsibilidad, la eficacia y el control de los procesos de software de una organización mejoran a medida que la organización avanza en estos cinco niveles. Si bien no es riguroso, la evidencia empírica hasta la fecha respalda esta creencia". [18]
Dentro de cada uno de estos niveles de madurez se encuentran las Áreas Clave de Proceso que caracterizan ese nivel, y para cada una de ellas existen cinco factores: objetivos, compromiso, capacidad, medición y verificación. Estos no son necesariamente exclusivos de CMMI, ya que representan las etapas por las que deben pasar las organizaciones en su camino hacia la madurez.
El modelo proporciona un continuo teórico a lo largo del cual se puede desarrollar la madurez del proceso de manera incremental de un nivel al siguiente. No se permite/es factible saltarse niveles.
Entre 2008 y 2019, aproximadamente el 12% de las valoraciones realizadas correspondían a niveles de madurez 4 y 5. [19] [20]
El modelo se diseñó originalmente para evaluar la capacidad de los contratistas gubernamentales para llevar a cabo un proyecto de software. Se ha utilizado para ese fin y puede resultar adecuado para ello, pero los críticos [¿ quiénes? ] señalaron que la madurez del proceso según el CMM no era necesariamente obligatoria para el éxito del desarrollo de software.
El marco de trabajo del proceso de software documentado tiene como objetivo orientar a quienes deseen evaluar la coherencia de una organización o un proyecto con las áreas clave de proceso. Para cada nivel de madurez existen cinco tipos de listas de verificación: