Calidad de Software - CMM Herramientas y Procesos de Software Facultad de Informática, Ciencias de la Comunicación y Técnicas Especiales Lic. Cecilia Palazzolo Año 2008 1 Qué es un modelo de procesos? Un modelo es una colección estructurada de elementos que describen las características de un proceso eficiente y eficaz. Un buen modelo de procesos contiene un gran cantidad de experiencia de campo dentro de su estructura. 2 1
Qué es CMM Una aplicación del sentido común para el gerenciamiento de procesos y conceptos de mejora de la calidad del desarrollo y mantenimiento del software Una guía desarrollada por y para la comunidad profesional del software Un modelo para la mejora organizacional Una estructura confiable y consistente para evaluar y mejorar las capacidades de una organización 3 Qué puedo hacer con CMM? Ayudar a la comunicación, al establecer un lenguaje común en el ámbito organizacional Facilitar poner el foco de atención en cuestiones críticas Proveer recomendaciones generales Ayudar a priorizar acciones de mejora 4 2
Madurez del Proceso de desarrollo de SW El Instituto de Ingeniería del Software (SEI) ha diseñado un método para evaluar el nivel de madurez del proceso de desarrollo del software de una empresa u organismo. El proceso se evalúa mediante un cuestionario y las respuestas se emplean para determinar una magnitud denominada "Nivel de Madurez del Proceso Los niveles de madurez del proceso son cinco: Inicial Repetible Definido Gestionado Optimizado 5 Niveles de Madurez 6 3
CMM Niveles de madurez Áreas claves de proceso Contienen Indican Alcanzan Capacidad del proceso Objetivos Características comunes Organizadas con Se aplican Implementación o Institucionalización Prácticas clave Contienen Describen Infraestructura o actividades 7 Estructura del CMM Nivel de Madurez Contiene Áreas claves Debe alcanzar Objetivos Facilidades comunes para la implantación Actividades a ejecutar Compromiso Para ejecutar Habilidades necesarias Medición y Análisis Verificación de Implantación 8 4
CMM 1. Nivel Inicial (cont cont.) La empresa no dispone de procesos y controles definidos. Se trabaja con procedimientos que no están normalizados, la planificación y el control, no están establecidos explícitamente antes de su uso. Las técnicas y/o herramientas que se emplean para el desarrollo del SW carecen de una integración entre las mismas y únicamente son empleadas en algunas fases del ciclo de vida del SW. La característica de las empresas que se encuentran en este nivel es que no hay un control de la gestión de proyectos software efectivo. 9 CMM Nivel 1: Inicial Ambiente inestable que carece de prácticas de management Los compromisos no están bajo control Los éxitos se basan en el talento individual y el esfuerzo de los héroes Las buenas prácticas y estándares son frecuentemente sacrificadas por otras prioridades del management Usualmente se cuenta con cronogramas La capacidad del proceso es impredecible Los objetivos de cronograma, costos y calidad no se hallan definidos 10 5
CMM - 2. Nivel Repetible La empresa tiene métodos estandarizados facilitando procesos repetibles. Aplican un control básico de la gestión de proyectos, gestión de calidad y gestión de la configuración. La necesidad es establecer una administración efectiva del proyecto de software Los procesos de Administración de Proyectos están definidos e implementados Las políticas organizacionales guían los proyectos Las prácticas exitosas usadas en proyectos previos, puede ser repetidas. 11 CMM - 3. Nivel Definido La empresa monitoriza y mejora sus procesos. Los procesos de software están definidos, documentados, y son aplicados a través de toda la organización. Comprensión compartida de como funciona el proceso y roles establecidos La capacidad de los procesos satisface objetivos de cronograma, costos, y funcionalidad Las empresas que se encuentran en este nivel se caracterizan por disponer de: Un grupo de proceso, cuyo objetivo es el de mejorar el proceso software Una metodología de desarrollo software que describa las actividades técnicas y de gestión requeridas para la adecuada ejecución del proceso de desarrollo. 12 6
CMM Nivel 4: Administrado La empresa posee controles avanzados, métricas y retroalimentación. Se dispone del control de los costes y calidad de las principales etapas del proceso. Es prerequisito que exista una metodología de desarrollo software para realizar una medición efectiva. La efectividad del proceso es medida. El control estadístico del proceso es iniciado. Se sigue un proceso que apunta a las causas de desviaciones en el producto. 13 CMM Nivel 5: Optimizado La empresa emplea métricas con propósitos de optimización. En este nivel se tienen los medios para identificar los elementos más débiles del proceso y mejorarlos. Los factores que imposibilitan la realización, son identificados y eliminados. La mejora continua está institucionalizada La transición a nuevas tecnologías es practicada rutinariamente 14 7
Conclusiones El CMM codifica buenas prácticas existentes Es independiente de la tecnología y del área Es difícil salir del nivel 1 Se puede ser exitoso en el nivel 1 Se puede ser un fracaso en el nivel 3 Es aplicable a todo tipo y tamaño de organizaciones de SW 15 Los problemas de CMM y la solución Problemas de CMM Las disciplinas de Software y Sistemas nuncan han sido bien integradas La Importancia e influencia del software en los sistemas se ha incrementado dramáticamente La solución: CMMI Integrar las disciplinas de software y sistemas en un marco de mejoras a los procesos. Proveer un marco de trabajo para introducir nuevas disciplinas según necesidades. 16 8
Mejoras de CMMI sobre CMM Énfasis en mejoras medibles para lograr objetivos del negocio Han sido agregadas Áreas de Procesos para poner más énfasis en algunas prácticas importantes Gestión de Requerimientos Ingeniería de Procesos Análisis de las decisiones CMMI es significativamente más grande que el CMM: Más objetivos y prácticas Más áreas de proceso Más detalles 17 Ventajas del CMMI Arquitectura del modelo más robusta y con mayor nivel de detalle Aplicable a más de una disciplina Mejor atención a las áreas de ingeniería La representación continua permite focalizar mejoras de acuerdo a los objetivos del negocio 18 9
Desventajas del CMMI Tamaño y complejidad mucho mayor que modelos vigentes El proceso de avaluación es más costoso en tiempo y esfuerzo La complejidad de la evaluación continua puede atentar contra la definición de objetivos concretos de madurez 19 Conclusiones Si usted viene del mundo del CMM trabaje con el modelo por niveles Si usted tiene bien claros los objetivos de su negocio y las debilidades de sus procesos, y además entiende las relaciones entre las áreas de proceso, la representación continua puede ser una buena alternativa Para ambos casos, defina un plan de migración sobre la base de su madurez actual y una buena comprensión de su negocio/productos 20 10