introducción a cmmi - ingenieria de software · pdf file2 empresa madura el proceso de...
TRANSCRIPT
1
Introducción a CMMI
Dr. Juan Pablo Carvallo [email protected]
Situación actual
� La disciplina, ingeniería del software, es relativamente reciente y muchos de sus conceptos importantes están aún inmaduros
� No ha acabado de salir de la fase artesanal� Carencia de un corpus de conocimiento aceptado
mayoritariamente que sirva como fundamentos (Swebook)
� Padecemos de “prisa patológica”, que es consecuencia directa de:
� Desorganización� Falta de planificación
� Alta dependencia de los “héroes”
� Dedicamos el esfuerzos de hoy a arreglar lo que se hizo mal ayer
� El producto (software) es algo intangible y no constreñido por las leyes físicas
� Escasa presión del mercado
Empresa Inmadura
� En una organización inmadura:
� Procesos software normalmente improvisados
� Si se han especificado, no se siguen rigurosamente
� Organización reactiva (resolver crisis inmediatas)
� Planes y presupuestos excedidos sistemáticamente, al no estar basados en estimaciones realistas
� Si hay plazos rígidos, se sacrifican funcionalidad y calidad del producto para satisfacer el plan
� No existen bases objetivas para juzgar la calidad del producto
� Cuando los proyectos está fuera de plan, las revisiones o pruebas se recortan o eliminan
2
Empresa Madura
� El proceso de elaboración del software esta claramente definido, no existen ambigüedades a cerca de:� Que se tiene que hacer� Cuando, como ,donde, etc.
� Es predecible, se puede repetir en otros proyectos con confianza sobre los resultados� Predecible respecto a esfuerzo, costo, etc.� Predecible respecto a la calidad: con respecto al numero de
defectos, rendimiento, etc.
� Identifica y remueve los defectos tempranamente� Los defectos incrementan el costo del proyecto� La detección y corrección tardía son costosas
� Se preocupa de monitorizar y mejorar continuamente:� Basada en la retroalimentación de la monitorización� Evalúa continuamente nuevas herramientas y tecnologías� Define métricas y realiza mediciones
Empresa con procesos institucionalizados
“Esta es la forma en la que hacemos las cosas por aquí.”
� La organización se construye sobre una infraestructura que contiene procesos, efectivos, usables, y aplicados consistentemente.
� La cultura organizacional se transporta en los procesos.
� La gestión nutre la cultura.
� Los procesos institucionalizados se mantienen incluso luego de que las personas que los definieron se han ido.
Qué hacer ?
Artesanía Ingeniería
!Cambio cultural de todos los involucrados!
3
Que es un proceso de mejora continua
� Un proceso es un conjunto de pasos definidos para lograr una tarea
� Proceso del software es el conjunto de actividades, métodos, practicas y transformaciones para desarrollar y mantener software y productos asociados
[Paulk 1994]
� Un proceso definido es aquel que esta descrito a tal detalle que permite que los ingenieros lo ocupen constantemente. Los procesos definido ayudan durante la planificación y desarrollo de un trabajo
[Humhprey, 2000-2001]
� La madurez de un proceso es el punto hasta el cual un determinado proceso es explícitamente definido, administrado, medido, controlado y efectivo
[Paulk 1994]
� Un proceso de mejora continua, es un conjunto de guías y técnicas que permiten incrementar continuamente la madurez de un proceso de software
Modelo de Procesos
� ¿Que es un modelo de procesos?
� Es una colección estructurada de practicas que describe las características de un proceso efectivo.
� Las practicas incluidas son aquellas que han probado ser efectivas en la practica.
� ¿Como se utiliza un modelo de procesos?
� Como ayuda para definir prioridades y objetivos de mejora de procesos.
� Como ayuda para diseñar procesos estables, capaces y maduros.
� Como guía para mejorar proyectos y procesos organizacionales. � En conjunto con métodos de auditoria para diagnosticar el
estado de las practicas de una organización.
¿Por qué son importantes los Modelos de Procesos?
� Son importantes porque proveen:
� Un punto de partida para iniciar el proceso de mejora
� Los beneficios de la experiencia previa de una comunidad
� Un lenguaje común y una visión compartida
� Un marco para priorizar acciones
� Una forma de definir lo que la mejora significa para una organización
4
Algunos Modelos de Procesos de mejora continua del software
Trillium
Bootstrap
CMMI: CONCEPTOS INTRODUCTORIOS
Capability Maturity Model Integration (CMMI)
¿Que hace CMMI?
� Estudia los procesos de desarrollo de software de una organización y produce una evaluación de la madurez de la organización según una escala de cinco niveles
� La madurez de un proceso es un indicador de la capacidad para construir un software de calidad.
¿Porque CMMI es importante?
� Es el modelo de mejora continua de desarrollo de software mas conocido y distribuido a nivel mundial
� Es un estándar de facto basado en las mejores practicas de cientos de proyectos de desarrollo de software
� Esta siendo utilizado por muchas organizaciones que no son desarrolladoras de software
5
Antecedentes
� Originado en 1982 ayudo a mejorar la calidad del proceso de software de contratistas gubernamentales en USA
� El trabajo empezó en el centro MITRE, y luego en el Software Engineering Institute (SEI) de la universidad Carnegie Mellon
� El autor inicial fue Watts Humphrey, luego se sumaron Mark Paulk, Bill Curtis, y otros
� Esta basado en gran medida en los conceptos de Total QualityManagement (TQM) y el trabajo de Philip Crosby.� Ha estado en continuo y activo desarrollo durante mas de 25
años� Ha ganado mucho interés por parte de organizaciones que no
se dedican al desarrollo de software
� Todos los documentos son públicos y gratuitos
� Versión actual CMMI v 1.2� Proximamente CMMI v 1.3
CMMI Para la mejora de procesos
� Se debe utilizar CMMI en las actividades de mejora de procesos como:
� Una colección de mejores practicas
� Un marco para organizar y priorizar actividades
� Soporte para la coordinación de actividades multidisciplinarias que pueden ser necesarias para construir un producto de manera exitosa.
� Una forma de enfatizar el alineamiento de los objetivos de mejora de procesos con los objetivos de negocio de la organización.
6
ESTRUCTURA DEL MODELO
Representaciones del Modelo CMMI (1/2)
� Existen dos tipos de representaciones del modelo CMMI:� Escalonada o por pasos
� Continua
� Una representación en CMMI es análoga a una vista en un base de datos.
� Ambas representaciones proveen formas de implementar mejoras a los procesos para alcanzar los objetivos de negocio.
� Ambas representaciones proveen esencialmente el mismo contenido y componentes del modelo, pero se organizan de diferente manera.
Representaciones del modelo CMMI (2/2)
Practicas Especificas
Objetivos Específicos
Practicas Genéricas
Objetivos Genéricos
Área de Proceso
Representación Escalonada
Niveles de Madurez
Practicas Especificas
Objetivos Específicos
Practicas Genéricas
Objetivos Genéricos
Área de Proceso
Representación Continua
Niveles de Capacidad
7
Componentes del modelo
� Componentes Requeridos� Objetivo genérico: Asociados a un nivel de capacidad establecen
lo que una organización debe alcanzar en ese nivel de capacidad.� Su logro en un área de proceso significa mejorar el control en la
ejecución del área de proceso.
� Objetivo específico: Se aplican a una única área de proceso y localizan las particularidades que describen qué se debe implementar para satisfacer el propósito del área de proceso.
� Componentes Esperados� Práctica genérica: Se aplica a cualquier área de proceso porque
puede mejorar el funcionamiento y el control de cualquier proceso.
� Práctica específica: Es una actividad que se considera importante en la realización del objetivo específico al cual está asociado.
� Describen las actividades esperadas para lograr la meta específica de un área de proceso
Componentes del modelo
� Componentes Informativos
� Propósito: Describe el propósito del Área de Proceso
� Notas introductorias: Describe los principales conceptos que aborda el Área de Proceso.
� Áreas de proceso relacionadas: Esta sección provee referencias a áreas de proceso relacionadas y una visión general de sus relaciones
� Productos de trabajo típicos: Ejemplos de productos resultantes de las practicas especificas (no son una lista rigurosa)
� Sub-prácticas: Descripción detallada que sirve como guía para la interpretación de una práctica genérica o específica.
� Ampliaciones de disciplina: Información relevante de una disciplina particular y relacionada con una práctica específica.
� Elaboraciones de prácticas genéricas: Es una guía de cómo la práctica genérica debe aplicarse al área de proceso.
Organización de las áreas de proceso en las dos representaciones
� En la representación escalonada las áreas de proceso se organizan por nivel de madurez:� Niveles 1 a 5
� En la representación continua las áreas de proceso se organizan por categorías de áreas de proceso:
� Gestión de Procesos� Gestión de Proyectos
� Ingeniería � Soporte
8
CMMI Representación escalonada: Áreas de proceso por Nivel de madurez
NIVEL ENFOQUE AREA DE PROCESO AREA DE PROCESO (ESPAÑOL) SIGLA
Nivel 5:Optimizing(Optimizado)
Continuous ProcessImprovement(Mejora continua)
Organizational Innovation and Deployment
Innovación y Despliegue Organizacionales OID
Causal Analysis and Resolution Análisis de Causas y Resolución CAR
Nivel 4: Quantitatively
Managed(Gestionado
Cuantitativamente)
QuantitativelyManged
(Gestionado Cuantitativamente)
Organizational Process Performance Rendimiento de Procesos Organizacionales OPP
Quantitative Project Management Gestión Cuantitativa de Proyectos QPM
Nivel 3: Defined(Definido)
ProcessStandardization(Estandarización de
procesos)
Requirements Development Desarrollo de Requerimientos RD
Technical Solution Solución Técnica TS
Product Integration Integración de Producto PI
Verification Verificación VER
Validation Validación VAL
Organizational Process Focus Enfoque Organizacional en Procesos OPF
Organizational Process Definition +IPPD Definición de procesos organizacionales OPD
Organizational Training Entrenamiento Organizacional OT
Integrated Project Management +IPPD Gestión Integrada de Proyectos IPM
Risk Management Gestión de Riesgos RSKM
Decision Analysis and Resolution Análisis de Decisiones y Resolución DAR
Nivel 2: Managed(Gestionado)
Basic Project Management
(Gestión Básica de Proyectos)
Requirements Management Gestión de Requerimientos REQM
Project Planning Planificación de proyecto PP
Project Monitoring and Control Monitorización y Control de Proyecto PMC
Supplier Agreement Management Gestión de Acuerdos con Proveedores SAM
Measurement and Analysis Medición y Análisis MA
Process and Product Quality Assurance Aseg. de calidad de Procesos y Productos PPQA
Configuration Management Gestión de la configuración (CM) CM
CATEEGORIA AREA DE PROCESO SIGLA
Gestión de Procesos
Enfoque Organizacional en Procesos OPF
Definición de procesos organizacionales OPD
Entrenamiento Organizacional OT
Rendimiento de Procesos Organizacionales OPP
Innovación y Despliegue Organizacionales OID
Gestión de Proyectos
Planificación de proyecto PP
Monitorización y Control de Proyecto PMC
Gestión de Acuerdos con Proveedores SAM
Gestión Integrada de Proyectos IPM
Gestión de Riesgos RSKM
Gestión Cuantitativa de Proyectos QPM
Ingeniería
Gestión de Requerimientos REQM
Desarrollo de Requerimientos RD
Solución Técnica TS
Integración de Producto PI
Verificación VER
Validación VAL
Soporte
Gestión de la configuración (CM) CM
Aseg. de calidad de Procesos y Productos PPQA
Medición y Análisis MA
Análisis de Decisiones y Resolución DAR
Análisis de Causas y Resolución CAR
CMMI Representación continua: Áreas de proceso por Categorías
Entendiendo los niveles (1/4)
� Los niveles se utilizan en CMMI para describir una ruta de evolución para una organización a la que le interesa mejorar los procesos que utiliza para desarrollar y mantener sus productos y servicios.
� CMMI soporta dos rutas de mejora:
� Escalonada: Habilita a la organización a mejorar un grupo de procesos relacionados abordando incrementalmente y de manera sucesiva, grupos predefinidos de áreas de proceso.
� Continua: Habilita a las organizaciones a mejorar incrementalmente los procesos correspondientes a un área de procesos individual (o un grupo de áreas de proceso) seleccionadas por la organización.
9
Entendiendo los niveles (2/4)
� Los dos tipos de rutas están asociados a dos tipos de niveles que corresponden a las dos representaciones escalonada y continua.
� Para la representación escalonada se utiliza el termino Nivel de Madurez o Madurez organizacional.
� Para la representación continua se utiliza el termino Nivel de Capacidad o Capacidad del área de proceso.
Entendiendo los niveles (3/4)
� Independientemente de la representación seleccionada los niveles tiene el mismo concepto.
� Los niveles caracterizan la mejora de un estado mal definido a un estado que utiliza información cuantitativa para determinar las mejoras que son necesarias para que una organización alcance sus objetivos
� Para alcanzar un determinado nivel las organizaciones deben satisfacer todos los objetivos apropiados del área de procesos (o grupo de áreas de procesos) sobre los cuales se quiere obtener una mejora.
� Independientemente de si el nivel es un nivel de capacidad o de madures.
Niveles de Madurez
5
4
3
2
1 INICIAL
GESTIONADO
DEFINIDO
GESTIONADO CUANTITATIVAMENTE
OPTIMIZADO
Procesos impredecibles, pobremente controlados y reactivos
Procesos enfocados a proyectos, muchas veces reactivos
Procesos enfocados a la organización, son proactivos
Procesos medidos y controlados
Enfocado en la mejora de procesos
10
Los niveles de madurez no deben saltarse
� Cada nivel de madurez provee los fundamentos necesarios para la implementación efectiva de los procesos al siguiente nivel:
� Los niveles de proceso superiores tienen un mejor chance de alcanzar el éxito en su implementación con las disciplinas provistas en los niveles inferiores.
� Los efectos de las innovaciones de mayor madurez son mas fáciles de medir.
� Los procesos de los niveles superiores madurez pueden ser ejecutados por organizaciones con niveles inferiores de madurez, con el riesgo de no ser aplicados consistentemente durante una crisis.
Niveles de Capacidad
� Un nivel de capacidad consiste de un objetivo genérico y sus practicas genéricas relacionadas, que pueden mejorar los procesos de una organización asociados a un área de procesos
� Los niveles de capacidad proveen una escala para medir los procesos de una organización en relación a las áreas de proceso de un modelo CMMI
� Existen seis niveles de capacidad.
� Cada nivel es una capa en fundamental para la mejora continua de procesos.
� Los niveles de madures son acumulativos (ej. Un nivel superior incluye las practicas de los niveles inferiores.
Niveles de Capacidad
2
6
5
4
3
EJECUTADO
GESTIONADO
DEFINIDO
GESTIONADO CUANTITATIVAMENTE
OPTIMIZADO
El proceso se ejecuta y se logra su objetivo
Además de ejecutarse, el proceso se planifica, se r evisa y se evalúa para comprobar que cumple los requisitos
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
Además de ser un proceso definido se controla utili zando técnicas cuantitativas.
Además de ser un proceso cuantitativamente gestiona do, de forma sistemática se revisa y modifica o cambia par a adaptarlo a los objetivos del negocio. Mejora conti nua.
1INCOMPLETO
El proceso no se realiza, o no se consiguen sus obj etivos
11
Representación de la capacidad de un Área de Proceso
� La capacidad de un área de proceso se puede representar con una barra
0
1
2
3
Área de proceso N
Cap
acid
ad d
el
Áre
a de
Pro
ceso
Áreas de Proceso
Este punto representa mayor
capacidad que
Este otro punto
V
Los niveles de capacidad son acumulativos
0
1
2
3
� Debido a que los niveles de capacidad se construyen uno sobre otro, no pueden existir espacios en blanco.
�
Comparando los niveles de Capacidad y de Madurez
NIVELESCALONADA
(NIVELES DE CAPACIDAD)CONTINUA
(NIVELES DE MADUREZ)
0 Incompleto N/D
1 Ejecutado Inicial
2 Gestionado Gestionado
3 Definido Definido
4 Gestionado Cuantitativamente Gestionado Cuantitativamente
5 Optimizado Optimizado
12
OBJETIVOS Y PRACTICAS GENERICAS
Objetivos y las Practicas Genéricas
� Contribuyen al proceso de institucionalización.� Son los componentes del modelo que proveen compromiso y
consistencia a lo largo de los procesos y actividades de una organización.
� El nivel de institucionalización se representa con objetivos genéricos y se expresa con los nombres de los procesos asociados a cada objetivo como se indica en la tabla.
OBJETIVO GENERICO Y TITULO PROGRESO DEL PROCESO
GG1: Conseguir los objetivos específicos Proceso Ejecutado
GG2: Institucionalizar un proceso gestionado Proceso Gestionado
GG3: Institucionalizar un proceso definido Proceso Definido
GG4: Institucionalizar un proceso Gestionado Cuantitativamente
Proceso Gestionado Cuantitativamente
GG5: Institucionalizar un proceso Optimizado Proceso Optimizado
GG2 y GG3 Son los únicos utilizados en la versión e scalonada
Los Objetivos Genéricos Evolucionan
� Cada objetivo genérico provee la base para los siguientes:
� Un proceso Gestionado incluye y se construye sobre un proceso ejecutado
� Un proceso Definido incluye y se construye sobre un proceso Gestionado
� Un proceso Gestionado Cuantitativamente incluye y se construye sobre un proceso Definido
� Un proceso Optimizado incluye y se construye sobre un proceso Gestionado Cuantitativamente
13
GG 1: Lograr las metas específicas
PRACTICA GENERICA DESCRIPCION
GP 1.1 REALIZAR LAS PRÁCTICAS ESPECÍFICAS
Realizar las prácticas específicas del área de proceso para desarrollar los productos de trabajo y proporcionar servicios para lograr las metas específicas del área de proceso
"El proceso da soporte y permite el logro de las metas específicas del área de proceso, transformando los productos de trabajo de entrada
identificables para producir los productos de trabajo de salida identificables."
GG 2: Institucionalizar un proceso gestionado
PRACTICA GENERICA DESCRIPCION
GP 2.1 ESTABLECER UNA POLÍTICA DE LA ORGANIZACIÓN
Establecer y mantener una política de la organización para planificar y realizar el proceso.
GP 2.2 PLANIFICAR EL PROCESO Establecer y mantener el plan para realizar el proceso
GP 2.3 PROPORCIONAR RECURSOSProporcionar recursos adecuados para realizar el proceso, desarrollar los productos de trabajo y proporcionar los servicios del proceso.
GP 2.4 ASIGNAR RESPONSABILIDADAsignar la responsabilidad y la autoridad para realizar el proceso, desarrollar los productos de trabajo y proporcionar los servicios del proceso.
GP 2.5 FORMAR AL PERSONALFormar, según sea necesario, a las personas para realizar o dar soporte al proceso.
GP 2.6 GESTIONAR CONFIGURACIONESPoner los productos de trabajo designados del proceso bajo los niveles de control apropiados.
GP 2.7 IDENTIFICAR E INVOLUCRAR A LAS PARTES INTERESADAS RELEVANTES
Identificar e involucrar, como se planificó, a las partes interesadas relevantes del proceso.
GP 2.8 MONITORIZAR Y CONTROLAR EL PROCESOMonitorizar y controlar el proceso frente al plan para realizar el proceso y tomar las acciones correctivas apropiadas.
GP 2.9 EVALUAR OBJETIVAMENTE LA ADHERENCIAEvaluar objetivamente la adherencia del proceso frente a la descripción del proceso, estándares y procedimientos, y tratar las no conformidades.
GP 2.10 REVISAR EL ESTADO CON EL NIVEL DIRECTIVO
Revisar con el nivel directivo las actividades, el estado y los resultados del proceso, y resolver los problemas.
"El proceso está institucionalizado como un proceso gestionado"
GG 3: Institucionalizar un proceso definido
PRACTICA GENERICA DESCRIPCION
GP 3.1 ESTABLECER UN PROCESO DEFINIDOEstablecer y mantener la descripción de un proceso definido.
GP 3.2 RECOGER INFORMACIÓN DE MEJORA
Recoger productos de trabajo, medidas, resultados de medición e información de mejora procedente de la planificación y realización del proceso para dar soporte al uso futuro y a la mejora de los procesos y de los activos de proceso de la organización.
"El proceso está institucionalizado como un proceso definido."
14
GG 4: Institucionalizar un proceso gestionado cuantitativamente
PRACTICA GENERICA DESCRIPCION
GP 4.1 ESTABLECER OBJETIVOS CUANTITATIVOS PARA EL PROCESO
Establecer y mantener los objetivos cuantitativos para el proceso, los cuales tratan la calidad y el rendimiento del proceso en base a las necesidades del cliente y a los objetivos de negocio.
GP 4.2 ESTABILIZAR EL RENDIMIENTO DEL SUBPROCESO
Estabilizar el rendimiento de uno o más subprocesos para determinar la capacidad del proceso para lograr los objetivos cuantitativos establecidos de calidad y de rendimiento del proceso.
"El proceso está institucionalizado como un proceso gestionado cuantitativamente."
GG 5: Institucionalizar un proceso de optimización
"El proceso está institucionalizado como un proceso en optimización."
PRACTICA GENERICA DESCRIPCION
GP 5.1 ASEGURAR LA MEJORA CONTINUA DEL PROCESO
Asegurar la mejora continua del proceso para satisfacer los objetivos de negocio relevantes de la organización.
GP 5.2 CORREGIR LAS CAUSAS RAÍZ DE LOS PROBLEMAS
Identificar y corregir las causas raíz de los defectos y de otros problemas en el proceso.
Resumen