1. CALIDAD Y AUDITORÍA DE SOFTWARE
El CMMI
Capability Maturity Model Integration
11/04/2014
Instituto Profesional Santo Tomás
Ingeniería en Informática
Nivel 7
Manuel García Marcelli
2. Calidad y Auditoría de Software
Introducción.
El CMMI (Capability Maturity Model Integration o Modelo de Madurez de Capacidad Integrado),
nace a finales de los años 80, exactamente en el año 1987, dentro de la industria militar de los
Estados Unidos con el objetivo inicial de evaluar los procesos de software más críticos del
departamento de defensa.
El departamento de defensa de los Estados Unidos encargaba desarrollar software a empresas
externas las cuales, la mayoría de las veces, presentaban problemas, lo que hacía que el
presupuesto se elevara a niveles considerables y las fechas de entrega se aplazaran
constantemente, aplazando también los proyectos y actividades internas del departamento.
Cuando la situación llegó a niveles intolerables se determinó conformar un comité de expertos
para analizar la situación y finalmente poder encontrar una solución a estos problemas. Es así
como en el año 1983, dicho comité concluyó que se debía crear un Instituto de la Ingeniería del
Software, dedicado exclusivamente a los problemas del software, y a ayudar al Departamento de
Defensa.
En el año 1985, tras un llamado a un concurso público en donde se presentaron diversos
estamentos, la Universidad Carnegie Mellon ganó el concurso creando así el Instituto de la
Ingeniería del Software (SEI, por sus siglas en inglés). El SEI, bajo el alero de la Universidad
Carnegie Mellon y bajo el patrocinio del Departamento de Defensa del Gobierno de los Estados
Unidos, tiene la misión de avanzar la disciplina de la Ingeniería del software para asegurar el
desarrollo y operación de sistemas con costo, tiempo y calidad mejorados y predecibles.
El SEI finalmente crea el CMM y hasta el día de hoy mantiene el modelo de calidad CMM – CMMI.
3. Calidad y Auditoría de Software
¿Qué es CMMI?
CMMI es el acrónimo de Capability Maturity Model Integration y se refiere a los modelos que
contienen las mejores prácticas que ayudan a las organizaciones a mejorar sus procesos, es una
guía que ayuda en la mejora de procesos. El enfoque del modelo permite evolucionar desde un
proceso en crisis a un proceso controlado, estandarizado, medido y optimizado que sienta las
bases de la mejora continua y permite a la organización adoptar nuevas prácticas sobre un
proceso estable y controlado que está institucionalizado.
Es utilizado por las organizaciones para entender las mejores prácticas de la industria, para
priorizar y adoptar las mejoras a los procesos existentes, para compararse con su competencia
dentro del mercado o para que los clientes puedan identificar las prácticas que necesitan
demostrar sus proveedores.
Considera dos enfoques o rutas para adoptar las mejoras y medir el nivel en que han evolucionado
y se conocen como representaciones. En una forma se consideran áreas de proceso de manera
individual y se califican en niveles de capacidad de acuerdo con la representación continua. El otro
enfoque considera un conjunto preestablecido de áreas de proceso que constituyen un nivel de
madurez y que es la forma de evaluar la representación escalonada o por etapas.
CMMI continuo.
El enfoque permite a una organización seleccionar áreas de proceso específicas y su granularidad
de mejora, para mejorar con respecto a ellas. El enfoque continuo usa niveles de capacidad para
caracterizar y medir mejoras relativas a un área de proceso individual. Una organización puede
alcanzar un mismo nivel de capacidad para todas las áreas de proceso que seleccione o distintos
niveles (por ejemplo podría querer alcanzar nivel de capacidad 2 en un área de proceso y nivel de
capacidad 4 en otra).
Los niveles de capacidad en el enfoque continuo son los siguientes:
Nivel 0 (incompleto): El proceso no se ejecuta o se hace
parcialmente.
Nivel 1 (Ejecutado): El proceso se ejecuta y se producen
productos basados en productos de entrada identificados.
Nivel 2 (Administrado): El proceso es reactivo y se
caracteriza por su aplicación a proyectos.
Nivel 3 (Definido): El proceso es proactivo y se ve a nivel
de la organización.
Nivel 4 (Administrado Cuantitativamente): El proceso es
medido y controlado.
Nivel 5 (Optimizado): El proceso se enfoca en la mejora
continua.
4. Calidad y Auditoría de Software
CMMI escalonado.
El enfoque escalonado usa un conjunto predefinido de áreas de proceso para definir un camino de
mejora para una organización. Este camino de mejora es descrito por un componente del modelo
llamado nivel de madurez. Un nivel de madurez es una meseta evolutiva bien definida, que
asegura que se ha alcanzado una base para el próximo nivel y permite una mejora incremental y
duradera.
La representación escalonada está estructurada por 5 niveles de madurez:
1. Inicial.
2. Administrado.
3. Definido.
4. Administrado Cuantitativamente.
5. Optimizado.
Inicial: La organización en este nivel no dispone de un ambiente estable para el desarrollo y
mantenimiento de productos y servicios.
Administrado: La organización que se encuentra en este nivel ha alcanzado, en algunas áreas
organizacionales y/o proyectos, metas genéricas y específicas establecidas en sus áreas de
procesos, es decir planean sus procesos, los ejecutan, los miden y los controlan.
Definido: Tienen los procesos caracterizados, entendidos por los ejecutores, descritos mediante
estándares, procedimientos, métodos y herramientas.
Administrado Cuantitativamente: La organización selecciona y administra las actividades que
contribuyen perceptiblemente al funcionamiento de proceso total. Estas actividades seleccionadas
son controladas con técnicas estadísticas y otras técnicas cuantitativas.
Optimizado: Los procesos de la organización son mejorados continuamente basados en una
comprensión cuantitativa de las causas comunes de variación inherentes a los procesos. El nivel 5
está centrado en mejorar continuamente el desempeño de los procesos con mejoras tecnológicas
incrementales e innovadoras.
5. Calidad y Auditoría de Software
Diferencias entre Enfoque Continuo y Escalonado.
Ambos enfoques contienen los mismos elementos, pero la principal diferencia está en la
organización de ellos. Mientras que la representación Continua está enfocada para una sola área
de proceso o un conjunto de áreas de proceso, la representación Escalonada está enfocada para
un conjunto establecido de áreas de proceso a lo largo de la organización.
A continuación una tabla comparativa con las principales diferencias entre ambos enfoques.
Enfoque Continuo Enfoque Escalonado
Concede la libertad de seleccionar el orden de
mejora que más convenga a las necesidades
de la organización.
Permite a la organización tener un camino
predefinido y probado de mejora.
Permite una mayor visibilidad de la capacidad
lograda en cada área de proceso individual.
Se focaliza en un conjunto de procesos que
provee a una organización de una capacidad
específica, que es caracterizada por un nivel
de madurez.
Provee una calificación en niveles de
capacidad que es usada, sobre todo, para la
mejora en una organización y raramente es
comunicada externamente.
Provee una calificación en niveles de madurez,
que generalmente es usada tanto
internamente como externamente.
Permite mejorar diferentes procesos en
diferentes niveles.
Resume los resultados del proceso de mejora
en un solo nivel de madurez.
Ofrece un enfoque que por ahora carece de
datos que demuestren el retorno de la
inversión.
Ofrece un enfoque, de relativamente larga
historia de uso, que incluye casos de estudio y
datos que demuestran el retorno de la
inversión.
6. Calidad y Auditoría de Software
Comparación entre ISO y CMMI.
Hoy en día el Desarrollo del Software avanza progresivamente y no se puede evitar hablar de
software sin antes haber chequeado la calidad durante el proceso de creación del mismo. En el
mundo existen diferentes modelos para evaluar la calidad de un software que ayudan en gran
medida a garantizar el desarrollo y creación de un producto final de calidad.
International Organization of Standards (ISO), es un conjunto de estándares internacionales para
sistemas de calidad. Diseñado para la gestión y aseguramiento de la calidad, especifica los
requisitos básicos para el desarrollo, producción, instalación y servicio a nivel de sistema y a nivel
de producto. La ISO 9001:2000, Está fundamentada en el procedimiento de prácticas orientadas al
proceso, en la búsqueda de la satisfacción del cliente y la mejora continua.
Capability Maturity Model Integration (CMMI), es un modelo de procesos, o una colección
estructurada de elementos que describe características de procesos probados por experiencia
para ser efectivos. Define áreas de Proceso (PA) en las que se deben llevar a cabo prácticas
específicas o genéricas.
CMMI se restringe al proceso de producción de forma más específica y también, por tanto más
eficaz mientras que ISO 9000 contempla un escenario más amplio en la producción y presenta una
gran atención hacia el cliente. La principal diferencia entre las dos es que el ISO 9001 especifica un
nivel aceptable mínimo de calidad para procesos de software mientras que el CMMI estable una
estructura conceptual de referencia para medir la mejora continua de procesos y es más explícita
en definir cómo llegar al objetivo.
Tabla comparativa.
ISO 9001:2000 CMMI
Estándar. Modelo.
Amplia dirección, no detallado. Detallado.
Un conjunto de requerimientos a satisfacer. Pasos progresivos (niveles).
Sin guías para la implementación. Institucionalización y guía de implementación.
La ISO 9000 es muy general, ya que su
concepción fue pensada para abarcar cualquier
tipo de empresa.
CMMI está enfocada hacia el desarrollo concreto
de software.
Contempla un escenario más amplio en la
producción y presenta una gran atención hacia
el cliente.
CMMI se restringe al proceso de producción de
forma más específica y también más eficaz.
ISO 9000 es de carácter estático,
proporcionando mecanismos de mejora mucho
más débiles.
CMMI es de carácter y espíritu incremental, lo
cual motiva al personal.
ISO 9000 provoca una realidad empresarial en la
que el único reto es mantener la certificación.
CMMI mueve el sistema de calidad de la
organización en una dirección de mejora
continua.
7. Calidad y Auditoría de Software
Empresas chilenas con certificación CMMI.
Inter Media Chile.
Nivel: 2
Año: 2006
El proceso de evaluación estuvo a cargo de la empresa América XXI y se extendió durante 5 días.
Estuvo a cargo del Lead Assessor José Guerrero de América XXI, y cuatro personas formaron parte
del ATM (equipo de evaluación) siendo tres de ellas profesionales internos y una persona externa
de América XXI. Durante esta etapa, entrevistaron al Project Leader, Middle Manager, Senior
Manager, SQA, SCM y Developers, arrojando como resultado diez personas entrevistadas y cuatro
proyectos con su documentación revisada.
Lo que se revisó fue el cumplimiento de las metas, objetivos y actividades pertenecientes a las 5
KPAs del Nivel 2, para lo cual es muy difícil llegar a conclusiones subjetivas, ya que el método de
Evaluación CBA IPI (CMM Bases Appraisal for Internal Process Improvement) obliga a la aplicación
de reglas de corroboración, lo que quiere decir que para que cierta observación sea considerada
como válida, ésta debe haber sido declarada por dos fuentes diferentes en dos sesiones
diferentes. También es necesario que todos los miembros del equipo lleguen a consenso respecto
a cada una de las observaciones realizadas.
Everis Chile.
Nivel: 3
El Director de Servicios Responsable de Outsourcing para everis Chile, Carlos Tello señalo que:
“Este logro -que permite posicionarnos y diferenciarnos a nivel local y LATAM- fue un trabajo
planificado durante 17 meses, el cual involucró directa e indirectamente a 210 consultores los
cuales participaron activamente del proceso, presente en los servicios de outsourcing de la
oficina de Chile (en plataformas tales como SIEBEL, Oebs y Portfolios de Aplicaciones de los
distintos clientes). Esta certificación permitió adaptar y mejorar los actuales procesos con los
cuales everis despliega sus servicios de outsourcing en su oferta comercial”
En Chile solamente existen 34 compañías certificadas en el SEI (*) entre los niveles 2, 3 y 5.
(*): Fuente SEI Año 2009.
8. Calidad y Auditoría de Software
Conclusión.
Actualmente las empresas involucradas en el mundo del Desarrollo de Software buscan entregar
un producto de calidad que responda a los requerimientos del cliente y satisfaga sus necesidades.
Para alcanzar esto ponen un fuerte énfasis en los procesos que crean el producto final y se rigen
por ciertos estándares y modelos para poder cumplir con sus objetivos.
El estándar y modelo más conocido son la norma ISO y el CMMI respectivamente.
CMMI tiene dos representaciones: Continua y Escalonada. La representación continua permite a la
organización mejorar el desempeño de un área de proceso o aquellas relacionadas. La
representación escalonada ofrece una manera sistemática y estructurada para la mejora de
procesos, un paso a la vez, logrando en cada nivel una adecuada mejora que es la base para el
siguiente nivel.
Tanto las Normas ISO como la metodología CMMI buscan obtener calidad en el desarrollo del
producto, en este caso el desarrollo de software. El preferir uno u otro depende mucho del
objetivo y visión de la empresa, es decir es cuestión de decisión. Lo importante es tener un
sistema de gestión de calidad como empresa de desarrollo de software.
Para finalizar, cabe destacar que en todo contexto el seguir un modelo no nos garantiza el éxito si
no se saben aplicar los procedimientos correspondientes, pero siempre será mejor seguir un
modelo y regirse por ciertas normas a no seguir ni regirse por ninguno.