25
Introduciendo Prácticas CMMI de Medición y Análisis dentro del Proceso de Desarrollo de Software basado en SCRUM Fierro Díaz, Natali [email protected] Octubre, 2008 UNIVERSIDAD NACIONAL DE SAN AGUSTIN ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS INGENIERÍA DE SOFTWARE-II

Introduciendo Prácticas CMMI de Medición y Análisis dentro del Proceso de Desarrollo de Software basado en SCRUM

  • Upload
    azurea

  • View
    1.730

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Introduciendo Prácticas CMMI de Medición y Análisis dentro del Proceso de Desarrollo de Software basado en SCRUM

Introduciendo Prácticas CMMI de Medición y Análisis dentro del Proceso de Desarrollo de

Software basado en SCRUM

Fierro Díaz, [email protected]

Octubre, 2008

UNIVERSIDAD NACIONAL DE SAN AGUSTINESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS

INGENIERÍA DE SOFTWARE-II

Page 2: Introduciendo Prácticas CMMI de Medición y Análisis dentro del Proceso de Desarrollo de Software basado en SCRUM

Agenda

• Resumen

• Introducción / Antecedentes

• Marco Teórico (1)

• Marco Teórico (2)

• Preguntas de Discusión

• Conclusiones

• Referencias

Page 3: Introduciendo Prácticas CMMI de Medición y Análisis dentro del Proceso de Desarrollo de Software basado en SCRUM

Resumen

La introducción de prácticas CMMI para el análisis y la medición de Áreas de Proceso dentro del SCRUM es descrito con el objetivo de monitorear y mejorar el proceso de desarrollo de software. Un meta modelo del SCRUM es dado, seguido por especificaciones de medidas base y medidas derivadas. Puntos en la escala de tiempo del proceso son definidos en donde las medidas propuestas son recolectadas sin dañar la agilidad del SCRUM. Finalmente una solución para diseñar un repositorio de medición es propuesto.

Palabras clave:

CMMI, repositorio de medición, Scrum, medidas de Software.

Page 4: Introduciendo Prácticas CMMI de Medición y Análisis dentro del Proceso de Desarrollo de Software basado en SCRUM

Introducción

• Numerosos métodos ágiles han aparecido en la última década que en contraste con modelos como CMMI valoran más a los individuos y sus interacciones que a los procesos y sus herramientas, al software funcional sobre la documentación comprehensiva, la colaboración con el cliente sobre la negociación de contratos, y la respuesta al cambio sobre el planeamiento.

• A primera vista los conceptos ágiles parecen estar en conflicto con metodologías disciplinadas como CMMI, pero varios autores sugieren que es posible construir Software a través de un balance entre agilidad y disciplina.

Page 5: Introduciendo Prácticas CMMI de Medición y Análisis dentro del Proceso de Desarrollo de Software basado en SCRUM

Marco Teórico (1)

Visión General SCRUM– SCRUM es una metodología de desarrollo de

software iterativa e incremental manejada por una Lista de Reserva de Productos, la cual es manejada por el dueño del producto quien es el único autorizado en realizar cambios en los requerimientos.

– Todo el trabajo es echo en Sprints, que tienen una duración de 30 días calendario.

– Cada requerimiento es desglosado en tareas.– La funcionalidad es desarrollada por el equipo, el cual

es auto-organizado y de funciones cruzadas.– El SCRUM master es el responsable de gerenciar el

proceso SCRUM

Page 6: Introduciendo Prácticas CMMI de Medición y Análisis dentro del Proceso de Desarrollo de Software basado en SCRUM

Marco Teórico (2)

Page 7: Introduciendo Prácticas CMMI de Medición y Análisis dentro del Proceso de Desarrollo de Software basado en SCRUM

Marco Teórico (3)

Implementación de Prácticas CMMI• Establecer Objetivos de Medición

– La implementación de las prácticas CMMI de medidas y análisis se basa en el supuesto que el objetivo principal de la medición es monitorear y mejorar el rendimiento del proceso de Software.

– Consideraremos cuatro puntos de vista de skateholders involucrados en el proceso SCRUM.

Page 8: Introduciendo Prácticas CMMI de Medición y Análisis dentro del Proceso de Desarrollo de Software basado en SCRUM

Marco Teórico (4)

Page 9: Introduciendo Prácticas CMMI de Medición y Análisis dentro del Proceso de Desarrollo de Software basado en SCRUM

Marco Teórico (5)

Medidas Específicas• Las medidas pueden ser medidas base o medidas

derivadas.• Las medidas base son obtenidas mediante medición

directa, mientras que la medidas derivadas resultan de la combinación de dos o más medidas base.

• Originalmente Scrum solo tiene una medida base: la estimación de la cantidad de trabajo restante que necesita ser hecho para completar una tarea.

• Para medir la satisfacción de los stakeholders se han identificado algunas medidas adicionales que se muestran a continuación:

Page 10: Introduciendo Prácticas CMMI de Medición y Análisis dentro del Proceso de Desarrollo de Software basado en SCRUM

Marco Teórico (6)

Page 11: Introduciendo Prácticas CMMI de Medición y Análisis dentro del Proceso de Desarrollo de Software basado en SCRUM

Marco Teórico (7)

Page 12: Introduciendo Prácticas CMMI de Medición y Análisis dentro del Proceso de Desarrollo de Software basado en SCRUM

Marco Teórico (8)

Recolección de Datos Específicos y Procedimientos de Almacenamiento– Todas las medidas base propuestas pueden ser

fácilmente recolectadas durante las reuniones prescritas por SCRUM.

– La única excepción es el número de errores reportados por el usuario después de la liberación.

– Las medidas base recolectadas en cada reunión se muestran a continuación.

Page 13: Introduciendo Prácticas CMMI de Medición y Análisis dentro del Proceso de Desarrollo de Software basado en SCRUM

Marco Teórico (9)

Page 14: Introduciendo Prácticas CMMI de Medición y Análisis dentro del Proceso de Desarrollo de Software basado en SCRUM

Marco Teórico (10)

Procedimientos Específicos de Análisis– Las medidas base son agrupadas en medidas

derivadas que sirven para analizar el proceso de desarrollo de software en comparación con valores objetivo.

– Alcanzar la meta : “Información oportuna sobre el desarrollo del Proyecto” es analizada usando los siguientes indicadores:

• Efectividad del Trabajo• Lista de índices de desempeño (SPI)• Costo Índice de Desempeño de costos de mano de obra

(CPI)

Page 15: Introduciendo Prácticas CMMI de Medición y Análisis dentro del Proceso de Desarrollo de Software basado en SCRUM

Marco Teórico (11)

– Indicadores para mejora de la calidad son:• Densidad de errores.• Costo de reingeniería• Cumplimiento del alcance.

– Alcanzar la meta de satisfacción en el trabajo:• Promedio de tiempo extra• Promedio de proyectos en los cuales los empleados trabajan

en paralelo.• Evaluación cuantitativa de las condiciones de trabajo.

Page 16: Introduciendo Prácticas CMMI de Medición y Análisis dentro del Proceso de Desarrollo de Software basado en SCRUM

Marco Teórico (12)

– La meta del Scrum Master: Resolución eficiente de impedimentos, es medida calculando el número promedio de impedimentos y el tiempo necesario para resolverlos.

– Los indicadores para la Satisfacción del Cliente son reunidos a través de encuestas que le permiten a los clientes expresar sus opiniones sobre el producto.

Page 17: Introduciendo Prácticas CMMI de Medición y Análisis dentro del Proceso de Desarrollo de Software basado en SCRUM

Marco Teórico (13)

Medición del Valor Ganado– Se propone calcular los Índices de Programación y Costo de

Desarrollo usando como medidas el trabajo hecho y el trabajo restante.

– Se asume que el número de tareas que se debe cumplir en un instante determinado es proporcional al tiempo transcurrido desde el inicio del Sprint.

– Las medidas de trabajo restante y trabajo acumulado permiten la siguiente definición:

Page 18: Introduciendo Prácticas CMMI de Medición y Análisis dentro del Proceso de Desarrollo de Software basado en SCRUM

Marco Teórico (14)

– El SPI en un día “d” es calculado como:

– Y el CPI se corresponde con la fórmula:

Page 19: Introduciendo Prácticas CMMI de Medición y Análisis dentro del Proceso de Desarrollo de Software basado en SCRUM

Marco Teórico (15)

Diseño del Repositorio– El modelo de datos es derivado del meta modelo

presentado en (Marco Teórico 2), adjuntado tipos de entidades que describen las medidas adecuadas y posibilitan el acomodo de los resultados medidos.

– Algunos nuevos tipos de entidades son introducidos para permitir el rastreo de impedimentos, mantener registros de días en los que no se trabajaron, describir la clasificación de tareas.

– El modelo sirve como un modelo de datos lógico de la base de datos del repositorio.

Page 20: Introduciendo Prácticas CMMI de Medición y Análisis dentro del Proceso de Desarrollo de Software basado en SCRUM

Marco Teórico (16)

Page 21: Introduciendo Prácticas CMMI de Medición y Análisis dentro del Proceso de Desarrollo de Software basado en SCRUM

Marco Teórico (17)

Tablas de la Base de Datos

Page 22: Introduciendo Prácticas CMMI de Medición y Análisis dentro del Proceso de Desarrollo de Software basado en SCRUM

Marco Teórico (18)

Page 23: Introduciendo Prácticas CMMI de Medición y Análisis dentro del Proceso de Desarrollo de Software basado en SCRUM

Marco Teórico (19)

Page 24: Introduciendo Prácticas CMMI de Medición y Análisis dentro del Proceso de Desarrollo de Software basado en SCRUM

Preguntas de Discusión

Cómo es posible adaptar CMMI a un proceso ágil como SCRUM?

La introducción de una metodología disciplinada reducirá los beneficios de los procesos ágiles?

Page 25: Introduciendo Prácticas CMMI de Medición y Análisis dentro del Proceso de Desarrollo de Software basado en SCRUM

Conclusiones

• Las medidas base y las medidas derivadas fueron obtenidas teniendo en cuenta la metodología SCRUM.

• Se propone el diseño de un repositorio que permita aprovechar las ventajas tanto de métodos ágiles como metodologías disciplinadas (CMMI)