[[Nombre de la institución]] Proceso de Revisión [[fecha]] Versión 1.0 Proceso de Revisión Versión 1.0 [[Autor]] [[fecha]] Información del documento Título Identificador Proceso de Revisión Versión 1.0 Archivo Proceso de Revisión.doc Autor Fecha Estado Aprobación del documento Gerente Técnico <firma> <fecha> <firma> <fecha> <firma> <fecha> <firma> <fecha> <firma> <fecha> <nombre> Ingeniero de SQA <nombre> [[cargo/posición]] <nombre> [[cargo/posición]] <nombre> [[cargo/posición]] <nombre> Registro de cambios Nro. de cambio Fecha Tipo(1) Descripción del cambio Autor Nro. de Petición (1) A: Agregar – M: Modificar – E:Eliminar 1 Proceso de Revisión Versión 1.0 [[Autor]] [[fecha]] Tabla de Contenidos 1 INTRODUCCIÓN .............................................................................................................................. 3 1.1 1.2 1.3 1.4 1.5 PROPÓSITO .................................................................................................................................... 3 ALCANCES..................................................................................................................................... 3 DESCRIPCIÓN DEL DOCUMENTO .................................................................................................... 3 GLOSARIO DE TÉRMINOS ............................................................................................................... 3 ACRÓNIMOS .................................................................................................................................. 4 2 RESPONSABLES .............................................................................................................................. 5 3 DESCRIPCIÓN DEL PROCESO ..................................................................................................... 6 3.1 DEFINICIÓN ................................................................................................................................... 6 3.2 APLICACIÓN .................................................................................................................................. 7 3.3 ETAPAS ......................................................................................................................................... 7 3.3.1 Planificación............................................................................................................................. 7 3.3.2 Orientación (opcional) ............................................................................................................. 9 3.3.3 Preparación ............................................................................................................................ 10 3.3.4 Inspección ............................................................................................................................... 11 3.3.5 Rework .................................................................................................................................... 13 3.3.6 Seguimiento ............................................................................................................................ 14 3.4 PARTICIPANTES ........................................................................................................................... 14 3.4.1 Moderador .............................................................................................................................. 15 3.4.2 Autor ....................................................................................................................................... 15 3.4.3 Inspectores.............................................................................................................................. 16 3.4.4 Presentador ............................................................................................................................ 16 3.4.5 Secretario ............................................................................................................................... 16 3.4.6 Observador (opcional) ........................................................................................................... 17 3.4.7 Jefe de proyectos .................................................................................................................... 17 3.5 SOPORTE ..................................................................................................................................... 17 3.5.1 Capacitación........................................................................................................................... 17 3.5.2 Herramientas .......................................................................................................................... 17 4 REFERENCIAS ............................................................................................................................... 18 5 ANEXOS ........................................................................................................................................... 19 5.1 ANEXO A: BASES DEL PROCESO DE REVISIÓN.............................................................................. 19 5.2 ANEXO B: GUÍA PARA DIRIGIR EL PROCESO DE REVISIÓN ............................................................ 19 5.3 ANEXO C: GUÍA DE PARTICIPANTES ............................................................................................ 19 5.4 ANEXO D: PROCESO DE REVISIÓN DURANTE EL CICLO DE VIDA DEL SOFTWARE .......................... 20 5.4.1 Planificación........................................................................................................................... 20 5.4.2 Especificación de requerimientos ........................................................................................... 21 5.4.3 Diseño ..................................................................................................................................... 21 5.4.4 Implementación ...................................................................................................................... 21 5.4.5 Integración y pruebas ............................................................................................................. 22 5.4.6 Aceptación y entrega .............................................................................................................. 22 5.4.7 Mantención ............................................................................................................................. 22 5.5 ANEXO E: PRODUCTOS DE TRABAJO POR FASE DE DESARROLLO ................................................. 22 5.6 ANEXO F: INICIO DE UN PROGRAMA DE REVISIONES .................................................................... 23 2 Proceso de Revisión Versión 1.0 1 1.1 [[Autor]] [[fecha]] Introducción Propósito <Objetivo organizacional asociado al documento, audiencia y responsables de la actualización del documento. > El presente documento describe la implementación del proceso de revisión de los productos o procesos utilizados para desarrollar o gestionar los productos en [[institución]], con el propósito de apoyar al responsable de la definición, planificación, implementación y soporte de esta actividad El proceso aquí descrito es actualizado y revisado periódicamente por [[Unidad/área]] <Unidad o área responsable de la actualización y soporte del proceso de revisión. > para garantizar que las experiencias y las lecciones aprendidas sean incorporadas. 1.2 Alcances <Visión general del documento. Incluye sus objetivos y alcance. > El presente documento describe el proceso de revisión, aplicable tanto a las fases de desarrollo como a la mantención, centrándose en apoyar su planificación, ejecución, documentación y monitoreo. El objetivo global es facilitar el mejoramiento continuo de la calidad de los productos de software en [[institución]] y, el particular, la temprana detección y corrección de defectos. 1.3 Descripción del documento <Breve descripción de los capítulos/secciones del documento. > Capitulo 1 Introducción: provee una visión general sobre los contenidos y objetivos del documento. Además, entrega las definiciones y acrónimos utilizados en los capítulos posteriores. Capítulo 2 Responsables: especificación de la unidad/área responsable de la mantención del proceso de revisión. Capitulo 3 Descripción del proceso: entrega una definición del proceso, su campo de aplicación, etapas del proceso de revisión, participantes y el soporte provisto al interior de la [[institución]]. Capítulo 4 Referencias bibliográficas Capítulo 5 Anexos: Guías de apoyo a la aplicación del proceso de revisión 1.4 Glosario de términos Actividad Cualquier conjunto de pasos realizados para alcanzar un objetivo. Criterios de entrada Conjunto de elementos o condiciones necesarias para comenzar un proceso. 3 Proceso de Revisión Versión 1.0 1.5 [[Autor]] [[fecha]] Criterios de salida Conjunto de elementos o condiciones necesarias para completar un proceso. Defecto Cualquier característica u ocurrencia del producto de trabajo que se haya incompleta o incorrecta en relación con los requerimientos o los estándares definidos. Informe de la Revisión Template (plantilla) utilizado por los participantes del proceso de inspección para documentar y registrar los defectos. Notificación de la Revisión Template (plantilla) utilizado para dar aviso a los futuros participantes del inicio del proceso de revisión y de la asignación de roles. Paquete de revisión Conjunto de formas y otros documentos entregados a los participantes de una revisión para su inspección y para la preparación de la revisión. Incluye los productos de trabajo, checklist, y cualquier documentación anexa sobre el producto o los estándares aplicables a él, y los templates utilizados para registrar los resultados del proceso de revisión. Producto de Trabajo Comprende el software y todos los artefactos creados como parte de la definición, mantención y uso del proceso de software, incluyendo especificaciones, descripciones de procesos, planes, procedimientos, código y documentación relacionada. Procedimiento Conjunto de acciones o actividades para transformar una entrada en una salida predeterminada. Resumen de la Revisión Template (informe ejecutivo) en el cual se registran los participantes, el esfuerzo y los defectos detectados durante la revisión. Tarea una parte del trabajo asociado a una actividad. Acrónimos <Lista de las abreviaciones utilizadas en el documento. > Acrónimo SQA SCM Significado Software Quality Assurance, Aseguramiento de la Calidad del Software Software Configuration Management, Gestión de Configuración 4 Proceso de Revisión Versión 1.0 2 [[Autor]] [[fecha]] Responsables <Designación de una unidad/área responsable de la mantención y soporte del proceso de revisión. > Como se mencionó previamente, la [[Unidad/área]] <Por ejemplo, SQA. > es responsable de la actualización y el soporte del proceso de revisión. Por lo tanto son de su competencia las siguientes obligaciones: Difundir la importancia de las revisiones. Ser el punto de información del proceso de revisión. Capacitar a los miembros de la [[institución]] y a sus subcontratistas sobre el proceso de revisión. Respaldar a los jefes de proyecto en la implantación del proceso de revisión. Mantener un repositorio con las métricas coleccionadas sobre este proceso. Asignar un responsable cuyas tareas incluyan: la interpretación de las métricas recolectadas, la incorporación al proceso de las lecciones aprendidas, el mejoramiento del proceso de revisión y la difusión de estas mejoras. 5 Proceso de Revisión Versión 1.0 3 3.1 [[Autor]] [[fecha]] Descripción del proceso Definición <Definición y descripción global del proceso de revisión. Es recomendable adjuntar gráficos representativos del proceso. > El proceso de revisión es una metodología definida, estructurada y disciplinada para la detección e identificación de defectos en los productos de trabajo durante el ciclo de vida del software. Cuenta con seis etapas: planificación, orientación, preparación, inspección, rework y seguimiento. Las cuales son llevadas a cabo por un equipo con tareas y responsabilidades definidas, con documentación específica y por un período de tiempo determinado. El equipo de inspección contempla un moderador, autor, presentador, secretario, uno o más inspectores y un observador. Planificación Moderador, Autor Orientación Moderador, Autor, Inspectores Preparación Moderador, Presentador, Inspectores Inspección Todos Rework Autor Seguimiento Moderador, Autor Figura 1 Proceso de Revisión 6 Proceso de Revisión Versión 1.0 3.2 [[Autor]] [[fecha]] Aplicación <Campo de aplicación del proceso de revisión. También pueden añadirse observaciones y recomendaciones. > El proceso de revisión es aplicable durante todo el ciclo de vida del software independientemente del modelo de desarrollo. Sin embargo, con el objetivo de maximizar los beneficios obtenidos por este proceso, es recomendable iniciarlo en etapas tempranas del desarrollo, estableciendo el número de revisiones, número de inspectores y la frecuencia de las revisiones de acuerdo a las necesidades del proyecto y a un análisis de costo/beneficio. <Es recomendable, clarificar además a quién o quienes se les impone el cumplimiento del proceso aquí documentado. Por ejemplo: Describir la relación con los subcontratistas. > 3.3 Etapas <Descripción de las etapas del proceso de revisión. > A continuación se describen las etapas del proceso de inspección en términos de sus objetivos, criterios de entrada/salida y de sus actividades. Además, se enuncian los participantes de cada etapa y sus responsabilidades durante ella. 3.3.1 Planificación Objetivo El objetivo de esta etapa es verificar que el producto se encuentre en condiciones de ser inspeccionado y planificar las actividades para garantizar el éxito de la revisión. Participantes Moderador y el autor. Criterios de entrada 1. El autor señala que el producto de trabajo está listo para la revisión. El autor cree que el producto de trabajo cumple con los criterios de calidad requeridos para aprobar la revisión. 2. Existen participantes apropiados y con disponibilidad de tiempo. El moderador y los participantes propuestos son apropiados y cuentan con la disponibilidad de tiempo requerida para participar en el proceso de revisión. Actividades 1. Selección de los participantes y asignación de roles. El jefe de proyecto debe seleccionar al moderador y apoyar a éste en la elección de los otros participantes. Luego, el moderador asignará roles y responsabilidades específicas a cada participante en consideración a sus conocimientos y experiencia. 7 Proceso de Revisión Versión 1.0 [[Autor]] [[fecha]] Observación: Es recomendable que el jefe de proyecto apruebe el equipo propuesto para la revisión y verifique la competencia de sus miembros. De no encontrarse personal capacitado, [[Unidad/área]] <Por ejemplo, la unidad de SQA. > proveerá el entrenamiento adecuado y supervisará la revisión. 2. Determinar el tamaño del producto de trabajo por ser revisado. La duración de una inspección dependerá de la complejidad del producto y de la experiencia de los participantes. Por ello es aconsejable que el moderador estime junto con el autor el tamaño del producto y decida que porciones de él serán sujetas a la revisión. Lo ideal es seleccionar material para una inspección de 2 horas como máximo. 3. Determinar los criterios que el producto debe satisfacer. El moderador debe establecer los criterios de evaluación del producto. Por lo general, estos se entregan en forma de checklist. 4. Establecer la necesidad de una reunión orientación. Durante la reunión de orientación se instruye a los participantes sobre el producto y se revisa el proceso de revisión aplicable a éste. El moderador junto al autor deben evaluar, durante la etapa de planificación, la necesidad de esta reunión, pudiendo optar por su omisión dada la experticia de los participantes o porque fue realiza durante una revisión anterior del producto de trabajo. 5. Planificar la reunión de orientación y/o la inspección. Si se ha decido llevar a cabo una reunión de orientación, el moderador debe contactar a los otros participantes para fijar lugar, fecha y hora para esta reunión y para la de inspección. En caso contrario, se programa únicamente la inspección. Observación: Se sugiere realizar la reunión de orientación dentro de los tres días hábiles posteriores a la entrega del paquete de revisión. 6. Preparación y distribución del paquete de revisión a los participantes. El paquete de revisión es concretado y distribuido entre los participantes. En él se incluyen como mínimo copias del producto sujeto a revisión y la forma de Notificación de la Revisión, en la cual se entrega información sobre sus roles, el producto de trabajo, las fechas, etc. Observación: Es recomendable distribuir el paquete de revisión con tres días de antelación a la reunión de inspección. 7. Registro del tiempo usado durante la fase de planificación. Por último, tanto el moderador como el autor deben registrar cuanto tiempo han invertido en la etapa de planificación. Esta información es útil como referencia para posteriores revisiones y para establecer métricas relacionadas con la efectividad del proceso de revisión. Criterios de salida 1. Cada participante completa satisfactoriamente la checklist de las tareas asignadas a la etapa de planificación. 8 Proceso de Revisión Versión 1.0 [[Autor]] [[fecha]] El moderador y el autor deben completar satisfactoriamente la checklist de Participantes/responsabilidades/tareas de la fase de planificación. Es responsabilidad del moderador dar paso a la siguiente etapa. 3.3.2 Orientación (opcional) Objetivo El objetivo de está reunión es instruir a los participantes sobre el producto de trabajo y reconocer el proceso de revisión que se aplicará a dicho producto. Participantes Moderador, autor y cualquier otro participante que requiera información sobre el producto o el proceso de revisión. Criterios de entrada 1. Los criterios de salida de la etapa de planificación han sido completados satisfactoriamente. - La reunión de orientación ha sido correctamente planificada. El paquete de revisión ha sido distribuido entre los participantes.. Actividades 1. Descripción general del producto de trabajo sujeto a inspección. La descripción del producto debe esclarecer el propósito y los objetivos del producto de trabajo, identificar su audiencia, cuando será utilizado y donde será aplicado, y como satisface los objetivos trazados para él. Observación: Es recomendable que el autor sea quien realice está descripción, adjuntando además sus expectativas en relación con la revisión. 2. Revisar la asignación de roles y el plan para la inspección. La presente reunión debe confirmar que cada participante entiende su rol y el plan para la inspección. Es el moderador el responsable de verificar que cada participante comprende su rol y sabe como utilizar los templates y checklist del proceso de revisión. Es más, debe corroborar que ningún participante tenga una agenda personal que afecte negativamente la inspección. 3. Responder cualquier consulta. Es responsabilidad del moderador responder a cualquier duda de los participantes. Criterios de salida 1. 2. Todos los participantes están preparados para proceder. Cada participante completa satisfactoriamente la checklist de las tareas asignadas a la etapa de orientación. 9 Proceso de Revisión Versión 1.0 3.3.3 [[Autor]] [[fecha]] Preparación Objetivo El objetivo de esta etapa es que cada miembro evalúe el producto de trabajo para detectar defectos, clasifique estos defectos y los documente. Participantes Moderador, presentador y cualquier participante bajo el rol de inspector. Criterios de entrada 1. Los criterios de salida de la etapa de planificación y de la completados satisfactoriamente. - orientación han sido Todos los participantes han confirmado la recepción del paquete de revisión. Todos los participantes comprenden el rol y las responsabilidades que les han sido asignadas. Todos lo participantes comprenden el producto de trabajo por ser inspeccionado. Actividades 1. Los inspectores revisan el producto de trabajo y registran los defectos detectados. Los inspectores y el moderador revisan el producto de trabajo y registran los defectos en la forma que se específica en el paquete de revisión y/o en la reunión de orientación. El template Informe de revisión se utiliza para el registro de errores. 2. Clasificar todos lo defectos. Los participantes clasifican los defectos detectados en el producto de trabajo según su impacto en: 3. Menor: Un error u omisión que no causa o altera el buen funcionamiento del producto de trabajo. Defectos de este tipo son considerados con una prioridad menor dentro del desarrollo de software. Mayor : Un error u omisión significativa en el producto de trabajo que se traduce en un mal funcionamiento de. Los defectos “mayores” son considerados con una prioridad mayor dentro el desarrollo de software. No Resuelto: Son errores u omisiones que no son fácilmente clasificables dentro de las categorías de mayor/menor, o cualquier defecto en discusión por un lapso superior los 2 minutos durante la inspección. El presentador se prepara para exponer el producto durante la reunión de inspección. Es importante que el presentador prepare adecuadamente la descripción del producto que realizará durante la inspección, pues la duración de esta reunión estará fuertemente influenciada por ella. Debe centrarse en los aspectos más relevantes del producto de trabajo, para lo cual es necesario que, en conjunto con el moderador, coordine las prioridades de la reunión de inspección. 4. Entrega del informe de revisión. 10 Proceso de Revisión Versión 1.0 [[Autor]] [[fecha]] Los participantes entregan el informe de revisión al moderador dentro del plazo acordado. El moderador comprueba que los informes estén completos y que se adhieran al estándar. Criterios de salida 1. Los defectos han sido correctamente documentados El moderador verifica que los defectos detectados hayan sido correctamente registrados en el informe de revisión. También, es su responsabilidad decidir si se continúa o no con el proceso de revisión en el caso de encontrar errores significativos dentro de estos templates. 2. Todos los participantes están preparados para proceder en la inspección. En caso de que dos o más participantes informen no estar preparados para la inspección es el moderador quien debe decidir si se da paso a la siguiente etapa. 3. 3.3.4 Cada participante completa satisfactoriamente la checklist de las tareas asignadas a la etapa de preparación. Inspección Objetivo Los objetivos de esta etapa son que los participantes lleguen a un consenso respecto de los defectos que afectan al producto de trabajo, decidan si requiere de una revisión adicional, y que discutan y documenten sobre las lecciones aprendidas durante el proceso. Participantes Moderador, presentador, autor, inspector(es), secretario y, opcionalmente, un observador. Criterios de entrada 1. Todos los participantes pueden participar de la inspección. Si tres o más participantes no pueden asistir a la inspección el moderador puede decidir suspender la inspección. Actividades 1. Se enuncian los roles, el enfoque y las guías para llevar a cabo la inspección. El moderador expone los roles, el enfoque de la revisión y entrega algunas pautas generales. 2. El presentador describe el producto de trabajo. El presentador debe describir el producto a los demás participantes de la inspección en forma lógica y ordenada de manera de facilitar la detección de defectos. 3. Se nombran los defectos globales que afectan la completitud del producto de trabajo. Paralelamente, el moderador consulta a los participantes sobre los defectos globales que afectan al producto. 11 Proceso de Revisión Versión 1.0 [[Autor]] [[fecha]] Observación: El moderador es responsable de dirigir la reunión de manera profesional. Como mínimo debe garantizar que los inspectores discutan sobre un defecto a la vez de manera impersonal y centrándose en los objetivos reales del producto de trabajo. Además, debe enfatizar que el propósito es ayudar al autor y no criticarlo. Por último, debe recalcar que el objetivo es detectar defectos y no darles solución, ésta es tarea del autor. 4. Se nombran los defectos específicos por ser revisados y registrados. El moderador otorga a cada participante la oportunidad de exponer los defectos detectados individualmente. Estos defectos serán debatidos por un lapso no superior a los 2 minutos. Cualquier defecto cuyo análisis supere los 2 minutos será registrado como no resuelto. 5. Los errores de formatos son entregados al autor para acciones correctivas. Cada participante entrega una lista con los errores de forma (léxico, puntuación, gramática, sintaxis, etc.) al autor. Estos errores no son considerados como defectos y por lo tanto no son registrados. 6. Asignación de las los defectos no resueltos. Antes de finalizar la reunión de inspección, el moderador asigna los defectos no resueltos a participantes adecuados. Un par de días después de la presente reunión el moderador y los participantes asignados se reúnen para establecer una solución. 7. Determinación sobre la necesidad de tiempo adicional. Al completarse el período programado para la inspección, el moderador consulta sobre la necesidad de extender la reunión. En caso de que se decida extenderla y que los participantes deban retirarse por otros compromisos, el moderador puede decidir retomar la reunión con posterioridad o dejar los puntos inconclusos a para una revisión adicional. Observación: El tiempo adicional no puede exceder una hora. 8. Emplear la hora adicional para terminar las actividades restantes. Si los participantes concuerdan con extender la reunión, el moderador deberá concentrarse en completar la inspección, clasificar y registrar los defectos detectados, resolver las discrepancias y asignar acciones. También puede utilizarse esta hora para discutir posibles soluciones. 9. Establecer la necesidad de una revisión adicional. Antes de terminar la reunión el moderador consulta a los participantes sobre la necesidad de una revisión adicional. Si no existe consenso respecto del tema, es el moderador el responsable de tomar la decisión. 10. Solicitar retroalimentación a los participantes en relación con la inspección. Al concluir la reunión el moderador consulta a los participantes sobre las lecciones aprendidas y posibles mejoras al proceso. Estas son discutidas y apuntadas en el template de Lecciones Aprendidas. Criterios de salida 1. 2. Los defectos han sido registrados Los defectos no resueltos han sido asignadas. 12 Proceso de Revisión Versión 1.0 3.3.5 [[Autor]] [[fecha]] Rework Objetivo El objetivo de esta etapa es corregir los defectos y resolver aquellos clasificados como no resueltos. Participantes Autor. Criterios de entrada 1. Los criterios de salida de la etapa de inspección han sido completados satisfactoriamente. - Todos los defectos han sido clasificados y registrados en el Informe de Revisión. Todos los errores de forma han sido puestos ha disposición del autor. Todos defectos no resueltos han sido asignados. Actividades 1. Estimar el tiempo requeridos para resolver los defectos no resueltos. Los participantes encargados de los defectos no resueltos deben estimar un lapso de tiempo apropiado para su solución. Observación: Dentro de lo posible este período no debe exceder las 2 semanas. 2. Corregir los defectos identificados en el producto de trabajo. Dentro de un plazo razonable, el autor debe corregir los defectos detectados en el producto. Es recomendable comenzar por los defectos de mayor prioridad, para luego solucionar los menores. 3. Resolver los defectos no resueltos del producto de trabajo Los responsables deben concentrar sus esfuerzos en dar una solución a los defectos no resueltos. La resolución adoptada debe ser informada al moderador para su implementación. 4. Corregir los errores de forma identificados en el producto de trabajo. Los errores de forma deben ser corregidos, dentro de los posible, por el grupo de gestión de configuración, para que así el autor se pueda concentrar en la corrección de los defectos. Criterios de salida 1. Todos las correcciones han sido completadas. Una vez que todos los defectos han sido corregidos el autor pide la aprobación del jefe de proyecto o de un supervisor. Con ella, notifica al moderador sobre la finalización de la etapa de rework. 13 Proceso de Revisión Versión 1.0 3.3.6 [[Autor]] [[fecha]] Seguimiento Objetivo Los objetivos de esta etapa son asegurar que todos los defectos y los errores de forma han sido corregidos. Además, que se haya dado solución a los defectos no resueltos. Participantes Moderador y autor. Criterios de entrada 1. Los criterios de salida de la etapa de rework han sido completados satisfactoriamente. - El autor confirma la completitud de las correcciones. El moderador recibe la confirmación del autor sobre el termino del rework. Actividades 1. El moderador confirma que todos los defectos y errores de forma hayan sido corregidos, y que ha los defectos no resueltos se les haya dado solución. Si el moderador estima que la calidad de las correcciones es satisfactoria se da paso a la siguiente actividad. En caso contrario, devuelve el producto al autor para mayor rework. En esta última situación el moderador puede pedir la opinión al jefe de proyecto, participantes de la revisión y a otros pares. 2. Completar la documentación de la revisión El moderador debe completar la forma de Notificación de la Revisión y Resumen de la Revisión. Además, debe incluir junto al de Informe de Revisión las lecciones aprendidas y las mejoras propuestas. Esta información debe ser entregada a los participantes de la revisión, al jefe de proyectos y al responsable de la actualización del proceso de revisión. Criterios de salida 2. 3. 3.4 Los templates de revisión han sido completados y distribuidos. Todos los defectos no resueltos han sido incorporados al monitoreo del proceso. Participantes <Definición de los roles y responsabilidades de los participantes del proceso de inspección. > En el proceso de revisión existen roles claramente identificados: moderador, autor, presentador, inspector, secretario y, opcionalmente, el de observador. Sin perjuicio de ello, dos o más de estos roles pueden ser asumidos por una única persona durante la inspección. Recomendaciones en este sentido se entregan en la siguiente tabla: 14 Proceso de Revisión Versión 1.0 [[Autor]] [[fecha]] Rol principal Autor Debe ser ----- Puede ser Inspector Moderador Presentador Inspector Inspector Inspector ----- Secretario Inspector Presentador Moderador Autor o Moderador o Presentador o Secretario ----- Observador ----- ----- No debe ser Moderador o Presentador o Secretario Autor o Secretario Autor o Secretario ----Autor o Moderador o Presentador Tabla 1: Compatibilidad de Roles 3.4.1 Moderador El moderador es el facilitador de todo el proceso de inspección, responsable de su dirección y, por lo tanto, su pilar fundamental. Su rol abarca diferentes aspectos, los cuales incluyen capacidad de liderazgo, gestión y comunicación como también conocimientos técnicos acordes al producto de trabajo por examinar. Sus responsabilidades incluyen: 3.4.2 Liderar, gestionar y coordinar el proceso de revisión. Guiarse por las pautas provistas en la checklist de revisión. Trabajar con el jefe de proyectos en la selección de los participantes, informarle sobre los recursos requeridos y asegurar que todos los participantes reciban la capacitación adecuada. Determinar el tamaño del producto de trabajo por inspeccionar. Determinar la necesidad de una reunión de orientación. Organizar el paquete de información. Éste debe contener como mínimo: la Notificación del la Revisión, el Informe de Revisión, información sobre el producto de trabajo, checklist aplicables al producto, checklist relacionadas con el rol de cada participante y cualquier documentación pertinente. Participar de la reunión de orientación. Preparar la inspección. Coordinar con el presentador las prioridades de la inspección. Planificar la inspección adecuadamente. Es decir coordinar su inicio, centrarse en la identificación y clasificación de los defectos dentro del período establecido para la inspección. Además: Coordinar la participación de los miembros de la inspección. Seguir las reglas y procedimientos aplicables al proceso de revisión. Mantener el liderazgo de la reunión. Mantener un dialogo fluido con los participantes y diluir los confrontamientos. Asegurar que la reunión no sea interrumpida. Cumplir el rol de inspector sin otorgarse atribuciones especiales. Abstenerse de clasificar los defectos. Extender la reunión por un lapso adicional, no superior a una hora, si fuese necesario. Revisar las correcciones realizadas por el autor al producto de trabajo. Informar sobre los resultados del proceso de inspección. El moderador debe entregar la Notificación de la Revisión, el Informe de Revisión, el Resumen de la Revisión y el template de Lecciones Aprendidas a los participantes de la revisión, al jefe de proyectos y al responsable de la actualización del proceso de revisión. Autor El autor es el desarrollador del producto de trabajo. Es su responsabilidad: Preparar el producto de trabajo para el proceso de revisión y verificar su completitud. Guiarse por las pautas provistas en la checklist de revisión. 15 Proceso de Revisión Versión 1.0 3.4.3 [[Autor]] [[fecha]] Recomendar participantes para la inspección. Apoyar al moderador en la estimación del tamaño del producto. Entregar una explicación detallada sobre el producto y su documentación durante la reunión de orientación. Corregir los defectos detectados. Cooperar con el moderador en la revisión de las correcciones. Colaborar con acciones correctivas posteriores. Participar, junto al moderador y a los inspectores, en revisiones adicionales. Exponer posibles mejoras al proceso de revisión y las lecciones aprendidas durante este proceso. Inspectores El inspector es un examinador del producto de trabajo, cuyo objetivo es detectar e identificar defectos. Sus responsabilidades incluyen: 3.4.4 Comprender el rol asignado. Participar en la reunión de orientación de ser necesario y/o consultar al moderador. Guiarse por las pautas provistas en la checklist de revisión. Examinar el producto de trabajo de acuerdo a las instrucciones provistas por el moderador. Identificar los errores de forma (léxico, puntuación semántica y gramática) durante la inspección. Completar el informe de revisión según las instrucciones entregadas por el moderador. Participar en la inspección según las instrucciones dadas por el moderador. Exponer posibles mejoras al proceso de revisión y las lecciones aprendidas durante este proceso. Presentador El presentador es el relator del producto durante la inspección, es decir, el debe presentar el producto a los demás miembros de la inspección. Sus responsabilidades incluyen: 3.4.5 Coordinar la reunión de inspección en conjunto con el moderador. Guiarse por las pautas provistas en la checklist de revisión. Preparar con antelación la presentación del producto. Guiar la inspección del producto. El presentador debe centrar la atención de los inspectores en las secciones más relevantes del producto. Asegurar la participación equitativa de los miembros de la inspección. Participar como inspector en igualdad de condiciones que sus pares. Exponer posibles mejoras al proceso de revisión y las lecciones aprendidas durante este proceso. Secretario El secretario es quien registra y clasifica los defectos identificados durante la reunión de inspección. También registra las acciones asignadas y las lecciones aprendidas. Sus obligaciones incluyen: Guiarse por las pautas provistas en la checklist. Registrar la información pertinente a cada defecto utilizando el Informe de Revisión y los templates correspondientes. Leer cada defecto y su clasificación al final de la inspección. Participar como inspector en igualdad de condiciones que sus pares. Anotar las acciones correctivas y los plazos respectivos. 16 Proceso de Revisión Versión 1.0 3.4.6 [[Autor]] [[fecha]] Exponer posibles mejoras al proceso de revisión y las lecciones aprendidas durante este proceso. Observador (opcional) El objetivo del observador es observar y apuntar datos sobre los participantes, sus roles e interacción con el propósito de obtener información que permita el mejoramiento del proceso de revisión. Además, debe: 3.4.7 Coordinar junto al moderador las prioridades de la inspección. Guiarse por las pautas provistas en la checklist de revisión. Anotar observaciones sobre los participantes y sus roles. Apuntar observaciones cobre el proceso y la interacción de los participantes. Entregar una breve reflexión sobre la reunión al finalizar la inspección. Entregar un informe escrito al moderador con todas las observaciones y recomendaciones recopiladas. Jefe de proyectos Por último, se agrega la labor del jefe de proyecto, quien si bien no es miembro del proceso presentado, si tiene responsabilidades asociadas a él. Éstas incluyen: 3.5 Planificar las revisiones, asignando tiempos adecuados. Esto implica planificar la preparación y rework con la misma seriedad y compromiso que la inspección. Garantizar que los desarrolladores tengan conocimientos sobre el proceso de revisión. Revisar junto al moderador y al autor los defectos no resueltos para estimar el tiempo de rework. Monitorear las revisiones en pro de garantizar que se cuenta con tiempos adecuados para llevar a cabo la preparación, la inspección y el rework. Revisar el Resumen de la Revisión para analizar posibles efectos en cadena. Soporte <Descripción de las tareas de soporte provistas por la unidad responsable. > 3.5.1 Capacitación <Breve descripción de los instructivos existentes sobre el proceso de revisión y los cursos de capacitación impartidos por la unidad. En ambos casos, debe entregarse un resumen que incluya el propósito, audiencia y tópicos tratados en el instructivo o curso de capacitación. Además, debe especificarse la forma en que se puede acceder a ellos. > <Por último, es recomendable entregar una lista de bibliografía recomendada. > 3.5.2 Herramientas <Breve reseña sobre las herramientas manuales y automáticas que soportan el proceso de revisión. Las herramientas manuales incluyen guías adicionales que faciliten el proceso de revisión; y las automáticas, herramientas computacionales que apoyen el proceso. Ejemplos: Herramientas manuales: Guía para dirigir el proceso de revisión (Ver Anexos). Herramientas automatizadas: Correo electrónico - medio de comunicación, Planillas de calculo - análisis de resultados, Procesadores de texto – ingreso, edición y recolección de defectos en los productos de trabajo. > 17 Proceso de Revisión Versión 1.0 4 [[Autor]] [[fecha]] Referencias <Lista bibliográfica utilizada para la definición del proceso de revisión. Es recomendable ser lo más específico posible para evitar confusiones posteriores. > 18 Proceso de Revisión Versión 1.0 5 5.1 Anexos Anexo A: Bases del proceso de revisión 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 5.2 La revisión se lleva a cabo sobre productos intermedios completados. El objetivo de la revisión es detectar y remover defectos. Los miembros de las revisiones son pares del autor. Estos participantes deben representar a los usuarios que utilizarán o serán afectados por el producto de trabajo. La revisión no debe ser usada como un mecanismo de evaluación de los desarrolladores. El jefe de proyectos no debe participar activamente del proceso de revisión por pares. Los participantes deben ser capacitados sobre el proceso de revisión. Los participantes son responsables de prepararse para los roles asignados. La revisión es llevada a cabo de acuerdo a un proceso documentado. Los participantes deben utilizar las checklist de revisión como una guía para ejecutar sus responsabilidades. Los participantes deben apoyarse en las checklist de áreas de productos de trabajo para detectar defectos. El tamaño del producto de trabajo debe ser adecuado para una inspección de 2 horas. Las correcciones son responsabilidad del autor y la verificación de ellas, del moderador. Datos sobre el número de defectos, tipos de defectos y esfuerzo invertido en la revisión deben ser almacenados para posteriormente poder evaluar y mejorar el proceso de revisión. Anexo B: Guía para dirigir el proceso de revisión Guía Utilizar las checklist apropiadas para cada producto de trabajo. Utilizar estándares definidos. Privilegiar la detección e identificación de defectos por sobre la obtención de soluciones. Informar y documentar todos los defectos detectados. Limitarse a los 2 minutos de discusión por defecto. Abandonar la asignación de múltiples roles a un participante para impedir incompatibilidades. Minimizar el cambio de roles de los participantes. 5.3 [[Autor]] [[fecha]] Propósito La revisión debe ser llevada a cabo para cada producto de trabajo de acuerdo a una checklist predefinida. Los participantes deben verificar la complacencia de la documentación del producto de trabajo con los estándares definidos. El objetivo de las revisiones es la detección e identificación de defectos. Por ello deben privilegearse estas tareas por sobre la obtención de una solución, responsabilidad del autor. Esta guía apunta a impedir que cualquier participante se abstenga de informar sobre los defectos detectados individualmente. Es recomendable que la discusión de cualquier defecto no se prolongue por más de 2 minutos. En tal caso debe ser clasificado como no resuelto. La asignación de múltiples roles a un mismo participante puede conducir a incompatibilidades. De no ser evitable debe regirse por las indicaciones entregadas en la Tabla de Compatibilidad de Roles. Es importante que los roles de los participantes se encuentren fijos con anterioridad a la etapa de preparación para que así cada uno pueda prepararse adecuadamente para cumplir con sus obligaciones. Anexo C: Guía de participantes En términos globales los candidatos a formar parte de una revisión están conformados por: Pares del autor del producto de trabajo inspeccionado. Representantes de etapas previas del proceso de desarrollo de software. 19 Proceso de Revisión Versión 1.0 Representantes de etapas posteriores del producto de trabajo. Encargado de SCM. Clientes/Usuarios. Representantes de la unidad de SQA. Tipo de producto De trabajo Planes de proyecto Participantes principales Moderador Jefe de Proyectos (Autor) SQA Cliente Usuario Participantes Opcionales SCM Especificación de Requerimientos Moderador Analista (Autor) Pares del Analista Diseñador Responsable de pruebas SQA Personal de hardware Programadores Diseño Moderador Diseñador (Autor) Pares del Diseñador Responsable de pruebas SQA Usuario Programadores Personal de mantención Código Moderador Programador (Autor) Pares del programador Autor del Diseño Responsable de pruebas Moderador Responsable de pruebas (Autor) Pares del Responsable de pruebas Autor del Diseño Moderador Autor Diseñador(es) Usuario(s) SQA Personal de Mantención Especificación de Pruebas Documentación Usuaria 5.4 [[Autor]] [[fecha]] SQA SQA Anexo D: Proceso de revisión durante el ciclo de vida del software El proceso de revisión es aplicable a todo el ciclo de vida del software. Por lo tanto, es importante conocer sus objetivos en cada fase del desarrollo. 5.4.1 Planificación Durante la planificación se crea una especificación de requerimientos a nivel de borrador que permita desarrollar el plan de proyectos. Por lo tanto, el primer candidato a revisión es esta especificación preliminar. El objetivo de la inspección será: Asegurar la correcta identificación de los requerimientos de software y hardware. Verificar que la funcionalidad del software ha sido identificada Verificar que el software ha sido particionado en ítems de configuración y que la funcionalidad de estos ha sido adecuadamente especificada 20 Proceso de Revisión Versión 1.0 [[Autor]] [[fecha]] Asegurar que se han definido todas las interfaces entre los ítems de configuración y el software. Garantizar que se han especificado atributos cuantificables para los requerimientos Asegurar que los requerimientos son verificables. Otros candidatos a revisión son el plan de proyectos y los planes de SQA y SCM. 5.4.2 Especificación de requerimientos Durante esta fase la especificación de requerimientos es refinada y documentada en detalle, se comienza la planificación del testing y se depura el plan de proyectos. La revisión típica de esta etapa es la de la especificación de requerimientos. Sus propósitos son: Revisar la completitud y exactitud de la especificación de requerimientos en relación con las funciones del software, entradas/salidas, estados/modos, tiempos de respuestas e interfaces. Verificar la trazabilidad de los requerimientos. Corroborar que los requerimientos definidos sean mensurables, consistentes y demostrables. Garantizar que los requerimientos entregan una base sólida de información para la etapa de diseño. También serán revisados otros documentos generados en esta etapa, como por ejemplo el borrador del plan de pruebas. 5.4.3 Diseño En esta fase se obtienen esencialmente dos productos de trabajos: Diseño preliminar y Diseño detallado. La revisión del diseño preliminar se centrara en validar su trazabilidad con los requerimientos, su correctitud, claridad y consistencia. Además, será importante validar la facilidad de prueba y de codificación de los módulos. Para la revisión del diseño detallado se utilizarán los mismos criterios anteriores. Sin embargo, también será importante comprobar el cumplimiento de los estándares de calidad predefinidos como simplicidad de las estructuras, modularidad, etc. Otra revisión importante está asociada con los planes de prueba. En este caso, importa detectar defectos y ambigüedades en las definiciones del plan; verificar la completitud del plan de prueba; asegurar la correcta trazabilidad entre los requerimientos y las funciones del software; comprobar que las interfaces sean verificadas; identificar y eliminar técnicas de prueba obsoletas; y asegurar que cada requerimiento sea testeado. 5.4.4 Implementación En el transcurso de la implementación las actividades principales son la codificación, las pruebas de módulos y la generación de la documentación final. El código y su documentación son los primeros candidatos a ser inspeccionados. Esta revisión debe ser realizada con posterioridad a las pruebas de unidad. Su objetivo es: Verificar la adherencia del código a los requerimientos. Corroborar que el código haya sido implementado de acuerdo al diseño detallado y que satisfaga los estándares definidos. Asegurar la exactitud y completitud del código en relación con los requerimientos. 21 Proceso de Revisión Versión 1.0 [[Autor]] [[fecha]] Además, deben revisarse los procedimientos y casos de prueba. En torno a los procedimientos interesa: verificar que los procedimientos de prueba definidos se ajustan al plan; comprobar que cada procedimiento tiene una descripción completa y precisa de su propósito, las instrucciones para su ejecución, y la especificación de los resultados esperados; asegurar que cada procedimiento indica el requerimiento que debe testear; comprobar que las configuraciones de software y hardware requeridas por los procedimientos hayan sido definidas; y garantizar que los procedimientos sean ejecutados correctamente. En relación con los casos de prueba, interesa verificar su completitud, precisión, adherencia al plan de prueba, y la trazabilidad de los requerimientos. 5.4.5 Integración y pruebas Durante esta etapa las unidades del software son integradas en un sistema; las disconformidades son detectadas, documentadas y corregidas; y se comprueba la satisfacción de los requerimientos. Los planes de integración y prueba son ejecutados, la documentación del software es actualizada y completada y los productos son finalizados para su entrega formal. Aquí debe corroborarse la ejecución apropiada de los procedimientos y casos de pruebas, y la disponibilidad de los datos de prueba. Además, debe revisarse la documentación final (documentación usuaria) para comprobar su completitud, exactitud y trazabilidad. 5.4.6 Aceptación y entrega Como mínimo, en la etapa de aceptación y entrega, se lleva a cabo una demostración de la satisfacción de los requerimientos y una prueba del correcto funcionamiento del sistema. Durante esta fase por lo general las correcciones son mínimas y se encuentran asociadas a circunstancias particulares. 5.4.7 Mantención Después de la entrega del producto pueden producirse modificaciones que dan a lugar a nuevos desarrollos que van desde simples acciones correctivas hasta nuevos ciclos de vida. Las revisiones deben ser programadas de acuerdo a estos nuevos ciclos de vida. Es más, en esta etapa las revisiones se constituyen como una técnica útil para la gestión de la configuración del software. 5.5 Anexo E: Productos de trabajo por fase de desarrollo Fase de desarrollo Planificación Especificación de requerimientos Diseño Productos de trabajo Especificación de requerimientos preliminar Planes de proyectos: Plan técnico Plan de recursos Plan de SQA Plan de SCM Especificación de requerimientos Plan de pruebas preliminar Diseño preliminar Diseño detallado Plan de pruebas 22 Proceso de Revisión Versión 1.0 Fase de desarrollo Implementación Integración y pruebas [[Autor]] [[fecha]] Productos de trabajo Código y su documentación Primera versión documentación usuaria Descripción de los casos de pruebas Descripción de los procedimientos de pruebas Informe pruebas de unidad Software Versiones finales de la documentación usuaria Plan de aceptación Informe de pruebas Aceptación y entrega Mantención 5.6 Anexo F: Inicio de un programa de revisiones 1. Seleccionar la clase de productos de trabajo que serán inspeccionados. El primer aspecto crítico de un programa de revisiones es la selección de los productos de trabajo que serán inspeccionados. Se sugiere comenzar con productos en los cuales todos reconozcan la necesidad e importancia de la detección de defectos y donde los resultados se aprecien al corto plazo. Por lo anterior, es recomendable partir por la especificación de requerimientos y el diseño. Este tipo de defectos son más costosos que los de código, pues de no ser detectados antes de la etapa de pruebas derivan en una gran cantidad de rework en diferentes productos de trabajo. Son este tipo de resultados los que fomentan un programa de revisiones y rompen la resistencia que existe en contra de la incorporación de esta nueva actividad. 2. Adquisición de recursos. Una vez que se ha seleccionado el material por revisar, es necesario establecer y conseguir los recursos que sustenten el programa. Básicamente, los recursos estarán asociados a tres tipos de costos: 3. “Inversión”: incluye capacitación inicial de los participantes del proceso de revisión, creación de los templates y checklist, y un mecanismo de almacenamiento de datos (colección de métricas) sobre el proceso de revisión. Costos fijos: comprende el tiempo del moderador invertido en coordinar y dirigir las inspecciones, las copias que deben hacerse de las plantillas para el registro y seguimiento del estado de la revisión, y los recursos asociados al almacenamiento de datos sobre el proceso. Costos de operación: consiste en el tiempo que los participantes destinan a las etapas de revisión. Asignación de roles y responsabilidades. En un principio es recomendable asignar a un único moderador la responsabilidad del proceso de revisión, es decir, del monitoreo y la dirección del programa, del análisis de efectividad del proceso y de la coordinación de la evolución del proceso, templates y checklist. Es más, este moderador debe ser el moderador de todas las revisiones del proyecto inicial (proyecto piloto). Una vez que se cuente con personal calificado en el proceso de revisión, se podrá seleccionar el moderador de cada revisión dentro de este conjunto de profesionales y la responsabilidad del proceso recaerá en una Unidad/área determinada <Por ejemplo: Unidad de SQA >. 23 Proceso de Revisión Versión 1.0 4. [[Autor]] [[fecha]] Organizar un repositorio para el proceso de revisión. De ser posible, es importante formar un repositorio que contenga información de apoyo al proceso de revisión para así simplificar las actividades del moderador. Esta información incluye listas de los productos de trabajo que deben ser inspeccionados, el material utilizado durante las revisiones (templates y checklist) y la documentación de apoyo al proceso (guías, procedimientos, etc.). 5. Desarrollo de templates y checklist de apoyo al proceso de revisión. Es importante crear templates que permitan monitorear el proceso de revisión y que faciliten el registro de sus resultados. Además, es útil contar con checklist que apoyen la detección de defectos de las diferentes áreas de productos de trabajo. 6. Identificación de los participantes de las revisiones para un proyecto inicial. Una vez que los recursos principales (moderador, repositorios, templates y checklist) están disponibles, se deben identificar las personas que participaran de las revisiones de un proyecto en particular. Terminado esto, es necesario capacitarlos en el proceso de inspección. No se debe olvidar que la capacidad y la experiencia de los participantes es la clave del proceso de revisión. 7. Planificación de la incorporación de las revisiones. Cuando se tiene claridad de los recursos requeridos, debe planificarse la incorporación de las revisiones al proceso de desarrollo de software. Es decir, las actividades asociadas al proceso de revisión deben ser calendarizadas e incorporadas al plan de proyectos, preocupándose sobre todo de asignar tiempos adecuados a cada etapa de la revisión (planificación, orientación, preparación, inspección, rework y seguimiento) y considerando las tareas asociadas como parte de las responsabilidades de sus participantes. 8. Puesta en marcha del programa de revisiones. Una vez que se han completado los puntos anteriores, es posible dar partida al programa de revisiones. Por lo general, este comprende en primera instancia la incorporación de las revisiones en un proyecto piloto, evaluación de los resultados, mejoramiento del proceso definido e implantación en los otros proyectos de la institución. 24