Introducción CMMI

69
Introducción a Modelos de Calidad de Software Introducción al CMMI Evolución del CMM Modelo Escalonado y Modelo Cont inuo Los Niveles de Madurez El Método de Evaluación SCAMPI

Transcript of Introducción CMMI

Page 1: Introducción CMMI

Introducción a Modelos de Calidad de Software

Introducción al CMMIEvolución del CMM

Modelo Escalonado y Modelo Continuo

Los Niveles de MadurezEl Método de Evaluación SCAMPI

Page 2: Introducción CMMI

Introducción a Modelos deCalidad 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

Page 3: Introducción CMMI

Introducción a Modelos deCalidad 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

Page 4: Introducción CMMI

Introducción a Modelos deCalidad 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

Page 5: Introducción CMMI

Introducción a Modelos deCalidad 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

Page 6: Introducción CMMI

Introducción a Modelos deCalidad de Software

Evolución del CMM

SEI Description of Process Maturity Framework and Maturity Questonnaire

SEI and MitreCorp. ProcessMaturityFramework

1986 20011987 19931991 1998

SEI Capability Maturity Framework V1.0

SEI SW CMM V1.1

Software Acquisition CMM (SA-CMM) Systems Engineering CMM (SE-CMM) Integrated Product Management CMM (IPM-CMM) People CMM (P-CMM)

CMMI SE/SW V1.1

Page 7: Introducción CMMI

Introducción a Modelos deCalidad 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)

Page 8: Introducción CMMI

Introducción a Modelos deCalidad 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

Page 9: Introducción CMMI

Introducción a Modelos deCalidad 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)

Page 10: Introducción CMMI

Introducción a Modelos deCalidad 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

Page 11: Introducción CMMI

Introducción a Modelos deCalidad 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 C2. 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

Page 12: Introducción CMMI

Introducción a Modelos deCalidad 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

Page 13: Introducción CMMI

Introducción a Modelos deCalidad 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

Page 14: Introducción CMMI

Introducción a Modelos deCalidad 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

Page 15: Introducción CMMI

Introducción a Modelos deCalidad de Software

Beneficios de implantar CMMI

• Mayor efectividad por– Visibilidad sobre el proceso y sobre el producto– Operar con estándares documentados– Personal entrenado

Page 16: Introducción CMMI

Introducción a Modelos deCalidad de Software

Países con evaluaciones oficiales CMMI

Page 17: Introducción CMMI

Introducción a Modelos deCalidad 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

Page 18: Introducción CMMI

Introducción a Modelos deCalidad 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

Page 19: Introducción CMMI

Introducción a Modelos deCalidad 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

Page 20: Introducción CMMI

Introducción a Modelos deCalidad 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

Page 21: Introducción CMMI

Introducción a Modelos deCalidad 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

Page 22: Introducción CMMI

Introducción a Modelos deCalidad 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

Page 23: Introducción CMMI

Introducción a Modelos deCalidad 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

Page 24: Introducción CMMI

Introducción a Modelos deCalidad 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

Page 25: Introducción CMMI

Introducción a Modelos deCalidad 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

Page 26: Introducción CMMI

Introducción a Modelos deCalidad 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

Page 27: Introducción CMMI

Introducción a Modelos deCalidad 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

Page 28: Introducción CMMI

Introducción a Modelos deCalidad 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

Page 29: Introducción CMMI

Introducción a Modelos deCalidad 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

Page 30: Introducción CMMI

Introducción a Modelos deCalidad 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

Page 31: Introducción CMMI

Introducción a Modelos deCalidad 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

Page 32: Introducción CMMI

Introducción a Modelos deCalidad 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.

Page 33: Introducción CMMI

Introducción a Modelos deCalidad 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 mejora1. Inicial2. Administrado3. Definido4. Administrado Cuantitativamente5. Optimizado

Page 34: Introducción CMMI

Introducción a Modelos deCalidad 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

Page 35: Introducción CMMI

Introducción a Modelos deCalidad 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

Page 36: Introducción CMMI

Introducción a Modelos deCalidad 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

Page 37: Introducción CMMI

Introducción a Modelos deCalidad 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

Page 38: Introducción CMMI

Introducción a Modelos deCalidad 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

Page 39: Introducción CMMI

Introducción a Modelos deCalidad 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

Page 40: Introducción CMMI

Introducción a Modelos deCalidad 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

Page 41: Introducción CMMI

Introducción a Modelos deCalidad 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

Page 42: Introducción CMMI

Introducción a Modelos deCalidad 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

Page 43: Introducción CMMI

Introducción a Modelos deCalidad 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

Page 44: Introducción CMMI

Introducción a Modelos deCalidad de Software

Niveles de Madurez 1, 2 y 3

Page 45: Introducción CMMI

Introducción a Modelos deCalidad de Software

Nivel de Madurez 4

Page 46: Introducción CMMI

Introducción a Modelos deCalidad de Software

Nivel de Madurez 5

Page 47: Introducción CMMI

Introducción a Modelos deCalidad de Software

Organización de los Niveles de Madurez

Page 48: Introducción CMMI

Introducción a Modelos deCalidad 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

Page 49: Introducción CMMI

Introducción a Modelos deCalidad 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

Page 50: Introducción CMMI

Introducción a Modelos deCalidad de Software

Áreas de Proceso

Page 51: Introducción CMMI

Introducción a Modelos deCalidad 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, monitoreo, control, valoración, medición y mejora de procesos

– Aplica a todos los proyectos

Page 52: Introducción CMMI

Introducción a Modelos deCalidad 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

Page 53: Introducción CMMI

Introducción a Modelos deCalidad de Software

Áreas de Proceso

• Soporte– Actividades para soportar el desarrollo y

mantenimiento de producto

Page 54: Introducción CMMI

Introducción a Modelos deCalidad de Software

Áreas de Proceso

Área de proceso Categoría Nivel de Madurez

Análisis y resolución de problemas

Soporte 5

Gestión de la configuración Soporte 2

Análisis y resolución de decisiones

Soporte 3

Gestión integral de proyecto Gestión de proyectos

3

Gestión integral de proveedores

Gestión de proyectos

3

Page 55: Introducción CMMI

Introducción a Modelos deCalidad 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 integración

Soporte 3

Innovación y desarrollo Gestión de procesos 5

Definición de procesos Gestión de procesos 3

Procesos orientados a la organización

Gestión de procesos 3

Page 56: Introducción CMMI

Introducción a Modelos deCalidad de Software

Áreas de ProcesoÁrea de proceso Categoría Nivel de

Madurez

Rendimiento de los procesos de la organización

Gestión de procesos 4

Formación Gestión de procesos 3

Integración de producto Ingeniería 3

Monitorización y control de proyecto

Gestión de proyectos

2

Planificación de proyecto Gestión de proyectos

2

Gestión calidad procesos y productos

Soporte 2

Page 57: Introducción CMMI

Introducción a Modelos deCalidad de Software

Áreas de ProcesoÁrea de proceso Categoría Nivel de

Madurez

Gestión cuantitativa de proyectos

Gestión de proyectos

4

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 proveedores

Gestión de proyectos

2

Page 58: Introducción CMMI

Introducción a Modelos deCalidad 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

Page 59: Introducción CMMI

Introducción a Modelos deCalidad de Software

Áreas de Proceso

Page 60: Introducción CMMI

Introducción a Modelos deCalidad 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)

Page 61: Introducción CMMI

Introducción a Modelos deCalidad 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

Page 62: Introducción CMMI

Introducción a Modelos deCalidad de Software

SCAMPI

1.Planificación y preparación de la evaluación1.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ónDocumentar requerimientos, acuerdos, estimaciones, riesgos, personalizaciones del método y consideraciones prácticas. Consensuar el plan de evaluación con la organización

Page 63: Introducción CMMI

Introducción a Modelos deCalidad de Software

SCAMPI

1.3 Seleccionar y preparar equipoAsegurar que un equipo calificado esté a cargo de la ejecución de la evaluación

1.4 Obtener y preparar evidencia objetiva inicialObtener 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

Page 64: Introducción CMMI

Introducción a Modelos deCalidad de Software

SCAMPI

1.5 Preparar la recolección de la evidencia objetivaPlanificar y documentar las estrategias para la recolección de datos, incluyendo fuentes de datos, herramientas y tecnologías a utilizar

Page 65: Introducción CMMI

Introducción a Modelos deCalidad de Software

SCAMPI

2. Conducción de la Evaluación2.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 objetivaVerificar 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

Page 66: Introducción CMMI

Introducción a Modelos deCalidad de Software

SCAMPI

2.3 Documentar la evidencia objetivaCrear 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ónCalificar 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

Page 67: Introducción CMMI

Introducción a Modelos deCalidad de Software

SCAMPI

3. Reporte de los Resultados3.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ónPreservar los datos y registros importantes resultantes de la evaluación, almacenándolos de manera apropiada

Page 68: Introducción CMMI

Introducción a Modelos deCalidad 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

Page 69: Introducción CMMI

Introducción a Modelos deCalidad 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