Mejora de procesos
Objetivos Explicar los principios de la mejora de procesos de software Explicar cómo los factores del proceso de software influencian la calidad y la productividad del software. Explicar cómo desarrollar modelos simples de procesos de software Explicar la noción de capacidad de proceso y el modelo CMMI para la mejora de procesos
Contenidos Calidad de producto y de proceso Clasificación de procesos Medición de procesos Análisis y modelado de procesos Cambio en los procesos El marco de trabajo para la mejora de procesos CMMI
Mejora de procesos Comprender los procesos existentes e introducir cambios de proceso para mejorar la calidad del producto, reducir los costes y acelerar el tiempo de desarrollo. La mayoría de las mejoras de procesos trabajan centradas en la reducción de defectos. Esto refleja el aumento de atención que presta la industria a la calidad. Sin embargo, otros atributos del proceso también pueden se objeto de mejoras.
Atributos del proceso
Ciclo de mejora del proceso Medición cambio análisis
Etapas de mejora del proceso Medición del proceso Se miden los atributos del proceso actual. Estos son el punto de partida para la valoración de mejoras. Análisis del proceso Se valora el proceso actual y se identifican las debilidades y dificultades. Cambio del proceso Se introducen en el proceso los cambios que han sido identificados durante el proceso
Calidad de producto y proceso La calidad de producto y la calidad del proceso están estrechamente relacionados y los beneficios de mejora del proceso aumenta porque la calidad del producto depende de su proceso de desarrollo. Normalmente hace falta un buen proceso para producir un buen producto Para los fabricantes de bienes, el proceso es el principal determinante de la calidad. Para actividades basadas en el diseño, están implicados también otros factores, especialmente las capacidades de los diseñadores.
Principales factores de calidad del producto Tecnología de desarrollo Calidad del proceso Calidad del personal Calidad del producto Coste, tiempo y duración
Factores de calidad Para proyectos grandes como capacidades «medias», el proceso de desarrollo determina la calidad del producto. Para proyectos pequeños, las capacidades de los desarrolladores es el principal determinante. La tecnología de desarrollo es particularmente importante para proyectos pequeños. En todos los casos, si se impone un calendario poco realista, entonces sufre la calidad del producto.
Clasificación de procesos Informales No hay modelo de proceso detallado. El equipo de desarrollo elige su propia manera de trabajar. gestionados Modelo de proceso definido que conduce el proceso de desarrollo Metodológicos Los son apoyados por algún método de desarrollo como el RUP Apoyados Procesos apoyados por herramientas CASE automáticas.
Aplicabilidad del proceso Prototipos Sistemas con tiempos de vida cortos Sistemas de gestión 4GL Sistemas pequeños o medianos Proceso informal Sistemas grandes Productos con tiempos de vida largos Proceso gestionado Dominios de aplicación bien entendidos Sistemas donde se ha aplicado reingeniería Proceso metodológico
Elección del proceso El proceso utilizado debería depender del tipo de producto que se está desarrollando Para sistemas grandes, la gestión es normalmente el problema principal así que se necesitará un proceso estrictamente gestionado; Para sistemas más pequeños, es posible una mayor informalidad. No hay un proceso uniformemente aplicable que deba estar estandarizado en una organización puede incurrir en altos costes si se fuerza un proceso inadecuado en un equipo de desarrollo; Los métodos inadecuados también pueden incrementar los costes y derivar en una reducción de la calidad.
Herramientas de apoyo al proceso Proceso informal Proceso administrado Proceso metódico Proceso de mejora Herramientas de administración de la configuración Herramientas de administración de proyectos Bancos de trabajo de análisis y diseño Herramientas genéricas Herramientas especializadas
Medición del proceso Siempre que sea posible, deberían recogerse datos cuantitativos del proceso Sin embargo, en las organizaciones en las que no se tiene unos estándares de proceso claramente definidos esto resulta muy difícil ya que no se sabe qué es lo que hay que medir. Un proceso puede tener que definirse antes de que sea posible cualquier medición. Las mediciones del proceso deberían utilizarse para valorar las mejoras del proceso Pero esto no significa que las mediciones conduzcan las mejoras. Los objetivos organizacionales debieran ser quienes condujeran las mejoras.
Clases de mediciones de procesos Tiempo requerido para completar las actividades del proceso P.ej: El tiempo de calendario o esfuerzo necesario para completar una actividad o proceso Recursos requeridos para los procesos o actividades P.ej: Esfuerzo total en días/persona. Número de ocurrencias de un evento en particular P.ej: Número de defectos descubiertos.
Paradigma Goal-Question-Metric (GQM) Metas (goals) ¿Qué está tratando de conseguir la organización? El objetivo de la mejora del proceso es satisfacer esas metas. Preguntas (Questions) Preguntas sobre las áreas de incertidumbre relacionadas con las metas. Se necesita conocimiento del proceso para derivarlas. Métricas (Metrics) Las mediciones a recoger para responder a las preguntas
Análisis y modelado de procesos Análisis de procesos Estudio de procesos existentes para comprender las relaciones entre las partes del proceso y compararlas con otros procesos Modelado de procesos La documentación de un proceso que registra la tarea, los roles y las entidades utilizadas; Los modelos de proceso pueden estar presentados desde diferentes perspectivas.
Análisis y modelado de procesos Estudiar un proceso existente para comprender sus actividades. Producir un modelo abstracto del proceso. Normalmente se debería representar gráficamente. Pueden hacer falta varias perspectivas (P.ej: actividades, entregas, etc) Analizar el modelo para descubrir los problemas del proceso. Esto implica la discutir con los stakeholders sobre y descubrir problemas y posibles cambios en el proceso.
Técnicas de análisis del proceso Modelos de proceso publicados y estándares de proceso Siempre es mejor iniciar el análisis del proceso con un modelo existente. Las personas, entonces, deberían ampliarlo y cambiarlo. Cuestionarios y entrevistas Debe ser diseñado cuidadosamente. Los participantes podrían decir lo que piensan que quieres oír Análisis etnográfico Implica asimilar el conocimiento del proceso mediante la observación. Es mejor para análisis en profundidad de los fragmentos del proceso en lugar de para la comprensión global del proceso.
Elementos de un modelo de proceso 1
Elementos de un modelo de proceso 2
Proceso de pruebas de un módulo Rol Postcondición Todas las pruebas definidas se ejecutan en el módulo Ingeniero de pruebas Precondición El módulo compila sin errores de sintaxis Responsable salidas Registro de pruebas firmado Probar módulo Entrada Proceso Especificación del módulo Datos de prueba del módulo
Actividades involucradas en la prueba de un módulo PREPARACIÓN DE LOS DATOS DE PRUEBA Preparar datos de prueba acordes con la especificación Leer especificación del módulo Someter a revisión los datos de prueba Revisar los datos de prueba PREPARACIÓN DEL ARNÉS DE PRUEBAS DEL MÓDULO Comprobar un módulo a partir del sistema de administración dela configuración Leer y comprender la interfaz del módulo Preparar arnés de pruebas para el módulo Compilar arnés de pruebas EJECUCIÓN DE LA PRUEBA Ejecutar las pruebas aprobadas en el módulo Registrar resultados de pruebas para pruebas de regresión Incorporar módulo con el arnés de pruebas GENERACÍÓN DE INFORMES DE LAS PRUEBAS Redactar informe de la prueba del módulo incluyendo detalles de los problemas descubiertos Someter el informe a aprobación Someter resultados de prueba al CM
Excepciones del proceso Los procesos de software son complejos y los modelos de proceso no pueden representar de forma efectiva cómo manejar las excepciones: Varias personas clave se ponen enfermas justo antes de la revisión crítica; Avería en la computadora de seguridad que deja todas las comunicaciones fuera de servicio durante varios días; Reorganización organizacional Se hace una petición no prevista de propuestas para nuevos proyectos. El esfuerzo se transfiere de un proyecto a trabajar en una propuesta. En estas circunstancias el modelo se suspende y los gestores utilizan su iniciativa para tratar la excepción.
Cambio de proceso Implica hacer modificaciones en los procesos existentes. Lo que puede conllevar: La introducción de nuevas prácticas, métodos o procesos; El cambio de ordenación de las actividades del proceso; La introducción o eliminación de entregas; La introducción de nuevos roles o responsabilidades. El cambio debería estar conducido por metas mesurables.
El proceso de cambio de proceso Introducir cambios de proceso Identificar mejoras Refinar los cambios de proceso Priorizar mejoras Capacitar a los ingenieros Modelo de proceso Plan de cambio de proceso Plan de capacitación Retroalimentación de mejoras Modelo de proceso revisado
Etapas de cambio del proceso Identificación de la mejora. Priorización de la mejora. Introducción de cambios en el proceso. Capacitación en el cambio del proceso. Refinamiento.
El marco de trabajo CMMI El marco de trabajo CMMI es la etapa habitual de trabajo en la valoración y mejora de procesos que se inició en el Software Engineering Institute (SEI) en 1980. La misión del SEI es promocionar la transferencia de tecnología del software particularmente para los contratistas de defensa. Ha tenido una profunda influencia en la mejora de procesos El Modelo de Madurez de la Capacidad fue introducido a principios de los noventa. El marco de trabajo de madurez revisado (CMMI) fue introducido en 2001
Valoración de las capacidades del proceso Previsto como medio para valorar hasta qué punto los procesos de la organización siguen la mejor práctica. Proporcionando un medio de valoración es posible identificar las áreas de debilidad para la mejora de procesos. Han existido varios modelos de valoración y mejora de procesos pero el trabajo del SEI ha sido el más influyente.
El modelo de madurez de la capacitación del SEI Inicial Esencialmente no controlado Repetible Se definen y utilizan Procedimientos de gestión del producto Definido Se definen y utilizan Procedimientos y estrategias de gestión del proceso gestionado Se definen y utilizan estrategias de gestión de la calidad Optimización Se definen y utilizan Estrategias de mejora del proceso
Problemas con el CMM Prácticas asociadas con los niveles del modelo Las compañías podrían estar usando prácticas de diferentes niveles al mismo tiempo pero si todas las prácticas de un nivel inferior no se utilizan, no es posible moverse por encima de ese nivel Discreto en lugar de continuo No se reconocieron las distinciones entre la parte superior y la parte inferior de los niveles Orientado a prácticas Se ocupaba de cómo se habían las cosas (las prácticas) en lugar de en las metas perseguidas.
El modelo CMMI Un modelo de capacidad integrado que incluye la valoración de la capacidad de ingeniería de sistemas. El modelo tiene dos ejemplos En etapas, en el que el modelo se expresa en términos de niveles de habilidad; Continuo en el que se calcula la valoración de la habilidad.
Componentes del modelo CMMI Áreas de proceso Se identifican 24 áreas de proceso que son relevantes para la capacidad y mejora del proceso. Éstas se organizan en 4 grupos. Metas Las metas son descripciones de estados organizacionales deseables. Cada área del proceso tiene metas asociadas. Practicas Las prácticas son formas de conseguir metas – sin embargo, son consultativas y se podrían usar otros enfoques para conseguir la meta.
Áreas de proceso en el CMMI 1
Áreas de proceso en el CMMI 2
Metas del CMMI
Prácticas del CMMI
Valoración del CMMI Examina los procesos utilizados en una organización y valora su madurez en cada área de proceso. Basados en una escala de seis puntos: No productivo; productivo; Gestionado; Definido; Gestionado cuantitativamente; Optimizado.
El modelo CMMI en etapas Comparable al software CMM Cada nivel de madurez tiene áreas y metas de proceso. Por ejemplo, el área del proceso asociado con el nivel gestionado incluye: Gestión de requerimientos; Planificación del proyecto; Monitorización y control del proyecto; Acuerdos con los proveedores; Análisis y mediciones; Garantía de la calidad del proceso y del producto.
El modelo CMMI en etapas Nivel 5 Optimizado Nivel 4 Gestionado cuantitativamente Nivel 3 Definido Nivel 2 Gestionado Nivel 1 Inicial
Prácticas institucionales Las instituciones que operan en el nivel gestionado deberían tener prácticas institucionalizadas que estén adaptadas a la estandarización. Establecer y mantener políticas para realizar el proceso de gestión del proyecto; Proporcionar recursos adecuados para realizar el proceso de gestión del proyecto; Monitorizar y controlar el proceso de planificación del proyecto; Revisar las actividades, el estatus y los resultados del proceso de planificación del proyecto.
El modelo CMMI continuo Este es un modelo de grano fino que considera las prácticas individuales o en grupo y valora su uso. La valoración de la madurez no es un valor único sino un conjunto de valores que muestran la madurez de las organizaciones en cada área. El CMMI estima cada área del proceso desde el nivel 1 hasta el 5 La ventaja de un enfoque continuo es que las organizaciones pueden tomar y elegir áreas del proceso para mejorarlas de acuerdo con sus necesidades locales.
Perfil de capacidad de proceso Control y seguimiento del proyecto Gestión de los acuerdos con proveedores Gestión de riesgos Gestión de configuraciones Gestión de requerimientos Verificación Validación 1 2 3 4 5
Puntos clave La mejora del proceso implica el análisis del proceso, la estandarización, mediciones y cambio. Los procesos pueden clasificarse como informales, gestionados, metódicos y de mejora. Esta clasificación puede utilizarse para identificar el soporte de herramientas del proceso. El ciclo de mejora del proceso implica la medición del proceso, el análisis del proceso y el cambio del proceso. La medición del proceso debería utilizarse para responder a preguntas específicas sobre el proceso basadas en metas de mejora organizacionales.
Puntos clave Los tres tipos de métricas utilizados en los procesos de medición son las métricas de tiempo, las métricas de utilización de recursos y las métricas de eventos. Los modelos de proceso incluyen descripciones de tareas, actividades, roles, excepciones, comunicaciones, entregas y otros procesos. El modelo de madurez de proceso CMMI integra software y mejoras en el proceso de ingeniería de sistemas. La mejora de procesos en el modelo CMMI está basada en alcanzar un conjunto de metas relacionadas a una buena práctica de ingeniería del software.