Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Introducción CMMI
1. Introducción al CMMI
Evolución del CMM
Modelo Escalonado y Modelo Continuo
Los Niveles de Madurez
El Método de Evaluación SCAMPI
Introducción a Modelos de Calidad
de Software
2. Introducción a Modelos de
Calidad de Software
Evolución del CMM
• Capability Maturity Model, Modelo de Madurez
de Capacidades, es un modelo para la mejora o
evaluación de los procesos de desarrollo y
mantenimiento de sistemas y productos de
software
3. Introducción a Modelos de
Calidad de Software
Evolución del CMM
• Desarrollado por el SEI (Software Engineering
Institute) de la Universidad Carnegie Mellon
patrocinado por el Departamento de Defensa
del Gobierno de los Estados Unidos
• El SEI tiene la misión de avanzar la disciplina de
ingeniería de software para asegurar el
desarrollo y operación de sistemas con
costo, tiempo y calidad mejorados y
predecibles
4. Introducción a Modelos de
Calidad de Software
Evolución del CMM
• El SEI ha desarrollado, y constantemente está
refinando modelos para la administración y la
mejora de la capacidad del proceso de software
• En el proyecto de desarrollo del CMM estuvieron
involucrados organizaciones de industria, el
Gobierno de los Estados Unidos y el SEI, quienes
donaron tiempo de uno o más participantes
5. Introducción a Modelos de
Calidad de Software
Evolución del CMM
• Durante los años 90 el SEI desarrolló diversos
modelos para la mejora y medición de la
madurez específica para varias áreas
– SW-CMM - P-CMM
– SA-CMM - SSE-CMM
– T-CMM - SE-CMM
– IPD-CMM
6. Introducción a Modelos de
Calidad de Software
Evolución del CMM
1986 1987 1991 1993 1998 2001
SEI and Mitre SEI Capability Software Acquisition CMMI SE/SW V1.1
Corp. Process Maturity CMM (SA-CMM)
Maturity Framework V1.0 Systems Engineering
Framework CMM (SE-CMM)
Integrated Product
SEI Description of
Management CMM
Process Maturity
(IPM-CMM)
Framework and
People CMM (P-CMM)
Maturity
Questonnaire
SEI SW CMM V1.1
7. Introducción a Modelos de
Calidad de Software
CMMI
• En 1991 el SEI entregó el Capability Maturity
Model (CMM), el cual tiene fuerte orientación al
desarrollo del Software
• A mediados de la década del 90, el SEI decide
unificar los modelos de ingeniería de software
(SW-CMM), de ingeniería de sistemas (SE-CMM)
y de desarrollo integrado de productos (IPD-
CMM), embarcándose en un esfuerzo que da
origen a una nueva generación llamada CMMI
(Capability Maturity Model Integration)
8. Introducción a Modelos de
Calidad de Software
CMMI
• La primera versión se publicó en Enero 2002
• En Marzo del 2002 se liberó el modelo
Capability Maturity Model® Integration
(CMMISM), Versión 1.1, el cual puede servir de
guía para mejorar los procesos
organizacionales, además del desarrollo del
Software
9. Introducción a Modelos de
Calidad de Software
CMMI
• El nuevo CMMI brinda un marco con una estructura
común para todas las disciplinas (Ingeniería de
Software, Ingeniería de Sistemas, etc.) e incorpora una
forma de representación llamada Continua (tomada de
IPD-CMM y SE-CMM), orientada a medir la mejora en los
procesos de manera individual en vez de hacerlo de
manera conjunta como la representación por niveles
del modelo original (escalonado)
10. Introducción a Modelos de
Calidad de Software
CMMI
• Es un conjunto de modelos que contienen los
elementos esenciales para hacer efectivos los
procesos en una organización
• Proveen la orientación para su uso en el
desarrollo de procesos
• No son procedimientos o descripción de
procesos
• Aplican a organizaciones de cualquier
estructura
11. Introducción a Modelos de
Calidad de Software
CMMI
• El proyecto de CMM Integration fue conceptualizado
para resolver el problema de utilizar múltiples CMMs
• La misión del proyecto CMMI fue combinar los tres
siguientes modelos origen:
1. El Capability Maturity Model para el Software (SW-CMM) v2.0
draft C
2. El Modelo para Ingeniería de Sistemas (Systems Engineering
Capability Model, SECM)
3. El Modelo Integrado de Madurez para Desarrollo de Productos
(Integrated Product Development Capability Maturity
Model, IPD-CMM) v 0.98
12. Introducción a Modelos de
Calidad de Software
CMMI
• El marco de referencia de CMMI también fue
diseñado para soportar la integración futura de
otras disciplinas
• Además, el CMMI fue desarrollado para ser
consistente y compatible con el ISO/IEC 15504
Technical Report para la Evaluación de
Procesos de Software
13. Introducción a Modelos de
Calidad de Software
CMMI
• Dentro de esta nueva generación de
modelos, el sucesor directo del CMM original es
el denominado CMMI-SW
• Este modelo presenta una mayor cobertura con
respecto a las prácticas y objetivos de cada
área de proceso
14. Introducción a Modelos de
Calidad de Software
Beneficios de implantar CMMI
• Reducción de costos por
– Estimaciones basadas en hechos
– Reducción de reprocesos
– Acuerdos claros sobre el servicio y la funcionalidad
del producto a entregar
• Aumento en la confiabilidad por
– Reducción consistente de errores
– Cumplimiento consistente de fechas
15. Introducción a Modelos de
Calidad de Software
Beneficios de implantar CMMI
• Mayor efectividad por
– Visibilidad sobre el proceso y sobre el producto
– Operar con estándares documentados
– Personal entrenado
17. Introducción a Modelos de
Calidad de Software
Representaciones del Modelo
• Los modelos del CMMI tienen dos
representaciones
– Continua
– Por etapas (Escalonada)
• Ambas representaciones contienen los mismos
elementos, la diferencia es la organización de
ellos
18. Introducción a Modelos de
Calidad de Software
Representación Continua
• Los procesos están organizados de una manera
similar a la norma ISO/IEC 15504 la cual a su
vez deriva de la norma ISO 9000
• Define 6 niveles (de 0 a 5) para establecer el
grado de madurez de la organización
• Permite seleccionar el orden de la
implementación que mejor se ajuste a las
necesidades de la organización
19. Introducción a Modelos de
Calidad de Software
Representación Continua
• La representación continua ofrece un enfoque flexible
para la mejora de procesos
• Una organización puede escoger el mejorar el
desempeño (o capacidad) de un punto específico
relacionado con un proceso, o puede trabajar en
diversas áreas que estén alineadas de forma cercana a
los objetivos de negocio de la organización
• La representación continua también permite a la
organización mejorar diferentes procesos a diferentes
niveles
20. Introducción a Modelos de
Calidad de Software
Representación Continua
• Sólo existen algunas limitaciones en las elecciones de
una organización debido a las dependencias entre las
áreas de procesos
• Los Niveles de Capacidad son utilizados para medir la
ruta de mejora a través de cada área de procesos desde
un proceso no ejecutado hasta un proceso en
optimización. Por ejemplo, una organización podría
desear esforzarse por alcanzar el nivel 2 en un área de
procesos y un nivel 4 en otra
21. Introducción a Modelos de
Calidad de Software
Representación Continua
• En la forma en que los procesos de una organización
alcanzan un nivel de capacidad, ésta establece sus
metas en el siguiente nivel de capacidad para la misma
área de procesos o decide ampliar su alcance y crear el
mismo nivel de capacidad a lo largo de un mayor
número de áreas de procesos
• Si una organización conoce los procesos que necesita
mejorar y entiende las dependencias entre las áreas de
proceso descritas en CMMI, la representación continua
puede ser una buena elección a implantar
22. Introducción a Modelos de
Calidad de Software
Representación Continua
• Los 6 niveles definidos en CMMI para medir la
capacidad de los procesos son:
0. Incompleto
- El proceso no se realiza, o no se consiguen sus
objetivos
1. Ejecutado
– El proceso se ejecuta y se logra su objetivo
23. Introducción a Modelos de
Calidad de Software
Representación Continua
2. Gestionado
– Además de ejecutarse, el proceso se
planifica, se revisa y se evalúa para comprobar
que cumple los requisitos
3. Definido
– Además de ser un proceso "gestionado" se ajusta
a la política de procesos que existe en la
organización, alineada con las directivas de la
empresa
24. Introducción a Modelos de
Calidad de Software
Representación Continua
4. Cuantitativamente gestionado
– Además de ser un proceso definido se controla
utilizando técnicas cuantitativas
5. Optimizado
– Además de ser un proceso cuantitativamente
gestionado, de forma sistemática se revisa y
modifica o cambia para adaptarlo a los objetivos
del negocio
25. Introducción a Modelos de
Calidad de Software
Representación Escalonada
• Los elementos están organizados siguiendo el
esquema del SW-CMM
• Define 5 niveles para determinar el grado de
madurez de la organización
• Provee una secuencia para el mejoramiento
comenzando con las prácticas básicas y
progresando a través de una ruta predefinida
de niveles exitosos
26. Introducción a Modelos de
Calidad de Software
Representación Escalonada
• La representación escalonada o por
etapas, ofrece un enfoque estructurado y
sistemático para la mejora de procesos un paso
a la vez
• Ir alcanzando cada etapa asegura que se ha
desarrollado una mejora adecuada que sirve de
base para la siguiente etapa
27. Introducción a Modelos de
Calidad de Software
Representación Escalonada
• Las áreas de procesos están organizadas por
niveles de madurez que toman muchas de las
conjeturas de un proceso de mejora
• La representación escalonada formula el orden
de implantación de cada área de procesos de
acuerdo a los niveles de madurez, los cuales
definen la ruta de mejora para una
organización desde el nivel inicial hasta el nivel
de optimización
28. Introducción a Modelos de
Calidad de Software
Representación Escalonada
• El ir alcanzando cada nivel de madurez asegura
que los cimientos adecuados de mejora se han
establecido para el siguiente nivel de madurez
y permite una mejora duradera e incremental
• Si la organización no conoce por dónde
comenzar y cuáles son los procesos a
seleccionar para la mejora, la representación
escalonada es una buena alternativa
29. Introducción a Modelos de
Calidad de Software
Representación Escalonada
• Esta representación ofrece un conjunto de
procesos específicos a mejorar los cuales han
sido determinados a través demás de una
década de investigación y experiencia en la
comunidad de software
30. Introducción a Modelos de
Calidad de Software
Representación Escalonada
• Para el CMMI en su representación por etapas o
escalonada los componentes son:
– Cinco Niveles de Madurez, que soportan y guían el
proceso de mejora
– Cuatro Áreas de Procesos, que agrupan los procesos
clave (KPA, Key Process Area) indicando cuales áreas
deben ser implementadas para alcanzar cada nivel
de madurez
31. Introducción a Modelos de
Calidad de Software
Representación Escalonada
• Componentes …
– Dentro de cada área, se utilizan cuatro aspectos
para organizar los objetivos y prácticas genéricas
– Dentro de cada área, son identificados los objetivos
y prácticas específicos del área, en total son 25
Prácticas Claves
32. Introducción a Modelos de
Calidad de Software
Niveles de Madurez
• Niveles de Madurez
– Los Niveles de Madurez consisten en un juego
predefinido de áreas de proceso.
– El nivel de madurez es medido por el logro de los
objetivos específicos y genéricos que aplican a cada
juego predefinido de área de proceso.
33. Introducción a Modelos de
Calidad de Software
Niveles de Madurez
• Existen Cinco niveles de Madurez designados
del 1 al 5 y cada capa es la base para la
siguiente en el proceso de mejora
1. Inicial
2. Administrado
3. Definido
4. Administrado Cuantitativamente
5. Optimizado
34. Introducción a Modelos de
Calidad de Software
Niveles de Madurez
• Inicial …
– Estado inicial donde el desarrollo se basa en la
heroicidad y responsabilidad de los individuos
– Las organizaciones en este nivel 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
35. Introducción a Modelos de
Calidad de Software
Niveles de Madurez
• Inicial
– 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 sobre
costos
– El resultado de los proyectos es impredecible
– Los procedimientos son inexistentes o localizados a
áreas concretas
– No existen plantillas a nivel corporativo
36. Introducción a Modelos de
Calidad de Software
Niveles de Madurez
• Gestionado …
– Se normalizan las buenas prácticas en el desarrollo
de proyectos (en base a la experiencia y el método)
– En este nivel 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
37. Introducción a Modelos de
Calidad de Software
Niveles de Madurez
• Gestionado
– En este nivel consolidado, las buenas prácticas se
mantienen en los momentos de estrés
– Están definidos los productos a realizar
– Se definen hitos para la revisión de productos
38. Introducción a Modelos de
Calidad de Software
Niveles de Madurez
• Definido …
– La organización entera participa en el proceso
eficiente del proyecto de software
– Además de una buena gestión de proyectos, en este
nivel las organizaciones disponen de correctos
procedimientos de coordinación entre
grupos, formación del personal, técnicas de
ingeniería más detalladas y un nivel más avanzado
de métricas en los procesos
39. Introducción a Modelos de
Calidad de Software
Niveles de Madurez
• Definido
– Se implementan técnicas de revisión por pares (peer
reviews)
– Se conoce de antemano los procesos de construcción
de software
– Existen métodos y plantillas bien definidas y
documentados
– Los procesos no sólo afectan a los equipos de
desarrollo sino a toda la organización relacionada
– Los proyectos se pueden definir cualitativamente
40. Introducción a Modelos de
Calidad de Software
Niveles de Madurez
• Cuantitativamente Gestionado
– Se caracteriza por que 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
41. Introducción a Modelos de
Calidad de Software
Niveles de Madurez
• Cuantitativamente Gestionado …
– Se puede seguir con indicadores numéricos
(estadísticos) la evolución de los proyectos
– Las estadísticas son almacenadas para aprovechar su
aportación en siguientes proyectos
– Los proyectos se pueden medir cuantitativamente
42. Introducción a Modelos de
Calidad de Software
Niveles de Madurez
• 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
43. Introducción a Modelos de
Calidad de Software
Niveles de Madurez
• Optimizado …
– En base a criterios cuantitativos se pueden
determinar las desviaciones más comunes y
optimizar procesos
– En los siguientes proyectos se produce una reducción
de costos gracias a la anticipación a problemas y la
continua revisión de procesos conflictivos
48. Introducción a Modelos de
Calidad de Software
Áreas de Proceso
• El CMMI se estructura en Áreas de Proceso
(PA, Process Area)
– Las áreas de proceso son un conjunto de prácticas
(practices) relacionadas que cuando se ejecutan en
forma colectiva cumplen los objetivos requeridos
para lograr una mejora sustantiva en un área
49. Introducción a Modelos de
Calidad de Software
Áreas de Proceso
• Practices, se le denomina a las actividades que
se espera que se ejecuten para lograr los
objetivos de un área de proceso
51. Introducción a Modelos de
Calidad de Software
Áreas de Proceso
• Las áreas de procesos pertenecen a una
categoría de procesos
• Administración de Procesos
– Actividades de
definición, planeación, implementación, mon
itoreo, control, valoración, medición y
mejora de procesos
– Aplica a todos los proyectos
52. Introducción a Modelos de
Calidad de Software
Áreas de Proceso
• Administración de Proyectos
– Actividades relativas a la
planeación, monitoreo y control de un
proyecto
• Ingeniería
– Actividades de desarrollo y mantenimiento
de producto
– Aplica a todas las disciplinas de ingeniería
53. Introducción a Modelos de
Calidad de Software
Áreas de Proceso
• Soporte
– Actividades para soportar el desarrollo y
mantenimiento de producto
54. Introducción a Modelos de
Calidad de Software
Áreas de Proceso
Área de proceso Categoría Nivel de
Madurez
Análisis y resolución de Soporte 5
problemas
Gestión de la configuración Soporte 2
Análisis y resolución de Soporte 3
decisiones
Gestión integral de proyecto Gestión de proyectos 3
Gestión integral de proveedores Gestión de proyectos 3
55. Introducción a Modelos de
Calidad de Software
Áreas de Proceso
Área de proceso Categoría Nivel de
Madurez
Gestión de equipos Gestión de proyectos 3
Medición y análisis Soporte 2
Entorno organizativo para Soporte 3
integración
Innovación y desarrollo Gestión de procesos 5
Definición de procesos Gestión de procesos 3
Procesos orientados a la Gestión de procesos 3
organización
56. Introducción a Modelos de
Calidad de Software
Áreas de Proceso
Área de proceso Categoría Nivel de
Madurez
Rendimiento de los procesos de Gestión de procesos 4
la organización
Formación Gestión de procesos 3
Integración de producto Ingeniería 3
Monitorización y control de Gestión de proyectos 2
proyecto
Planificación de proyecto Gestión de proyectos 2
Gestión calidad procesos y Soporte 2
productos
57. Introducción a Modelos de
Calidad de Software
Áreas de Proceso
Área de proceso Categoría Nivel de
Madurez
Gestión cuantitativa de Gestión de proyectos 4
proyectos
Desarrollo de requisitos Ingeniería 3
Gestión de requisitos Ingeniería 2
Gestión de riesgos Gestión de proyectos 3
Gestión y acuerdo con Gestión de proyectos 2
proveedores
58. Introducción a Modelos de
Calidad de Software
Áreas de Proceso
Área de proceso Categoría Nivel de
Madurez
Solución técnica Ingeniería 3
Validación Ingeniería 3
Verificación Ingeniería 3
60. Introducción a Modelos de
Calidad de Software
Método de Evaluación: SCAMPI
• En paralelo con el desarrollo de CMMI, el SEI
elaboró un método para la evaluación formal
del modelo denominado SCAMPI (Standard
CMMI Appraisal Method for Process
Improvement)
61. Introducción a Modelos de
Calidad de Software
SCAMPI
• En SCAMPI, los resultados de una evaluación se
obtienen mediante la aplicación de un conjunto
de reglas de negocio aplicadas a cada
componente del modelo
(prácticas, objetivos, áreas de proceso y niveles
de madurez)
• El método SCAMPI consta de tres fases, en cada
una de las cuales se llevan a cabo un conjunto
de procesos
62. Introducción a Modelos de
Calidad de Software
SCAMPI
1.Planificación y preparación de la evaluación
1.1 Analizar Requerimientos
Entender las necesidades de negocio de la organización. Nivelar
los objetivos del negocio con los objetivos de la evaluación
1.2 Desarrollar plan de evaluación
Documentar
requerimientos, acuerdos, estimaciones, riesgos, personalizacio
nes del método y consideraciones prácticas. Consensuar el plan
de evaluación con la organización
63. Introducción a Modelos de
Calidad de Software
SCAMPI
1.3 Seleccionar y preparar equipo
Asegurar que un equipo calificado esté a cargo de la ejecución
de la evaluación
1.4 Obtener y preparar evidencia objetiva inicial
Obtener información que facilite la preparación de la
evaluación. Identificar potenciales fortalezas y debilidades.
Obtener un entendimiento preliminar de las operaciones y
procesos de la organización
64. Introducción a Modelos de
Calidad de Software
SCAMPI
1.5 Preparar la recolección de la evidencia objetiva
Planificar y documentar las estrategias para la recolección de
datos, incluyendo fuentes de datos, herramientas y tecnologías
a utilizar
65. Introducción a Modelos de
Calidad de Software
SCAMPI
2. Conducción de la Evaluación
2.1 Examinar la evidencia objetiva
Recolectar información sobre las prácticas implementadas en
la organización, siguiendo el plan de recolección definido
2.2 Verificar y Validar la evidencia objetiva
Verificar la implementación de las prácticas en la
organización. Cada práctica implementada se compara con la
definición del Modelo CMMI y el equipo le asigna una
valoración
66. Introducción a Modelos de
Calidad de Software
SCAMPI
2.3 Documentar la evidencia objetiva
Crear registros que documenten la implementación de las
prácticas, contemplando también las fortalezas y debilidades
encontradas
2.4 Generar los resultados de la Evaluación
Calificar la satisfacción de los objetivos de acuerdo a las
valoraciones asignadas a las prácticas. Calificar la
satisfacción de las áreas de proceso de acuerdo a la
satisfacción de los objetivos. Calificar los niveles de
capacidad o madurez de acuerdo a la satisfacción de las
áreas de proceso
67. Introducción a Modelos de
Calidad de Software
SCAMPI
3. Reporte de los Resultados
3.1 Entregar los resultados de la evaluación
Entregar los resultados obtenidos a la organización de
manera que puedan ser utilizados para tomar acciones
futuras
3.2 Empaquetar y archivar los activos de la evaluación
Preservar los datos y registros importantes resultantes de la
evaluación, almacenándolos de manera apropiada
68. Introducción a Modelos de
Calidad de Software
SCAMPI
• Una evaluación en SCAMPI v1.1 permite:
– Obtener una visión de la capacidad de ingeniería de
una organización al identificar las fortalezas y
debilidades de sus procesos actuales
– Relacionar estas fortalezas y debilidades al modelo
CMMI
– Priorizar los planes de mejora
– Obtener niveles de capacidad así como niveles de
madurez
69. Introducción a Modelos de
Calidad de Software
SCAMPI
• Una evaluación en SCAMPI v1.1 permite:
– Enfocar los mejoras (corregir debilidades que
produzcan riesgos) que son los más benéficos para la
organización dada su actual nivel de madurez de las
capacidades de sus procesos
– Identificar riesgos de adquisición/desarrollo
relativos a determinaciones de capacidad/ madurez