Parte dos: Las Prácticas Clave del CMM para Software Capítulo 7: Las Áreas Claves del Proceso para el Nivel 2: Repetible. Los procesos de administración básicos del proyecto se establecen para seguir los costos, el cronograma y la funcionalidad. Existe la disciplina necesaria de proceso como para poder repetir éxitos anteriores en proyectos con aplicaciones similares. Las áreas claves del proceso para el Nivel 2 son: 7.1 7.2 7.3 7.4 7.5 7.6 Administración de los Requerimientos Planeamiento del Proyecto de Software Seguimiento y Vista General del Proyecto de Software Administración de un Subcontrato de Software Garantía de la Calidad del Software Administración de la Configuración del Software 7.1 Administración de los Requerimientos Un área clave del proceso para el Nivel 2: Repetible. El propósito de la Administración de los Requerimientos es establecer un entendimiento común entre el cliente y el proyecto de software acerca de los requerimientos que considerará el proyecto de software. La Administración de los requerimientos implica el establecimiento y mantenimiento de un acuerdo con el cliente sobre los requerimientos para el proyecto de software. Este acuerdo se conoce como los “requerimientos del sistema asignados al software”. El “cliente” puede interpretarse como el grupo de ingeniería de sistemas, el grupo de mercadeo, otra organización interna, o un cliente externo. El acuerdo cubre tanto los requerimientos técnicos como los que no son técnicos (por ejemplo, fechas de entrega). El acuerdo forma la base para estimar, planear, realizar, y seguir las actividades del proyecto de software durante el ciclo de vida del software. La asignación de los requerimientos del sistema al software, al hardware, y a otros componentes del sistema (por ejemplo, humanos) puede ser realizada por un grupo externo al grupo de ingeniería del software (por ejemplo, el grupo de ingeniería del sistema), y el grupo de ingeniería del software puede no tener un control directo sobre esta asignación. Dentro de las limitaciones del proyecto, el grupo de ingeniería del software toma los pasos apropiados para asegurar que los requerimientos del sistema asignados al software, del que es responsable, se documenten y controlen. Para lograr este control, el grupo de ingeniería del software revisa los requerimientos iniciales y los revisados del sistema asignados al software para resolver temas antes de ser incorporados al proyecto de software. Cada vez que los requerimientos del sistema asignados al software cambien, los planes del software, los productos de trabajo, y las actividades afectados se ajustan para que sigan siendo consistentes con los requerimientos actualizados. Objetivos Objetivo 1 Se controlan los requerimientos del sistema asignados al software para establecer una línea base para la ingeniería del software y para el uso de la administración. Objetivo 2 Los planes, productos y actividades de software se mantienen consistentes con los requerimientos del sistema asignados al software. Compromiso para el Desempeño Compromiso 1 El proyecto sigue una política organizacional escrita para administrar los requerimientos del sistema asignados al software. En estas prácticas llamamos “requerimientos asignados” a los requerimientos del sistema asignados al software. Los requerimientos asignados son el subconjunto de los requerimientos del sistema que deben implementarse en los componentes del software del sistema. Los requerimientos asignados son una entrada primaria para el plan de desarrollo del software. El análisis de los requerimientos del software elabora y redefine los requerimientos asignados y resulta en requerimientos de software que están documentados. Esta política típicamente especifica que: 1. Los requerimientos asignados se documenten. 2. Los requerimientos asignados son revisados por: Los administradores del software, y Otros grupos afectados. Ejemplos de grupos afectados incluyen: Prueba del sistema, Ingeniería del software (incluyendo todos los subgrupos, como ser diseño del software), Ingeniería del sistema, Garantía de la calidad del software, Administración de la configuración del software, y Soporte de la documentación. 3. Los planes, productos de trabajo, y actividades del software se cambian para que sean consistentes con los cambios a los requerimientos asignados. Capacidad para Desempeñarse Capacidad 1 Para cada proyecto, se establece la responsabilidad para analizar los requerimientos del sistema y asignarlos al hardware, al software y a otros componentes del sistema. El análisis y la asignación de los requerimientos del sistema no es responsabilidad del grupo de ingeniería del software pero es un requisito previo para su trabajo. Esta responsabilidad cubre: 1. La administración y documentación de los requerimientos del sistema y su asignación durante todo el ciclo de vida del proyecto. 2. Hacer efectivos los cambios a los requerimientos del sistema y su asignación. Capacidad 2 Se documentan los requerimientos asignados. Los requerimientos asignados incluyen: 1. Los requerimientos no técnicos (o sea, los arreglos, condiciones, y/o términos contractuales) que afectan y determinan las actividades del proyecto de software. Ejemplos de acuerdos, condiciones y términos contractuales incluyen: Productos a entregar, Fechas de entrega, y Hechos importantes. 2. Los requerimientos técnicos para el software. Ejemplos de requerimientos técnicos incluyen: Funciones de usuario final, operador, soporte, o integración; Requerimientos de performance; Limitaciones de diseño; Lenguaje de programación; y Requerimientos de interfaz. 3. Los criterios de aceptación que se usarán para validar que los productos del software satisfagan los requerimientos asignados. Capacidad 3 Se proporcionan la financiación y los recursos adecuados para administrar los requerimientos asignados. 1. Se asignan los individuos que tienen experiencia y son expertos en el dominio de la aplicación y en la ingeniería del software para administrar los requerimientos asignados. 2. Se ponen a disposición para su uso las herramientas para soportar las actividades para administrar los requerimientos. Ejemplos de herramientas de soporte incluyen: Programas de hoja extendida (spreadsheet), Herramientas para la administración de la configuración, Herramientas para el seguimiento, y Herramientas para la administración del texto. Capacidad 4 Los integrantes del grupo de ingeniería de software y otros grupos relacionados con el software se entrenan para realizar sus actividades. Ejemplos de entrenamiento incluyen: Los métodos, estándares y procedimientos usados por el proyecto, y El dominio de la aplicación. Actividades Realizadas Actividad 1 El grupo de ingeniería del software revisa los requerimientos asignados antes de que se incorporen al proyecto de software. 1. Se identifican los requerimientos incompletos y los asignados erróneamente. 2. Se revisan los requerimientos asignados para determinar si: Son factibles y apropiados para implementar en el software, Están enunciados de una manera clara y adecuada, Son consistentes entre ellos, y Se pueden probar. 3. Los requerimientos asignados que se identifican como que pueden tener futuros problemas se revisan con el grupo responsable de analizar y asignar los requerimientos del sistema, y se hacen los cambios necesarios. 4. Se negocian los compromisos que resultan a partir de los requerimientos asignados con los grupos afectados. Ejemplos de grupos afectados incluyen: Ingeniería del software (incluyendo todos los subgrupos, como ser diseño del software), Estimación del software, Ingeniería de sistemas, Prueba de sistemas, Garantía de la calidad del software, Administración de la configuración del software. Administración del contrato, y Soporte de documentación. Referirse a la Actividad 6 del área clave de proceso Planeamiento del Proyecto de Software para ver prácticas que cubren la negociación de compromisos. Actividad 2 El grupo de ingeniería del software usa los requerimientos asignados como la base para los planes, productos de trabajo y actividades del software. Los requerimientos asignados: 1. Se administran y controlan. “Se administran y controlan” implica que la versión del producto de trabajo en uso en un momento dado (pasado o presente) es conocida (o sea, control de versión), y los cambios se incorporan de una manera controlada (o sea, control de cambios). Si se desea un mayor grado de formalidad que lo que implica “se administran y controlan”, el producto de trabajo puede ubicarse bajo la disciplina completa de la administración de la configuración, como se describe en el área clave de proceso Administración de la Configuración del Software. 2. Son la base para el plan de desarrollo del software. 3. Son la base para desarrollar los requerimientos del software. Actividad 3 Se revisan los cambios hechos a los requerimientos asignados y se incorporan al proyecto de software. 1. Se evalúa el impacto de los compromisos existentes, y se negocian los cambios según sea apropiado. Los cambios de los compromisos hechos a individuos y grupos externos a la organización se revisan con la administración senior. Referirse a la Actividad 4 del área clave de proceso Planeamiento del Proyecto de Software y a la Actividad 3 del área clave de proceso Seguimiento y Vista General del Proyecto de Software para prácticas que cubran los compromisos externos a la organización. Los cambios a los compromisos dentro de la organización se negocian con los grupos afectados. Referirse a las Actividades 5, 6, 7 y 8 del área clave de proceso Seguimiento y Vista General del Proyecto de Software para prácticas que cubran la negociación de cambios a los compromisos. 2. Los cambios que se deben hacer a los planes, productos de trabajo y actividades como resultado de los cambios a los requerimientos asignados se: Identifican, Evalúan, Evalúan para riesgos, Documentan, Planean, Comunican a los grupos e individuos afectados, y Siguen hasta que se completen. Mediciones y Análisis Medición 1 Se hacen y se usan mediciones para determinar el estado de las actividades para administrar los requerimientos asignados. Ejemplos de mediciones incluyen: El estado de cada uno de los requerimientos asignados Actividad de cambios para los requerimientos asignados, y Cantidad acumulada de cambios a los requerimientos asignados, incluyendo la cantidad total de cambios propuestos, abiertos, aprobados e incorporados a la línea base del sistema. Verificación de la Implementación Verificación 1 Las actividades para administrar los requerimientos asignados se revisan con la administración senior de manera periódica. El propósito primario de las revisiones periódicas por parte de la administración senior es proporcionar consciencia y conocimiento de las actividades del proceso de software a un nivel de abstracción apropiado y con prontitud. El tiempo entre revisiones debe satisfacer las necesidades de la organización y puede ser largo, siempre y cuando haya mecanismos adecuados para informar excepciones. Referirse al área clave de proceso Seguimiento y Vista General del Proyecto de Software para prácticas que cubran el contenido típico de las revisiones generales de la administración senior. Verificación 2 Las actividades para administrar los requerimientos asignados se revisan con el administrador del proyecto tanto de manera periódica como dependiendo de los eventos. Referirse a la Verificación 2 del área clave de proceso Seguimiento y Vista General del Proyecto de Software para prácticas que cubran el contenido típico de las revisiones generales de la administración del proyecto. Verificación 3 El grupo de garantía de la calidad del software revisa y/o audita las actividades y los productos de trabajo para administrar los requerimientos asignados e informa los resultados. Referirse al área clave de proceso Garantía de la Calidad del Software. Como mínimo, estas revisiones y/o auditorías verifican que: 1. Se revisen los requerimientos asignados y se resuelvan los problemas antes de que el grupo de ingeniería del software se dedique a ellos. 2. Se revisen los planes, productos de trabajo y actividades del software de una manera adecuada cuando los requerimientos asignados cambian. 3. Se negocien los cambios en los compromisos que resulten de los cambios a los requerimientos asignados con los grupos afectados. 7.2 Planeamiento del Proyecto de Software Un área clave del proceso para el Nivel 2: Repetible. El propósito del Planeamiento del Proyecto de Software es establecer planes razonables para llevar a cabo la ingeniería del software y para administrar el proyecto de software. El Planeamiento del Proyecto de Software implica el desarrollo de estimaciones para el trabajo a realizar, estableciendo los compromisos necesarios, y definiendo el plan para realizar el trabajo. El planeamiento del software comienza con un enunciado del trabajo a realizar y otras limitaciones y objetivos que definen y limitan el proyecto de software (los establecidos por las prácticas del área clave de proceso Administración de los Requerimientos). El proceso de planeamiento del software incluye pasos para estimar el tamaño de los productos del trabajo de software y de los recursos necesarios, para producir un cronograma, para identificar y evaluar los riesgos del software, y para negociar compromisos. Puede ser necesario hacer iteraciones con estos pasos para establecer el plan para el proyecto de software (o sea, el plan de desarrollo del software). Este plan proporciona las bases para realizar y administrar las actividades del proyecto de software y estudia los compromisos con el cliente del proyecto de software de acuerdo a los recursos, limitaciones y capacidades del proyecto de software. Objetivos Objetivo 1 Las estimaciones del software se documentan para su uso en el planeamiento y seguimiento del proyecto de software. Objetivo 2 Se planean y documentan las actividades y compromisos del proyecto de software. Objetivo 3 Los individuos y los grupos afectados acuerdan los compromisos relacionados con el proyecto de software. Compromiso para el Desempeño Compromiso 1 Se designa un administrador del proyecto de software como responsable de negociar los compromisos y de desarrollar el plan de desarrollo del proyecto de software. Compromiso 2 El proyecto sigue una política organizacional escrita para planear el proyecto de software. Esta política típicamente especifica que: 1. Los requerimientos del sistema asignados al software se usan como la base para planear el proyecto de software. Referirse a la Actividad 2 del área clave de proceso Administración de los Requerimientos. 2. Los compromisos del proyecto de software se negocian entre: El administrador del proyecto, El administrador del proyecto de software, y Los otros administradores de software. 3. La posibilidad de que otros grupos de ingeniería se involucren en las actividades de software se negocia con estos grupos y se documenta. Ejemplos de otros grupos de ingeniería incluyen: Ingeniería de sistemas, Ingeniería de hardware, y Prueba de sistemas. 4. Los grupos afectados revisan el proyecto de software: Estimaciones del tamaño del software, Estimaciones del costo y el esfuerzo, Plazos, y Otros compromisos. Ejemplos de grupos afectados incluyen: Ingeniería del software (incluyendo todos los subgrupos, como ser diseño de software), Estimación del software, Ingeniería de sistemas, Prueba de sistemas, Garantía de la calidad del software, Administración de la configuración del software, Administración del contrato, y Soporte de la documentación. 5. La administración senior revisa todos los compromisos del proyecto de software hechos hacia individuos y grupos externos a la organización. 6. Se administra y controla el plan de desarrollo del proyecto de software. El término “plan de desarrollo del software” se usa en todas estas prácticas para referirnos al plan general para administrar el proyecto de software. El uso de la terminología “desarrollo” no implica que haya que excluir los proyectos de mantenimiento y soporte del software, y debe interpretarse adecuadamente en el contexto del proyecto individual. “Se administra y controla” implica que la versión del producto de trabajo en uso en un momento dado (pasado o presente) es conocida (o sea, control de versión), y que los cambios se incorporan de una manera controlada (o sea, control de cambios). Si se desea un mayor grado de control que lo que significa “administrado y controlado”, el producto de trabajo puede manejarse con la disciplina de la administración de la configuración, según se describe en el área clave de proceso Administración de la Configuración del Software. Capacidad para Desempeñarse Capacidad 1 Existe una enunciación aprobada y documentada de trabajo para el proyecto de software. 1. la enunciación del trabajo cubre: el alcance del trabajo, los objetivos técnicos, la identificación de los clientes y los usuarios finales, Los usuarios a los que nos referimos en estas prácticas son los clientes designados usuarios finales o los representantes de los usuarios finales. Los estándares impuestos, Las responsabilidades asignadas, Los objetivos y las limitaciones en cuanto a costos y plazos, Las dependencias entre el proyecto de software y otras organizaciones, Ejemplos de organizaciones incluyen: El cliente, Los subcontratistas, y Los socios de “joint venture” (empresas conjuntas). Los objetivos y las limitaciones de recursos, y Otros objetivos y limitaciones para el mantenimiento. desarrollo y/o 2. La enunciación del trabajo es revisada por: El administrador del proyecto, El administrador del software del proyecto Los otros administradores de software, y Otros grupos afectados. 3. La enunciación del trabajo se administra y controla. Capacidad 2 Se asignan las responsabilidades para desarrollar el plan de desarrollo del software 1. El administrador del proyecto de software, directamente o por delegación, coordina el planeamiento del software del proyecto. 2. Se dividen las responsabilidades para los productos de trabajo y se asignan a los administradores del software de manera que se puedan rastrear y justificar. Ejemplos de productos de trabajo de software incluyen: Productos de trabajo para entregar al cliente externo o usuarios finales, según sea apropiado; Productos de trabajo para que usen otros grupos de ingeniería; y Productos de trabajo importantes para uso interno del grupo de ingeniería del software. Capacidad 3 Se proporcionan fondos y recursos adecuados para planear el proyecto de software. 1. Cuando es posible, los individuos con experiencia, que son expertos en el dominio de aplicación del proyecto de software que se está planeando, están disponibles para desarrollar el plan de desarrollo del software. 2. Hay herramientas para soportar las actividades de planeamiento del proyecto de software. Ejemplos de herramientas de soporte incluyen: Programas de hoja extendida (spreadsheet), Modelos de estimación, y Planeamiento del proyecto y cronogramas. Capacidad 4 Los administradores del software, los ingenieros de software y otros individuos involucrados con el planeamiento del proyecto de software se entrenan en los procedimientos de planeamiento y estimación del software aplicables a sus áreas de responsabilidad. Actividades Realizadas Actividad 1 El grupo de ingeniería de software participa del equipo de proposiciones del proyecto. 1. El grupo de ingeniería del software está involucrado en: Preparación y entrega de la propuesta, Discusión y entrega de clarificaciones, y Negociaciones de cambios a compromisos que afecten el proceso de software. 2. El grupo de ingenieros del software revisa los compromisos propuestos del proyecto. Ejemplos de compromisos del proyecto incluyen: Los objetivos técnicos del proyecto, La solución técnica de software y del sistema, El presupuesto, los plazos y los recursos del software, y Los procedimientos y estándares del software. Actividad 2 El planeamiento del proyecto de software se inicia en las etapas tempranas y de manera paralela al planeamiento del proyecto general. Actividad 3 El grupo de ingeniería del software participa con otros grupos afectados en el planeamiento del proyecto general durante todo el ciclo de vida del proyecto. 1. El grupo de ingeniería del software revisa los planes a nivel del proyecto. Actividad 4 Los administradores senior revisan los compromisos del proyecto de software hechos con individuos y grupos externos a la organización de acuerdo a un procedimiento documentado. Actividad 5 Se identifica o define un ciclo de vida del software con etapas definidas de antemano y de tamaño manejable. Ejemplos de ciclos de vida del software incluyen: Cascada, Cascada con superposiciones, Espiral, Construcción en serie, y Cascada con superposiciones / prototipo único. Actividad 6 El plan de desarrollo del proyecto de software se desarrolla de acuerdo a un procedimiento documentado. Este procedimiento típicamente especifica que: 1. El plan de desarrollo del software se basa y está de acuerdo con: Los estándares del cliente, según sea apropiado, Los estándares del proyecto, La enunciación aprobada del trabajo, y Los requerimientos asignados. 2. Los planes para grupos relacionados con el software y otros grupos de ingeniería involucrados en las actividades del grupo de ingeniería del software se negocian con esos grupos, los esfuerzos de soporte se presupuestan, y se documentan los acuerdos. Ejemplos de grupos relacionados con el software incluyen: Garantía de la calidad del software, Administración de la configuración del software, Soporte de documentación. Ejemplos de otros grupos de ingeniería incluyen: Ingeniería de sistemas, Ingeniería del hardware, y Prueba del sistema. 3. Se negocian los planes para los grupos de ingeniería de software involucrados en las actividades de otros grupos de software y otros grupos de ingeniería relacionados con estos grupos, se presupuestan los esfuerzos de soporte, y se documentan los acuerdos. 4. El plan de desarrollo del software es revisado por: El administrador del proyecto, El administrador de software del proyecto, Los otros administradores de software, y Otros grupos afectados. 5. El plan de desarrollo del software se administra y controla. Actividad 7 Se documenta el plan para el proyecto de software. En las prácticas claves, este plan o conjunto de planes se conoce como el plan de desarrollo del software. Referirse a la Actividad 1 del área clave de proceso Seguimiento y Vista General del Proyecto de Software para prácticas relacionadas con el uso del proyecto del plan de desarrollo del software. El plan de desarrollo del software cubre: 1. Los objetivos, el alcance y el propósito del proyecto de software. 2. La selección del ciclo de vida del software 3. La identificación de los procedimientos, métodos y estándares seleccionados para desarrollar y/o mantener el software. Ejemplos de estándares y procedimientos de software incluyen: Planeamiento del desarrollo del software, Administración de la configuración del software, Garantía de la calidad del software, Diseño del software, Rastreo y resolución de problemas, y Mediciones del software. 4. La identificación de los productos de trabajo de software a desarrollar. 5. Las estimaciones del tamaño de los productos de trabajo del software y cualquier cambio a los productos de trabajo del software. 6. Las estimaciones de los costos y esfuerzos del proyecto de software. 7. El uso estimado de recursos críticos de computadora. 8. Los plazos del proyecto de software, incluyendo la identificación de los puntos más importantes y revisiones. 9. La identificación y evaluación de los riesgos del proyecto de software. 10. Los planes para las facilidades de la ingeniería del software del proyecto y las herramientas de soporte. Actividad 8 Se identifican los productos de trabajo del software que se necesitan para establecer y mantener el control del proyecto de software. Referirse a la Actividad 4 del área clave de proceso Administración de la Configuración del Software. Actividad 9 Se derivan las estimaciones para el tamaño de los productos de trabajo del software (o cambios al tamaño de los productos de trabajo del software) de acuerdo a un procedimiento documentado. Este procedimiento típicamente especifica que: 1. Las estimaciones de tamaño se hacen para todas las actividades y productos de trabajo del software más importantes. Ejemplos de mediciones del tamaño del software incluyen: Puntos de función, Puntos de características, Líneas de código, Cantidad de requerimientos, y Cantidad de páginas. Ejemplos de tipos de productos de trabajo y actividades para los que se hacen estimaciones de tamaño incluyen: Software operacional y software de soporte, Productos de trabajo que se pueden entregar y que no se pueden entregar, Productos de trabajo de software y que no son de software (por ejemplo, documentos), y Actividades para desarrollar, verificar y validar productos de trabajo. 2. Los productos de software se descomponen con la granularidad necesaria para satisfacer los objetivos de estimación. 3. Se usan los datos históricos que haya disponibles. 4. Se documentan las suposiciones de las estimaciones del tamaño. 5. Las estimaciones de tamaño se documentan, revisan y acuerdan. Ejemplos de grupos e individuos que revisan y acuerdan el tamaño de las estimaciones incluyen: El administrador del proyecto, El administrador del software del proyecto, y Los otros administradores de software. Actividad 10 Se derivan las estimaciones para los costos y esfuerzos del proyecto de software de acuerdo a un procedimiento documentado. Este procedimiento típicamente especifica que: 1. Las estimaciones para los costos y el esfuerzo del proyecto de software están relacionadas con las estimaciones de tamaño de los productos de trabajo de software (o del tamaño de los cambios). 2. Cuando están disponibles, se usan los datos de productividad (históricos y/o actuales) para hacer las estimaciones; las fuentes y la racional para estos datos se documentan. Cuando es posible, los datos de productividad y costo son de los proyectos de la organización. Los datos de productividad y costo tienen en cuenta el esfuerzo y los costos significantes que entran al hacer los productos de trabajo de software. Ejemplos de costos significantes que entran al hacer los productos de trabajo de software incluyen: Gastos de personal directos, Gastos generales, Expensas de viaje, y Costos del uso de computadoras. 3. Las estimaciones de costo, personal y esfuerzo se basan en la experiencia pasada. Cuando sea posible deben usarse proyectos similares. Se deriva la duración de las actividades. Se preparan distribuciones de las estimaciones del esfuerzo, del personal y del costo a lo largo del ciclo de vida del software. 4. Las estimaciones y las suposiciones hechas al derivar las estimaciones se documentan, revisan y acuerdan. Actividad 11 Se derivan las estimaciones para los recursos de computadora críticos del proyecto de acuerdo a un procedimiento documentado. Los recursos críticos de computadora pueden encontrarse en el entorno del host, en el de la integración y prueba, en el del target, o en cualquier combinación de éstos. Este procedimiento típicamente especifica que: 1. Se identifican los recursos críticos de computadora para el proyecto. Ejemplos de recursos críticos de computadora incluyen: Capacidad de memoria de la computadora, Uso del procesador de la computadora, y Capacidad del canal de comunicaciones. 2. Las estimaciones para los recursos críticos de computadora se relacionan con las estimaciones de: El tamaño de los productos de trabajo de software, La carga de procesamiento operacional, y El tránsito de las comunicaciones. 3. Las estimaciones de los recursos críticos de la computadora se documentan, revisan y acuerdan. Actividad 12 El cronograma del software del proyecto se deriva de acuerdo a un procedimiento documentado. Este procedimiento típicamente especifica que: 1. El cronograma del software se relaciona con: La estimación del tamaño de los productos de trabajo de software (o el tamaño de los cambios), y Los esfuerzos y costos del software. 2. El cronograma del software se basa en experiencias pasadas. Cuando es posible se usan proyectos similares. 3. El cronograma del software se acomoda a las fechas más importantes impuestas, a las fechas de dependencia críticas y a otras limitaciones. 4. Las actividades del cronograma del software son de una duración apropiada y los puntos más importantes están separados en el tiempo de manera adecuada para soportar la precisión en la medición del progreso. 5. Las suposiciones hechas al derivar el cronograma se documentan. 6. El cronograma del software se documenta, revisa y acuerda. Actividad 13 Los riesgos del software asociados con el costo, los recursos, el cronograma y los aspectos técnicos del proyecto se identifican, evalúan y documentan. 1. Los riesgos se analizan y se ordenan por prioridad basándose en su impacto potencial en el proyecto. 2. Se identifican contingencias para los riesgos. Ejemplos de contingencias incluyen: Buffers del cronograma, Planes de personal alternativos, y Planes alternativos para equipamiento de computación adicional. Actividad 14 Se preparan los planes para las facilidades de ingeniería del software del proyecto y herramientas de soporte. 1. Las estimaciones de los requerimientos de capacidad para estas facilidades y herramientas de soporte se basan en las estimaciones de tamaño de los productos de trabajo de software y en otras características. Ejemplos de facilidades de desarrollo de software y herramientas de soporte: Computadoras de desarrollo de software y periféricos, Computadoras de prueba de software y periféricos, Software de entorno de la computadora objetivo, y Otro software de soporte. 2. Se asignan responsabilidades y se negocian los compromisos para procurar o desarrollar estas facilidades y herramientas de soporte. 3. Todos los grupos afectados revisan los planes. Actividad 15 Se registran los datos del planeamiento del software. 1. La información registrada incluye las estimaciones y la información asociada necesaria para reconstruir las estimaciones y evaluar su razonabilidad. 2. Se administran y controlan los datos de planeamiento del software. Mediciones y Análisis Medición 1 Se hacen y se usan mediciones para determinar el estado de las actividades del planeamiento del software. Ejemplos de mediciones incluyen: El completado de los puntos más importantes para las actividades de planeamiento del proyecto del software comparado con el plan; y El trabajo completado, el esfuerzo expandido y los fondos gastados en las actividades de planeamiento del proyecto de software comparado con el plan. Verificación de la Implementación Verificación 1 Las actividades para el planeamiento del proyecto de software se revisan con la administración senior de manera periódica. El propósito primario de las revisiones periódicas por parte de la administración senior es hacer notar las actividades del proceso de software, y proporcionar conocimientos sobre ellas, con un nivel apropiado de abstracción y a tiempo. El tiempo transcurrido ente las revisiones debe satisfacer las necesidades de la organización y puede ser largo, siempre y cuando haya mecanismos adecuados para informar excepciones. 1. Se revisa el desempeño técnico, de costos, del personal y del cronograma. 2. Se tratan conflictos y temas que no se han podido resolver en niveles inferiores. 3. Se tratan los riesgos del proyecto de software. 4. Se asignan, revisan, siguen y cierran las acciones individuales. 5. Se prepara un informe sumario de cada reunión y se entrega a los individuos y grupos afectados. Verificación 2 Se revisan las actividades para el planeamiento del proyecto de software con el administrador del proyecto tanto de manera periódica como dependiente de los eventos. 1. Se representan los grupos afectados. 2. Se revisan el estado y los resultados actuales de las actividades de planeamiento del proyecto de software comparándolos con la enunciación del proyecto de software y los requerimientos asignados. 3. Se consideran las dependencias entre grupos. 4. Se consideran los conflictos y temas que no se pudieron resolver en niveles inferiores. 5. Se revisan los riesgos del proyecto de software. 6. Se asignan, revisan, siguen y cierran las acciones individuales. 7. Se prepara un informe sumario de cada reunión y se entrega a los individuos y grupos afectados. Verificación 3 El grupo de garantía de la calidad del software revisa y/o audita las actividades y los productos de trabajo para el planeamiento del proyecto de software e informa los resultados. Referirse al área clave de proceso Garantía de la Calidad del Software. Como mínimo, las revisiones y/o auditorías verifican: 1. 2. 3. 4. Las actividades para la estimación y planeamiento del software. Las estimaciones para revisar y hacer los compromisos del proyecto. Las actividades para preparar el plan de desarrollo del software. Los estándares usados para preparar el plan de desarrollo del software. 5. El contenido del plan de desarrollo del software. 7.3 Seguimiento y Vista General del Proyecto de Software Un área clave del proceso para el Nivel 2: Repetible. El propósito del Seguimiento y Vista General del Proyecto de Software es proporcionar una visibilidad adecuada del progreso real de manera que la administración pueda tomar medidas efectivas cuando el desempeño del proyecto de software se desvía de manera importante de los planes del software. El Seguimiento y Vista General del Proyecto de Software implica el seguimiento y revisión de los logros y resultados del software en comparación con las estimaciones, los compromisos y planes documentados, y el ajuste de estos planes basándose en los logros y resultados reales. Como base para las actividades de seguimiento de las actividades de software se usa un plan documentado para el proyecto de software (o sea, el plan de desarrollo del software, según se describe en el área clave de proceso Planeamiento del Proyecto de Software), así como para comunicar el estado y para revisar los planes. La administración monitorea las actividades del software. El progreso se determina principalmente comparando el tamaño real del software, el costo y el cronograma con el plan cuando se completan algunos productos de software seleccionados y en puntos clave seleccionados. Cuando se determina que no se están satisfaciendo los planes del proyecto de software, se toman acciones correctivas. Estas acciones pueden incluir la revisión del plan de desarrollo del software para reflejar los logros reales y un re-planeamiento del trabajo restante o tomar acciones para mejorar la performance. Objetivos Objetivo 1 Los resultados y el desempeño reales se comparan con los del plan del software. Objetivo 2 Cuando los resultados reales se desvían significativamente de los planes del software se toman acciones correctivas y se administran hasta su cierre. Objetivo 3 Los grupos e individuos afectados acuerdan los cambios a los compromisos del software. Compromiso para el Desempeño Compromiso 1 se designa un administrador del proyecto de software que sea responsable para las actividades y resultados del software del proyecto. Compromiso 2 El proyecto sigue una política organizacional escrita para administrar el proyecto de software. Esta política típicamente especifica que: 1. Se usa y mantiene un plan de desarrollo de software documentado como la base para el seguimiento del proyecto de software. 2. El administrador del proyecto se mantiene informado del estado y de los temas del proyecto de software. 3. Se toman acciones correctivas cuando el plan de software no se está logrando, ya sea ajustando la performance o ajustando los planes. 4. Los cambios a los compromisos del software se hacen con la participación y el acuerdo de los grupos afectados. Ejemplos de grupos afectados incluyen: Ingeniería del software (incluyendo todos los subgrupos, como ser diseño del software), Estimaciones del software, Ingeniería de sistemas, Prueba del sistema, Garantía de la calidad del software, Administración de la configuración del software, Administración del contrato, y Soporte de documentación. 5. La administración senior revisa todos los cambios a los compromisos y los nuevos compromisos del proyecto de software hechos con individuos y grupos externos a la organización. Capacidad para Desempeñarse Capacidad 1 Se documenta y aprueba un plan de desarrollo de software para el proyecto de software. Referirse a las Actividades 6 y 7 del área clave Planeamiento del Proyecto de Software para prácticas que cubran el plan de desarrollo del software. Capacidad 2 El administrador de software del proyecto explícitamente asigna responsabilidades para las actividades y los productos de trabajo de software. Las responsabilidades asignadas cubren: 1. Los productos de trabajo de software a desarrollar o los servicios a proporcionar. 2. El esfuerzo y el costo para estas actividades de software. 3. El cronograma para estas actividades de software. 4. El presupuesto para estas actividades de software. Capacidad 3 Se proporcionan recursos y fondos adecuados para seguir el proyecto de software. 1. Se asignan responsabilidades específicas de seguimiento del proyecto de software a los administradores del software y los líderes de las tareas de software. 2. Se ponen a disposición de quien las necesite las herramientas necesarias para soportar el seguimiento de software. Ejemplos de herramientas de soporte incluyen: Programas de hoja extendida (spreadsheet) y Programas de planeamiento y cronograma del proyecto. Capacidad 4 Los administradores del software se entrenan para administrar aspectos técnicos y de personal del proyecto de software. Ejemplos de entrenamiento incluyen: Administración de proyectos técnicos; Seguimiento y vista general del tamaño, esfuerzo, costo y plazos del software; y Administración del personal. Capacidad 5 Los administradores de primera línea reciben orientación en los aspectos técnicos del proyecto de software. Ejemplos de orientación incluyen: Los estándares y procedimientos de la ingeniería del proyecto de software y El dominio de aplicación del proyecto. Actividades Realizadas Actividad 1 Se usa un plan documentado de desarrollo de software para seguir las actividades del software y para comunicar el estado. Referirse a la Actividad 7 del área clave de proceso Planeamiento del Proyecto de Software para prácticas que cubran el contenido del plan de desarrollo del software. Este plan de desarrollo de software: 1. Se actualiza a medida que el trabajo progresa para reflejar los logros, en particular cuando se completa algún punto clave. 2. Está disponible para: Actividad 2 El grupo de ingeniería de software (incluyendo todos los subgrupos, como ser diseño del software), Los administradores del software, El administrador del proyecto, La administración senior, y Otros grupos afectados. El plan de desarrollo del software del proyecto se revisa de acuerdo a un procedimiento documentado. Referirse a la Actividad 6 del área clave de proceso Planeamiento del Proyecto de Software para prácticas que cubran las actividades para producir el plan de desarrollo del software. Este procedimiento especifica que: 1. Se revisa el plan de desarrollo, según sea apropiado, para incorporar refinamientos al plan y para incorporar cambios a los planes, particularmente cuando los planes cambian significativamente. En todos los cambios del plan deben reflejarse las interdependencias entre los requerimientos asignados, las limitaciones del diseño, los recursos, los costos y los plazos. 2. El plan de desarrollo del software se actualiza para incorporar todos los nuevos compromisos del proyecto de software y los cambios a los compromisos. 3. En cada revisión se revisa el plan de desarrollo del software. 4. El plan de desarrollo del software se administra y controla. “Se administra y controla” implica que la versión del producto de trabajo que se encuentra en uso en un momento dado (pasado o presente) es conocida (o sea, control de versión) y que los cambios se incorporan de una manera controlada (o sea, control de cambios). Si se desea un mayor grado de control que el que implica “administrado y controlado”, el producto de trabajo puede ubicarse bajo la disciplina total de la administración de la configuración, según se describe en el área clave de proceso Administración de la Configuración del Software. Actividad 3 Los compromisos del proyecto de software y los cambios a los compromisos hechos con individuos y grupos externos a la organización se revisan con la administración senior de acuerdo a un procedimiento documentado. Actividad 4 Los cambios a los compromisos aprobados que afectan al proyecto de software se comunican a los miembros del grupo de ingeniería del software y a otros grupos relacionados con el software. Ejemplos de otros grupos relacionados con el software incluyen: Garantía de la calidad del software, Administración de la configuración del software, y Soporte de documentación. Actividad 5 Los tamaños de los productos de software (o los tamaños de los cambios a los productos de software) se siguen, y se toman acciones correctivas cuando sea necesario. Referirse a la Actividad 9 del área clave de proceso Planeamiento del Proceso de Software para prácticas que cubran la derivación del tamaño de las estimaciones. 1. Se siguen los tamaños de los productos de trabajo de software más importantes (o los tamaños de los cambios). 2. El tamaño real del código (generado, completamente probado, y entregado) se compara con las estimaciones documentadas en el plan de desarrollo del software. 3. Las unidades reales de documentación entregada se comparan con las estimaciones documentadas en el plan de desarrollo del software. 4. El tamaño general proyectado de los productos de trabajo del software (estimaciones combinadas con los reales) se redefine, monitorean y ajustan regularmente. 5. Los cambios en las estimaciones de tamaño de los productos de trabajo de software que afectan los compromisos del software se negocian con los grupos afectados y se documentan. Actividad 6 Se siguen el esfuerzo y los costos del software del proyecto, y se toman acciones correctivas cuando sea necesario. Referirse a la Actividad 10 del área clave de proceso Planeamiento del Proyecto de Software para prácticas que cubran la derivación de las estimaciones del costo. 1. Se comparan los gastos reales de esfuerzo y costo en el tiempo y proporcionalmente al trabajo realizado con las estimaciones documentadas en el plan de desarrollo del software para identificar excesos e incumplimientos potenciales. 2. Se siguen los costos del software y se comparan con las estimaciones documentadas en el plan de desarrollo del software. 3. Se comparan el esfuerzo y el personal con las estimaciones documentadas en el plan de desarrollo del software. 4. Los cambios de personal y otros costos del software que afecten los compromisos del software se negocian con los grupos afectados y se documentan. Actividad 7 Se siguen los recursos críticos de computadora del proyecto, y se toman acciones correctivas cuando sea necesario. Referirse a la Actividad 11 del área clave de proceso Planeamiento del Proyecto de Software para prácticas que cubran la derivación de estimaciones de recursos de computadoras. 1. Se siguen y se comparan con las estimaciones los usos real y proyectado de los recursos críticos de computadora para cada componente importante del software según se documenta en el plan de desarrollo del software. 2. Los cambios en las estimaciones de recursos de computadora críticos que afectan los compromisos del software se negocian con los grupos afectados y se documentan. Actividad 8 Se sigue el cronograma del software del proyecto, y se toman acciones correctivas según sea necesario. Referirse a la Actividad 12 del área clave de proceso Planeamiento del Proyecto de Software para prácticas que cubran la derivación del cronograma. 1. Se compara el completado real de las actividades del software, puntos importantes y otros compromisos con el plan de desarrollo del software. 2. Se evalúan los efectos de los completados antes y después de plazo para impactos sobre actividades futuras y puntos importantes. 3. Las revisiones del cronograma del software que afectan los compromisos del software se negocian con los grupos afectados y se documentan. Actividad 9 Se siguen las actividades técnicas de la ingeniería del software, y se toman acciones correctivas según sea necesario. 1. Los miembros del grupo de ingeniería del software informan el estado técnico a su administrador de primera línea regularmente. 2. Se comparan los contenidos de edición del software para construcciones sucesivas con los planes documentados en el plan de desarrollo del software. 3. Se informan y documentan los problemas identificados en cualquiera de los productos de trabajo de software. 4. Los informes de problemas se siguen hasta su cierre. Actividad 10 Se siguen los riesgos de software asociados con el costo, los recursos, los plazos y los aspectos técnicos del proyecto. Referirse a la Actividad 13 del área clave de proceso Planeamiento del Proyecto de Software para prácticas que cubran la identificación de riesgos. 1. Las prioridades de los riesgos y de las contingencias para los riesgos se ajustan a medida que la información adicional se vuelve disponible. 2. Las áreas de alto riesgo se revisan con el administrador del proyecto de manera regular. Actividad 11 Se registran los datos de mediciones reales y los datos de replaneamiento para el proyecto de software. Referirse a la Actividad 15 del área clave de proceso Planeamiento del Proyecto de Software para prácticas que cubran el registro de datos del proyecto. 1. La información registrada incluye las estimaciones e información asociada necesarias para reconstruir las estimaciones y verificar su razonabilidad. 2. Los datos de replaneamiento del software se administran y controlan. 3. Los datos de planeamiento del software, los datos de replaneamiento, y los datos de mediciones reales se archivan para ser usados por el proyecto actual y por proyectos futuros. Actividad 12 El grupo de ingeniería del software conduce revisiones periódicas internas para seguir el progreso técnico, los planes, la performance y otros temas y compararlos con el plan de desarrollo del software. Estas revisiones se conducen entre: 1. Los administradores de primera línea del software y sus líderes de tareas de software. 2. El administrador de software del proyecto, los administradores de primera línea del software y otros administradores de software, según sea apropiado. Actividad 13 Se conducen revisiones formales para estudiar los logros y resultados del proyecto de software en puntos clave seleccionados de acuerdo a un procedimiento documentado. Estas revisiones: 1. Están planeadas para que ocurran en puntos importantes del cronograma del proyecto de software, como ser en el inicio o el final de etapas seleccionadas. 2. Se conducen con el cliente, el usuario final y los grupos afectados dentro de la organización, según sea apropiado. Los usuarios finales que se nombran en estas prácticas son los clientes designados como usuarios finales o representantes de usuarios finales. 3. Usan materiales que son revisados y aprobados por los administradores de software responsables. 4. Estudian los compromisos, planes, y estado de las actividades del software. 5. Resultan en la identificación y documentación de temas importantes, unidades de acción y decisiones. 6. Estudian los riesgos del proyecto de software. 7. Resultan en el refinamiento del plan de desarrollo del software, según sea necesario. Mediciones y Análisis Medición 1 Se hacen y se usan mediciones para determinar el estado de las actividades de seguimiento y vista general del software. Ejemplos de mediciones incluyen: Esfuerzo y otros recursos usados para realizar las actividades de seguimiento y vista general; y Actividad de cambio para el plan de desarrollo del software, que incluye cambios a las estimaciones de tamaño de los productos de trabajo del software, estimaciones del costo del software, estimaciones de recursos críticos de computadoras y plazos. Verificación de la Implementación Verificación 1 Las actividades para el seguimiento y vista general del proyecto de software son revisadas por la administración senior de manera periódica. El propósito primario de las revisiones periódicas por parte de la administración senior es crear conciencia y conocimiento sobre las actividades del proceso de software en un nivel apropiado de abstracción y de una manera rápida. El tiempo entre revisiones debe satisfacer las necesidades de la organización y puede ser largo, siempre y cuando haya mecanismos adecuados para informar excepciones. 1. Se revisa la performance técnica, de los costos, del personal y del cronograma. 2. Se tratan los conflictos y los temas que no se pudieron resolver en niveles inferiores. 3. Se tratan los riesgos del proyecto de software. 4. Se tratan, revisan, y siguen hasta su finalización temas relacionados con la acción. 5. Se presenta y distribuye a los grupos afectados un informe de estado de cada reunión. Verificación 2 Las actividades para el seguimiento y la vista general del proyecto de software se revisan con el administrador del proyecto tanto de manera periódica como dependiente de los eventos. 1. Se representan los grupos afectados. 2. Se revisa la performance técnica, de costos, del personal y de los plazos en comparación con el plan de desarrollo. 3. Se revisa el uso de los recursos críticos de computadora; se informan las estimaciones actuales y el uso real de estos recursos críticos en comparación con las estimaciones originales. 4. Se tratan las dependencias entre grupos. 5. Se tratan los conflictos y temas que no se pudieron resolver en niveles inferiores. 6. Se tratan los riesgos del proyecto de software. 7. Se asignan, revisan y siguen hasta su finalización temas relacionados con la acción. 8. Se prepara y distribuye a los grupos afectados un informe resumen de cada reunión. Verificación 3 El grupo de garantía de la calidad del software revisa y/o audita las actividades y productos de trabajo para el seguimiento y vista general del proyecto de software e informa los resultados. Referirse al área clave de proceso Garantía de la Calidad del Software. Como mínimo, las revisiones y/o auditorías verifican: 1. 2. 3. 4. Las actividades para rever y revisar los compromisos. Las actividades para revisar el plan de desarrollo del software. El contenido del plan de desarrollo de software revisado. Las actividades para seguir las limitaciones de diseño, costo, cronograma, riesgos y técnicas, y la funcionalidad y la performance. 5. Las actividades para conducir las revisiones técnicas y de administración planeadas. 7.4 Administración de los Subcontratos de Software Un área clave del proceso para el Nivel 2: Repetible. El propósito de la Administración de los Subcontratos de Software es seleccionar subcontratistas de software calificados y administrarlos de manera efectiva. La Administración de los Subcontratos de Software implica seleccionar un subcontratista de software, establecer compromisos con el subcontratista, y seguir y revisar los resultados y la performance del subcontratista. Estas prácticas cubren la administración de un (solo) subcontratista de software, así como la administración del componente de software de un subcontrato que incluye software, hardware y posiblemente otros componentes de sistemas. El subcontratista se selecciona sobre la base de su habilidad de realizar el trabajo. Muchos factores contribuyen a la decisión de subcontratar una porción del trabajo principal del contratista. Los subcontratistas pueden seleccionarse basándose en alianzas estratégicas de negocios, así como consideraciones técnicas. Las prácticas de esta área clave de proceso tratan los procesos de adquisición tradicionales asociados con la subcontratación de una porción definida del trabajo a otra organización. Al subcontratar se establece un acuerdo documentado que cubre los requerimientos técnicos y no técnicos (por ejemplo, fechas de entrega) y se usa como la base para administrar el subcontrato. Se documentan el trabajo a ser realizado por el subcontratista y los planes para el trabajo. Los estándares a seguir por el subcontratista son compatibles con los estándares del contratista primario. Las actividades de planeamiento, seguimiento y vista general del software para el trabajo subcontratado son realizadas por el subcontratista. El contratista primario se asegura que estas actividades sean realizadas de manera adecuada y que los productos de software que entrega el subcontratista satisfagan sus criterios de aceptación. El contratista primario trabaja con el subcontratista para administrar interfaces de procesos y productos. Objetivos Objetivo 1 El contratista primario selecciona subcontratistas de software calificados. Objetivo 2 El contratista primario y el subcontratista de software acuerdan sus compromisos mutuos. Objetivo 3 El contratista primario y el subcontratista de software mantienen comunicaciones continuas. Objetivo 4 El contratista primario sigue los resultados reales y la performance del subcontratista y los compara con los compromisos. Compromiso para el Desempeño Compromiso 1 El proyecto sigue una política organizacional escrita para administrar el subcontrato de software. Esta política típicamente especifica que: 1. Se usan estándares y procedimientos documentados para seleccionar subcontratistas de software y administrar subcontratos de software. 2. Los acuerdos contractuales forman la base para administrar el subcontrato. 3. Los cambios al subcontrato se hacen con la participación y el acuerdo tanto del contratista primario como del subcontratista. Compromiso 2 Se designa un administrador del subcontrato para que sea el responsable de establecer y mantener el subcontrato de software. 1. El administrador del subcontrato tiene conocimiento y experiencia en ingeniería de software o tiene asignados individuos que tienen ese conocimiento y experiencia. 2. El administrador del subcontrato es responsable de coordinar el alcance técnico del trabajo a subcontratar y los términos y condiciones del subcontrato con las partes afectadas. El grupo de ingeniería de sistemas del proyecto y el grupo de ingeniería de software definen el alcance técnico del trabajo a subcontratar. Los grupos de función de negocios apropiados, como ser compras, finanzas y legales, establecen y monitorean los términos y condiciones del subcontrato. 3. El administrador del subcontrato es responsable de: Seleccionar el subcontratista de software, Administrar el subcontrato de software, y Arreglar el soporte posterior al subcontrato de los productos subcontratados. Capacidad para Desempeñarse Capacidad 1 Se proporcionan recursos y fondos adecuados para seleccionar el subcontratista de software y administrar el subcontrato. 1. Se asignan responsabilidades específicas a los administradores de software y otros individuos para administrar el subcontrato. 2. Se ponen a disposición las herramientas necesarias para soportar la administración del subcontrato. Ejemplos de herramientas de soporte incluyen: Modelos de estimación, Programas de hoja extendida (spreadsheet), y Programas de scheduling y de administración del proyecto. Capacidad 2 Los administradores de software y otros individuos que están involucrados en establecer y administrar el subcontrato de software se entrenan para realizar estas actividades. Ejemplos de entrenamiento incluyen: Preparación y planeamiento para el subcontrato de software, Evaluación de la capacidad de proceso de software de los que se presentan para ganar el subcontrato, Evaluación de los planes y estimaciones de software de los que se presentan para ganar el subcontrato, Selección de un subcontratista, y Administración del subcontrato. Capacidad 3 Los administradores de software y otros individuos que están involucrados en la administración del subcontrato de software reciben una reorientación en los aspectos técnicos del subcontrato. Ejemplos de orientación incluyen: Dominio de aplicación, Tecnologías de software que se están aplicando, Herramientas de software que se están usando, Metodologías que se están usando, Estándares que se están usando, y Procedimientos que se están usando. Actividades Realizadas Actividad 1 Se define y planea el trabajo a subcontratar de acuerdo a un procedimiento documentado. Este procedimiento típicamente especifica que: 1. Los productos y las actividades de software a subcontratar se seleccionan sobre la base de una evaluación balanceada tanto de características técnicas como no técnicas del proyecto. Las funciones o subsistemas a subcontratar se seleccionan de acuerdo a las capacidades de los subcontratistas potenciales. La especificación de los productos y actividades de software a subcontratar se determina basándose en un análisis sistemático y un particionamiento adecuado de los requerimientos de software y los del sistema. 2. La especificación del trabajo a subcontratar y los estándares y procedimientos a seguir se derivan de: El enunciado del trabajo, Los requerimientos del sistema asignados al software, Los requerimientos del software, El plan de desarrollo del software, y Los procedimientos y estándares del software. 3. Un enunciado de un subcontrato de trabajo se: Prepara, Revisa, Acuerda, Ejemplos de individuos que revisan y acuerdan la enunciación de trabajo del subcontrato incluyen: El administrador del proyecto, El administrador de software del proyecto, Los administradores de software responsables, El administrador de la administración de la configuración del software, El administrador de la garantía de la calidad del software, y El administrador del subcontrato. Revisa cuando es necesario, y Se administra y controla. “Se administra y controla” implica que la versión del producto de trabajo en uso en un momento dado (pasado o presente) es conocida (o sea, control de versión), y que los cambios se incorporan de una manera controlada (o sea, control de cambios). Si se desea un mayor grado de control que el que implica “administrado y controlado”, el producto de trabajo puede ubicarse bajo la disciplina total de la administración de la configuración, según se describe en el área clave de proceso Administración de la Configuración del Software. Referirse a la Capacidad 1 del área de proceso clave Planeamiento del Proyecto de Software para prácticas que cubran los contenidos típicos de la enunciación del trabajo. 4. Se prepara un plan para seleccionar un subcontratista al mismo tiempo que la enunciación de trabajo del subcontrato y se revisa, según sea apropiado. Actividad 2 Se selecciona el subcontratista de software sobre la base de una evaluación de la capacidad para realizar el trabajo de los que se han presentado a la licitación del subcontrato, de acuerdo a un procedimiento documentado. Este procedimiento cubre la evaluación de: 1. Propuestas presentadas para el subcontrato planeado. 2. Registros del desempeño anterior en trabajos similares, si existe. 3. Las ubicaciones geográficas de los que se presentaron a la licitación del subcontrato con relación al subcontratista primario. La administración efectiva de algunos subcontratos puede requerir interacciones frecuentes cara a cara. 4. Capacidades de administración del software y de la ingeniería del software. Un ejemplo de un método para evaluar las capacidades de los subcontratistas es el método de Evaluación de la Capacidad del Software SEI. 5. Personal disponible para realizar el trabajo. 6. Experiencia en aplicaciones similares, incluyendo experticia en el software en el equipo de administración del software del subcontratista. 7. Recursos disponibles. Ejemplos de recursos: Facilidades, Hardware, Software, y Entrenamiento. Actividad 3 El acuerdo contractual entre el contratista primario y el subcontratista de software se usa como la base para administrar el subcontrato. El acuerdo contractual documenta: 1. Los términos y condiciones. 2. La enunciación del trabajo. Referirse a la Capacidad 1 del área clave de proceso Planeamiento del Proceso de Software para prácticas que cubran los contenidos típicos de una enunciación de trabajo. 3. Los requerimientos para los productos a desarrollar. 4. La lista de dependencias entre el subcontratista y el contratista primario. 5. Los productos subcontratados a ser entregados al contratista primario. Ejemplos de productos incluyen: Código fuente, Plan de desarrollo del software, Entorno de simulación, Documentación de diseño, y Plan de prueba de aceptación. 6. Las condiciones bajo las cuales se deben presentar las revisiones a los productos. 7. Los procedimientos de aceptación y los criterios de aceptación a usar al evaluar los productos subcontratados antes de ser aceptados por el contratista primario. 8. Los procedimientos y criterios de evaluación que usará el contratista primario para monitorear y evaluar el desempeño del subcontratista. Actividad 4 El contratista primario revisa y aprueba un plan documentado de desarrollo de software del subcontratista. 1. Este plan de desarrollo de software cubre (en forma directa o por referencia) los puntos adecuados del plan de desarrollo de software del contratista primario. En algunos casos el plan de desarrollo de software del contratista primario puede incluir el plan de desarrollo de software para el subcontratista, en cuyo caso no se necesita un plan separado de desarrollo de software del subcontratista. Actividad 5 Se usa un plan documentado de desarrollo de software del subcontratista que haya sido aprobado para seguir las actividades del software y comunicar el estado. Actividad 6 Los cambios a la enunciación del trabajo del subcontratista de software, a los términos y condiciones del subcontrato y a otros compromisos se resuelven de acuerdo a un procedimiento documentado. 1. Este procedimiento típicamente especifica que participan todos los grupos afectados tanto del contratista primario como del subcontratista. Actividad 7 La administración del contratista primario conduce revisiones periódicas de estado / coordinación con la administración del subcontratista de software. 1. El subcontratista recibe información en cuanto a las necesidades y deseos de los clientes del producto y usuarios finales, según sea necesario. Los usuarios finales a los que se nombra en estas prácticas son los clientes designados usuarios finales o los representantes de los usuarios finales. 2. Se revisa la performance técnica, de costos, de personal y de cronograma del subcontratista en comparación con el plan de desarrollo de software del subcontratista. 3. Se revisan los recursos de computadora designados como críticos para el proyecto; se sigue la contribución del subcontratista a las estimaciones actuales y se comparan con las estimaciones para cada componente de software según se documenta en el plan de desarrollo de software del subcontratista. 4. Se tratan las dependencias y compromisos críticos entre el grupo de ingeniería de software del subcontratista y otros grupos del subcontratista. 5. Se tratan los compromisos y dependencias críticas entre el contratista primario y el subcontratista. Se revisan los compromisos del subcontratista con el contratista primario y los compromisos del contratista primario con el subcontratista. 6. Se trata el incumplimiento del subcontrato. 7. Se tratan los riesgos del proyecto que involucran el trabajo del subcontratista. 8. Se tratan los conflictos y temas que el subcontratista no puede resolver internamente. 9. Se asignan temas de acción, se revisan y se siguen hasta su cierre. Actividad 8 Se sostienen revisiones periódicas internas e intercambios con el subcontratista de software. Estas revisiones: 1. Proporcionan información al subcontratista acerca de las necesidades y deseos de los clientes y los usuarios finales, según sea apropiado. 2. Monitorean las actividades técnicas del subcontratista. 3. Verifican que la interpretación e implementación de los requerimientos técnicos por parte del subcontratista esté de acuerdo con los requerimientos del contratista primario. 4. Verifican que se estén cumpliendo los compromisos. 5. Verifican que los temas técnicos se resuelvan con prontitud. Actividad 9 Se conducen revisiones formales para tratar los logros y resultados de la ingeniería de software del subcontratista en puntos clave seleccionados, de acuerdo a un procedimiento documentado. Este procedimiento típicamente especifica que: 1. Las revisiones se planean y documentan en la enunciación del trabajo. 2. Las revisiones tratan los compromisos, los planes y el estado de las actividades de software por parte del subcontratista. 3. Se identifican y documentan temas importantes, temas de acción y decisiones. 4. Se tratan los riesgos del software. 5. Se redefine el plan de desarrollo de software del subcontratista, según sea apropiado. Actividad 10 El grupo de garantía de la calidad del software del contratista primario monitorea las actividades del subcontratista para garantizar la calidad del software, de acuerdo a un procedimiento documentado. Este procedimiento típicamente especifica que: 1. Los planes, recursos, procedimientos y estándares del subcontratista se revisan periódicamente para asegurar que son adecuados para monitorear la performance del subcontratista. 2. Se conducen revisiones regulares del subcontratista para asegurar que se están siguiendo los procedimientos y estándares aprobados. El grupo de garantía de la calidad del software del contratista primario verifica las actividades de ingeniería de software y los productos del subcontratista. El grupo de garantía de la calidad del software del contratista primario audita los registros de garantía de la calidad del software del subcontratista, según sea apropiado. 3. Los registros del subcontratista de sus actividades para garantizar la calidad del software se auditan de manera periódica para evaluar cuán bien se están siguiendo los planes, estándares y procedimientos de garantía de la calidad del software. Actividad 11 El grupo de administración de la configuración del software del contratista primario monitorea las actividades del subcontratista para la administración de la configuración del software, de acuerdo a un procedimiento documentado. Este procedimiento típicamente especifica que: 1. Se revisan los planes, recursos, procedimientos y estándares del subcontratista para la administración de la configuración del software para asegurarse que sean adecuados. 2. El contratista primario y el subcontratista coordinan sus actividades en temas relacionados con la administración de la configuración del software para asegurar que los productos del subcontratista pueden integrarse o incorporarse con prontitud al entorno del proyecto del contratista primario. 3. La biblioteca (library) base del software del subcontratista se audita de manera periódica para evaluar cuán bien se están siguiendo los estándares y procedimientos para la administración de la configuración del software y cuán efectivos son para administrar la línea base del software. Actividad 12 El contratista primario conduce pruebas de aceptación como parte de la entrega de los productos de software del subcontratista de acuerdo a un procedimiento documentado. Este procedimiento típicamente especifica que: 1. El contratista primario y el subcontratista definen, revisan y aprueban los procedimientos y criterios de aceptación para cada producto antes de la prueba. 2. Se documentan los resultados de las pruebas de aceptación. 3. Se establece un plan de acción para cualquier producto de software que no pase su prueba de aceptación. Actividad 13 La performance del subcontratista de software se evalúa de manera periódica, y la evaluación se revisa con el subcontratista. La evaluación de la performance del subcontratista proporciona una oportunidad para que el subcontratista sepa si está satisfaciendo las necesidades del cliente o no (o sea, del contratista primario). Un mecanismo de revisiones de cuota de recompensa por la performance proporciona este tipo de "feedback", en oposición a las revisiones periódicas técnicas y de coordinación que pueden ocurrir todo a lo largo del proyecto. La documentación de estas evaluaciones también actúa como entrada para actividades futuras de selección de subcontratistas. Mediciones y Análisis Medición 1 Las mediciones se hacen y se usan para determinar el estado de las actividades para administrar el subcontrato de software. Ejemplos de mediciones incluyen: Costos de las actividades para administrar el subcontrato en comparación con el plan, Fechas reales de entrega para productos subcontratados en comparación con el plan, y Fechas reales de entregas del contratista primario al subcontratista en comparación con el plan. Verificación de la Implementación Verificación 1 Las actividades para administrar el subcontrato de software se revisan con la administración senior de manera periódica. El propósito primario de las revisiones periódicas por parte de la administración senior es proporcionar consciencia y conocimiento sobre las actividades del proceso de software en un nivel apropiado de abstracción y con prontitud. El tiempo transcurrido entre las revisiones debe satisfacer las necesidades de la organización y puede ser largo, siempre y cuando haya mecanismos adecuados para el informe de excepciones. Referirse a la Verificación 1 del área clave de proceso Seguimiento y Vista General del Proyecto de Software para prácticas que cubran el contenido típico de las revisiones generales de la administración senior. Verificación 2 Las actividades para administrar el subcontrato de software se revisan con el administrador del proyecto tanto de manera periódica como dependiente de los eventos. Referirse a la Verificación 2 del área clave de proceso Seguimiento y Vista General del Proyecto de Software para prácticas que cubran el contenido típico de las revisiones generales de la administración del proyecto. Verificación 3 El grupo de garantía de la calidad del software revisa y/o audita las actividades y los productos de trabajo para administrar el subcontrato de software e informa los resultados. Referirse al área clave de proceso Garantía de la Calidad del Software. Como mínimo, las revisiones y/o auditorías verifican: 1. Las actividades para seleccionar el subcontratista. 2. Las actividades para administrar el subcontrato de software. 3. Las actividades para coordinar las actividades de administración de la configuración del contratista primario y del subcontratista. 4. La conducción de revisiones planeadas con el subcontratista. 5. La conducción de revisiones que establecen el completado de los puntos clave o las etapas de proyecto para el subcontrato. 6. El proceso de aceptación para los productos de software del subcontratista. 7.5 Garantía de la Calidad del Software Un área clave del proceso para el Nivel 2: Repetible. El propósito de la Garantía de la Calidad del Software es proporcionar administración con una visibilidad apropiada del proceso que se está usando en el proyecto de software y de los productos que se están construyendo. La Garantía de la Calidad del Software implica hacer revisiones y auditorías a las actividades y los productos de software para verificar que satisfacen los estándares y procedimientos aplicables así como proporcionar los resultados de estas revisiones y auditorías al proyecto de software y a otros administradores apropiados. El grupo de garantía de la calidad del software trabaja con el proyecto de software durante las etapas tempranas para establecer planes, estándares y procedimientos que aumentarán el valor del proyecto de software y satisfarán las limitaciones del proyecto y las políticas de la organización. Al participar en el establecimiento de planes, estándares y procedimientos el grupo de garantía de la calidad del software ayuda a asegurar que se ajusten a las necesidades del proyecto y verifica que puedan usarse para llevar a cabo revisiones y auditorías durante todo el ciclo de vida del software. El grupo de garantía de la calidad del software revisa las actividades del proyecto y audita los productos de trabajo del software durante todo el ciclo de vida y proporciona una administración con visibilidad en cuanto a si el proyecto de software se adhiere a los planes, estándares y procedimientos establecidos. Los temas de cumplimiento se tratan primero dentro del proyecto de software y se resuelven allí de ser posible. Para temas que no se pueden resolver dentro del proyecto de software, el grupo de garantía de la calidad del software eleva el tema a un nivel apropiado de la administración para su resolución. Esta área clave de proceso cubre las prácticas para el grupo que lleva a cabo la función de garantizar la calidad del software. Las prácticas que identifican las actividades específicas y los productos de trabajo que el grupo de garantía de la calidad del software revisa y/o audita están generalmente contenidos en el rasgo común Verificación de la Implementación de las otras áreas clave del proceso. Objetivos Objetivo 1 Se planean las actividades para garantizar la calidad del software. Objetivo 2 Se verifica de manera objetiva la adherencia de las actividades y los productos de software a los estándares, procedimientos y requerimientos aplicables. Objetivo 3 Los individuos y grupos afectados son informados de las actividades y resultados de la garantía de la calidad del software. Objetivo 4 Los temas de incumplimiento que no pueden resolverse dentro del proyecto de software son tratados por la administración senior. Compromiso para el Desempeño Compromiso 1 El proyecto sigue una política organizacional escrita para implementar la garantía de la calidad del software (SQA). Esta política especifica que: 1. La función SQA está en todos los proyectos de software. 2. El grupo SQA tiene un canal para presentar informes a la administración senior que es independiente de: El administrador del proyecto, El grupo de ingeniería de software del proyecto, y Los otros grupos relacionados con el software. Ejemplos de otros grupos relacionados con el software incluyen: Administración de la configuración del software, y Soporte de documentación. Las organizaciones deben determinar la estructura organizacional que soportarán las actividades que requieren independencia, como el SQA, en el contexto de sus objetivos estratégicos de negocios y de su entorno de negocios. La independencia debe: Proporcionar a los individuos que se desempeñan en el rol de SQA la libertad organizacional para ser los "ojos y orejas" de la administración senior en el proyecto de software; Proteger a los individuos que se desempeñan en el rol de SQA de una apreciación del desempeño por parte de la administración del proyecto de software que están revisando; y Proporcionar a la administración senior la seguridad de que se está presentando información objetiva sobre el proceso y los productos de proyecto de software. 3. La administración senior revisa periódicamente las actividades y resultados del SQA. Capacidad para Desempeñarse Capacidad 1 Existe un grupo responsable de coordinar e implementar el SQA para el proyecto (o sea, el grupo SQA) Un grupo es el conjunto de departamentos, administradores e individuos que tienen la responsabilidad de un conjunto de tareas o actividades. Un grupo puede variar desde un único individuo asignado “part-time”, pasando por varios individuos con dedicación parcial asignados de diferentes departamentos, hasta varios individuos dedicados “full-time”. Las consideraciones al implementar un grupo incluyen tareas o actividades asignadas, el tamaño del proyecto, la estructura de la organización y la cultura de la organización. Algunos grupos, como el grupo de garantía de la calidad del software, se enfocan en actividades del proyecto, y otros, como el grupo de proceso de la ingeniería del software, se enfocan en actividades que abarcan toda la organización. Capacidad 2 Se proporcionan recursos y financiación adecuados para llevar a cabo las actividades del SQA. 1. Se asignan responsabilidades específicas a un administrador para las actividades del SQA del proyecto. 2. Se designa un administrador senior, que tiene conocimientos sobre el rol del SQA y tiene la autoridad para tomar medidas generales apropiadas, para recibir y actuar sobre temas de incumplimiento del software. Todos los administradores en la cadena de informes al administrador senior tienen conocimientos sobre el rol, las responsabilidades y la autoridad del SQA. 3. Hay herramientas disponibles para soportar las actividades del SQA. Ejemplos de herramientas de soporte incluyen: Workstations, Programas de bases de datos, Programas de hoja extendida (spreadsheet), y Herramientas de auditoría. Capacidad 3 Los integrantes del grupo SQA se entrenan para llevar a cabo sus actividades. Ejemplos de entrenamiento incluyen: Capacidades y prácticas en ingeniería de software, Roles y responsabilidades del grupo de ingeniería de software y de otros grupos relacionados con el software, Estándares, procedimientos y métodos para el proyecto de software, Dominio de aplicación del proyecto de software, Objetivos, procedimientos y métodos del SQA, Participación del grupo SQA en las actividades del software, Uso efectivo de los métodos y herramientas del SQA, y Comunicaciones interpersonales. Capacidad 4 Los integrantes del proyecto de software reciben orientación en cuanto al rol, las responsabilidades, la autoridad y el valor del grupo SQA. Actividades Realizadas Actividad 1 Se prepara un plan SQA para el proyecto de software de acuerdo a un procedimiento documentado. Este procedimiento típicamente especifica que: 1. El plan SQA se desarrolla en las etapas tempranas y de manera paralela al planeamiento del proyecto general. 2. Los grupos e individuos afectados revisan el plan SQA. Ejemplos de grupos e individuos afectados incluyen: El administrador del proyecto de software; Otros administradores de software; El administrador del proyecto; Representante del SQA cliente; El administrador senior al que el SQA presenta sus informes sobre temas de incumplimiento; y El grupo de ingeniería del software (incluyendo todos los subgrupos, como ser diseño del software y líderes de tareas de software). 3. El plan SQA se administra y controla. “Se administra y controla” implica que la versión del producto de trabajo en uso en un momento dado (pasado o presente) es conocida (o sea, control de versión) y que los cambios se incorporan de una manera controlada (o sea, control de cambios). Si se desea un mayor grado de control que el que implica “administrado y controlado”, el producto de trabajo puede colocarse bajo la disciplina completa de la administración de la configuración, según se describe en el área clave de proceso Administración de la Configuración de Software. Actividad 2 Las actividades del grupo SQA se realizan de acuerdo con el plan del SQA. El plan cubre: 1. Responsabilidades y autoridad del grupo SQA. 2. Requerimientos de recursos para el grupo SQA (incluyendo personal, herramientas y facilidades). 3. Cronograma y financiación de las actividades del grupo SQA del proyecto. 4. La participación del grupo SQA para establecer el plan de desarrollo del software, los estándares y los procedimientos para el proyecto. 5. Evaluaciones a ser llevadas a cabo por el grupo SQA. Ejemplos de productos y actividades a evaluar incluyen: Software operacional y software de apoyo, Productos que se pueden entregar y productos que no se pueden entregar, Productos de software y productos que no son de software (por ejemplo, documentos), Actividades de desarrollo de productos y de verificación de productos (por ejemplo, ejecutar casos de prueba), y Las actividades seguidas al crear el producto. 6. Las auditorías y revisiones a ser realizadas por el grupo SQA. 7. Los procedimientos y estándares del proyecto a ser usados como la base para las revisiones y auditorías del grupo SQA. 8. Los procedimientos para documentar y rastrear temas de incumplimiento hasta su cierre. Estos procedimientos pueden incluirse como parte del plan o pueden incluirse como referencia a otros documentos en donde están contenidos. 9. La documentación que el SQA debe producir. 10. El método y la frecuencia con que se proporciona “feedback” al grupo de ingeniería de software y a otros grupos relacionados con el software sobre las actividades del SQA. Actividad 3 El grupo SQA participa en la preparación y revisión del plan de desarrollo del software del proyecto, estándares y procedimientos. 1. El grupo SQA proporciona consultas y revisiones de los planes, estándares y procedimientos con respecto a: El cumplimiento de la política organizacional, El cumplimiento de estándares y requerimientos impuestos externamente (por ejemplo, estándares requeridos por la enunciación del trabajo), Estándares que son apropiados para el uso por parte del proyecto, Tópicos que deben tratarse en el plan de desarrollo del software, y Otras áreas según hayan sido asignadas por el proyecto. 2. El grupo SQA verifica que los planes, estándares y procedimientos estén ordenados y que puedan usarse para revisar y auditar el proyecto de software. Actividad 4 El grupo SQA revisa las actividades de ingeniería de software para verificar el cumplimiento. 1. Las actividades se evalúan en comparación con el plan de desarrollo del software y los procedimientos y estándares de software designados. Referirse al rasgo común Verificación de la Implementación en las otras áreas claves de proceso para prácticas que cubran las revisiones y auditorías específicas realizadas por el grupo SQA. 2. Las desviaciones se identifican, documentan, y siguen hasta su cierre. 3. Se verifican las correcciones. Actividad 5 El grupo SQA audita productos de trabajo de software designados para verificar el cumplimiento. 1. Los productos de software que se pueden entregar se evalúan antes de ser entregados al cliente. 2. Los productos de trabajo de software se evalúan comparándolos con los procedimientos, estándares y requerimientos contractuales designados del software. 3. Las desviaciones se identifican, documentan y siguen hasta su cierre. 4. Se verifican las correcciones. Actividad 6 El grupo SQA informa periódicamente los resultados de sus actividades al grupo de ingeniería del software. Actividad 7 Las desviaciones identificadas en las actividades del software y en los productos de trabajo del software se documentan y manejan de acuerdo a un procedimiento documentado. Este procedimiento típicamente especifica que: 1. Las desviaciones del plan de desarrollo del software y de los procedimientos y estándares designados del proyecto se documentan y resuelven con los líderes de tareas, administradores de software que sean apropiados o con el administrador del proyecto cuando sea posible. 2. Las desviaciones del plan de desarrollo del software y de los procedimientos y estándares designados del proyecto que no se pueden resolver con los líderes de tareas, ni con los administradores de software ni con el administrador del proyecto se documentan y presentan al administrador senior que se ha designado para recibir temas de incumplimiento. 3. Los temas de incumplimiento presentados al administrador senior se revisan periódicamente hasta ser resueltos. 4. La documentación de los temas de incumplimiento se administra y controla. Actividad 8 El grupo SQA conduce revisiones periódicas de sus actividades y hallazgos con el personal del SQA del cliente, según sea apropiado. Mediciones y Análisis Medición 1 Las mediciones se hacen y se usan para determinar el estado del costo y del cronograma de las actividades del SQA. Ejemplos de mediciones incluyen: Completado de puntos clave para las actividades del SQA en comparación con el plan; Trabajo completado, esfuerzo expandido y fondos gastados en las actividades del SQA en comparación con el plan; y Cantidad de auditorías de productos y revisiones de actividades en comparación con el plan. Verificación de la Implementación Verificación 1 Las actividades del SQA se revisan con la administración senior con base periódica. El propósito primario de las revisiones periódicas por parte de la administración senior es proporcionar consciencia y conocimiento sobre las actividades del proceso de software en un nivel apropiado de abstracción y con prontitud. El tiempo transcurrido entre las revisiones debe satisfacer las necesidades de la organización y puede ser largo, siempre y cuando haya mecanismos adecuados para informes de excepción. Referirse a la Verificación 1 del área clave de proceso Seguimiento y Vista General del Proyecto de Software para prácticas que cubran el contenido típico de las revisiones generales de la administración senior. Verificación 2 Las actividades del SQA se revisan con el administrador del proyecto de manera periódica y dependiendo de los eventos. Referirse a la Verificación 2 del área clave de proceso Seguimiento y Vista General del Proyecto de Software para prácticas que cubran el contenido típico de las revisiones generales de la administración del proyecto. Verificación 3 Expertos independientes del grupo SQA revisan periódicamente las actividades de los productos de trabajo de software del grupo SQA del proyecto. 7.6 Administración de la Configuración del Software Un área clave del proceso para el Nivel 2: Repetible. El propósito de la Administración de la Configuración del Software es establecer y mantener la integridad de los productos del proyecto de software a lo largo del ciclo de vida del software del proyecto. La Administración de la Configuración del Software implica identificar la configuración del software (o sea, productos de trabajo de software seleccionados y sus descripciones) en momentos dados, controlando sistemáticamente los cambios a la configuración y manteniendo la integridad y la posibilidad de rastrear la configuración a lo largo del ciclo de vida del software. Los productos de trabajo de software ubicados bajo la administración de la configuración del software incluyen los productos de software que se entregan al cliente (por ejemplo, el documento de los requerimientos del software y el código) y las cosas que se identifique con el software o que sean necesarias para crear estos productos de software (por ejemplo, el compilador). Se establece una biblioteca (library) base que contiene las bases del software según se van desarrollando. Los cambios a las bases, así como la edición de productos de software construidos a partir de la biblioteca base del software, se controlan sistemáticamente por medio de las funciones de auditoría de la configuración y del control de cambios que tiene la administración de la configuración del software. Esta área clave de proceso cubre las prácticas para realizar la función de administración de la configuración del software. Las prácticas que identifican unidades/ítems de configuración específicos están contenidas en las áreas claves de proceso que describen el desarrollo y el mantenimiento de cada unidad/ítem de configuración. Objetivos Objetivo 1 Se planean las actividades de administración de la configuración del software. Objetivo 2 Se identifican, controlan y hacen disponibles productos de trabajo de software seleccionados. Objetivo 3 Se controlan los cambios a productos de trabajo de software identificados. Objetivo 4 Los grupos e individuos afectados reciben información sobre el estado y el contenido de las bases del software. Compromiso para el Desempeño Compromiso 1 El proyecto sigue una política organizacional escrita para implementar la administración de la configuración del software (SCM). Esta política típicamente especifica que: 1. La responsabilidad para la SCM de cada proyecto se asigna explícitamente. 2. La SCM se implementa durante todo el ciclo de vida del proyecto. 3. La SCM se implementa para productos de software que se van a entregar externamente, para productos de trabajo de software internos designados, y para herramientas de soporte designadas usadas dentro del proyecto (por ejemplo, compiladores). 4. Los proyectos establecen o tienen acceso a un repositorio para almacenar temas/unidades de configuración y los registros SCM asociados. Los contenidos de este repositorio se conocen como “biblioteca base del software” en estas prácticas. Las herramientas y procedimientos para acceder a este repositorio se conocen como “sistema de biblioteca de administración de la configuración” en estas prácticas. Los productos de trabajo que están ubicados bajo la administración de la configuración se tratan como una entidad simple se conocen como ítems de configuración. Los ítems de configuración típicamente se descomponen en componentes de configuración, y los componentes de configuración típicamente se descomponen en unidades. En un sistema de hardware/software, todo el software puede considerarse como un solo ítem de configuración, o puede ser descompuesto en varios ítems de configuración. En estas prácticas el término “ítems/unidades de configuración” se usa para referirse a los elementos bajo la administración de la configuración. 5. Las bases del software y las actividades de SCM se auditan periódicamente. Capacidad para Desempeñarse Capacidad 1 Existe o se establece un panel que tiene la autoridad para administrar las bases del software del proyecto (o sea, un panel de control de la configuración del software – SCCB) El SCCB: 1. Autoriza el establecimiento de las bases del software y la identificación de los ítems/unidades de configuración. 2. Representa los intereses del administrador del proyecto y de todos los grupos que pueden verse afectados por cambios en las bases del software. Ejemplos de grupos afectados incluyen: Garantía de la calidad del hardware, Administración de la configuración del hardware, Ingeniería del hardware, Ingeniería de fábrica, Ingeniería del software (incluyendo todos los subgrupos, como ser diseño del software), Ingeniería de sistemas, Prueba de sistemas, Garantía de la calidad del software, Administración de la configuración del software, Administración del contrato, y Soporte de documentación. 3. Revisa y autoriza cambios a las bases del software. 4. Autoriza la creación de productos a partir de la biblioteca base del software. Capacidad 2 Existe un grupo que es responsable de coordinar e implementar la SCM para el proyecto (o sea, el grupo SCM). Un grupo es el conjunto de departamentos, administradores e individuos que tienen la responsabilidad de un conjunto de tareas o actividades. Un grupo puede variar desde un único individuo con dedicación parcial, pasando por varios individuos asignados de diferentes departamentos, hasta varios individuos con dedicación “full-time”. Las consideraciones al implementar un grupo incluyen las tareas o actividades asignadas, el tamaño del proyecto, la estructura organizacional, y la cultura organizacional. Algunos grupos, como el grupo de garantía de la calidad del software, se enfocan en las actividades del proyecto, y otros, como el grupo de proceso de ingeniería del software, se enfocan en actividades que abarcan toda la organización. El grupo SCM coordina o implementa: 1. La creación y administración de la biblioteca base de software del proyecto. 2. El desarrollo, mantenimiento y distribución de los planes, estándares y procedimientos de la SCM. 3. La identificación de un conjunto de productos de trabajo a ubicar bajo el accionar de la SCM. Un producto de trabajo es cualquier artefacto que surja de definir, mantener o usar un proceso de software. 4. 5. 6. 7. 8. La administración del acceso a la biblioteca base del software. Las actualizaciones a las bases del software. La creación de productos a partir de la biblioteca base del software. El registro de las acciones de la SCM. La producción y distribución de informes de la SCM. Capacidad 3 Se proporcionan recursos y financiación adecuados para llevar a cabo las actividades de la SCM. 1. Se asignan responsabilidades específicas para la SCM a un administrador o manager. 2. Se ponen a disposición herramientas para soportar las actividades de la SCM. Ejemplos de herramientas de soporte incluyen: Worksatations, Programas de bases de datos, y Herramientas de administración de la configuración. Capacidad 4 Los integrantes del grupo SCM se entrenan en los objetivos, procedimientos y métodos para realizar sus tareas en el marco de la SCM. Ejemplos de entrenamiento incluyen: Estándares, procedimientos y métodos de la SCM, y Herramientas de la SCM. Capacidad 5 Los integrantes del grupo de ingeniería del software y otros grupos relacionados con el software se entrenan para realizar sus actividades SCM. Ejemplos de otros grupos relacionados con el software incluyen: Garantía de la calidad del software, y Soporte de documentación. Ejemplos de entrenamiento incluyen: Los estándares, procedimientos y métodos a seguir para las actividades de la SCM llevadas a cabo dentro del grupo de ingeniería del software y en otros grupos relacionados con el software; y El rol, las responsabilidades y la autoridad del grupo SCM. Actividades Realizadas Actividad 1 Se prepara un plan SCM para cada proyecto de software de acuerdo a un procedimiento documentado. Este procedimiento típicamente especifica que: 1. El plan SCM se desarrolla en las etapas tempranas y de manera paralela al planeamiento general del proyecto. 2. El plan SCM es revisado por los grupos afectados. 3. El plan SCM se administra y controla. “Se administra y controla” implica que la versión del producto de trabajo en uso en un momento dado (pasado o presente) es conocida (o sea, control de versión) y que los cambios se incorporan de una manera controlada (o sea, control de cambios). Si se desea un mayor grado de control que el que implica “administrado y controlado”, el producto de trabajo puede colocarse bajo la disciplina completa de la administración de la configuración, según se describe en el área clave de proceso Administración de la Configuración de Software. Actividad 2 Se usa un plan de SCM aprobado y documentado como la base para llevar a cabo las actividades da la SCM. El plan cubre: 1. Las actividades de la SCM a realizar, el cronograma de actividades, las responsabilidades asignadas, y los recursos requeridos (incluyendo personal, herramientas y facilidades de computadoras) 2. Los requerimientos y actividades de la SCM a ser realizadas por el grupo de ingeniería del software y por otros grupos relacionados con el software. Actividad 3 Se establece un sistema de biblioteca de administración de la configuración como repositorio para las bases del software. El sistema de biblioteca: 1. Soporta varios niveles de control de la SCM. Ejemplos de situaciones que conducen a diversos niveles de control incluyen: Diferencias en los niveles de control necesarios en diferentes etapas del ciclo de vida (por ejemplo, un control más estricto a medida que el producto madura), Diferencias en los niveles de control necesarios para los sistemas sólo de software contra los sistemas que incluyen software y hardware. 2. Hace posible el almacenamiento y la recuperación de ítems/unidades. 3. Hace que se puedan compartir y transferir los ítems/unidades de configuración entre los grupos afectados y entre niveles de control dentro de la biblioteca. 4. Ayuda en el uso de estándares de productos para ítems/unidades de configuración. 5. Hace posible el almacenamiento y la recuperación de versiones de archivos de ítems/unidades de configuración. 6. Ayuda a asegurar la creación correcta de productos a partir de la biblioteca base. 7. Hace posible el almacenamiento, la actualización y la recuperación de registros SCM. 8. Soporta la producción de informes de la SCM. 9. Hace posible el mantenimiento de la estructura de la biblioteca y sus contenidos. Ejemplos de funciones de mantenimiento de la biblioteca incluyen: Hacer backup / recuperar los archivos de la biblioteca, y Recuperar de los errores de la biblioteca. Actividad 4 Se identifican los productos de trabajo de software a ubicar bajo la administración de la configuración. 1. Se seleccionan los ítems/unidades de configuración basándose en criterios documentados. Ejemplos de productos de trabajo de software que pueden identificarse como ítems/unidades de configuración incluyen: Documentación relacionada con el proceso (por ejemplo, planes, estándares o procedimientos), Requerimientos de software, Diseño de software, Unidades de código de software, Procedimientos de prueba de software, Construcción de un sistema de software para la actividad de prueba del software, Construcción de un sistema de software para la entrega al cliente o a los usuarios finales, Compiladores, y Otras herramientas de soporte. 2. Se asignan identificadores únicos a los ítems/unidades de configuración. 3. Se especifican las características de cada ítem/unidad de configuración. 4. Se especifican las bases de software a las que pertenece cada ítem/unidad de configuración. 5. Se especifica el punto de desarrollo en el que se ubica cada ítem/unidad de configuración en la administración de la configuración. 6. Se identifica la persona responsable para cada ítem/unidad de configuración (o sea, el dueño, desde el punto de vista de la administración de la configuración) Actividad 5 Se inician, registran, revisan, aprueban y siguen las solicitudes de cambios y los informes de problemas para todos los ítems/unidades de configuración de acuerdo a un procedimiento documentado. Actividad 6 Se controlan los cambios a las bases de acuerdo a un procedimiento documentado. Este procedimiento típicamente especifica que: 1. Se realizan revisiones y/o pruebas de regresión para asegurar que los cambios no han causado efectos no buscados en la base. 2. Sólo los ítems/unidades de configuración que han sido aprobados por el SCCB se ingresan a la biblioteca base del software. 3. Los ítems/unidades de configuración se ingresan y retiran de una manera que mantenga la corrección e integridad de la biblioteca base del software. Ejemplos de pasos de ingreso/retiro incluyen: Verificar que las revisiones estén autorizadas, Crear un log. de cambios, Mantener una copia de los cambios, Actualizar la biblioteca base del software, y Archivar la base de software reemplazada. Actividad 7 Se crean productos a partir de la biblioteca base del software y se controla su edición, de acuerdo a un procedimiento documentado. Este procedimiento típicamente especifica que: 1. El SCCB autoriza la creación de productos a partir de la biblioteca base del software. 2. Los productos a partir de la biblioteca base del software, tanto para uso interno como externo, se construyen sólo a partir de ítems/unidades de configuración en la biblioteca base de software. Actividad 8 Se registra el estado de los ítems/unidades de configuración de acuerdo a un procedimiento documentado. Este procedimiento típicamente especifica que: 1. Las acciones de administración de la configuración se registran con detalle suficiente de manera que el contenido y el estado de cada ítem/unidad de configuración son conocidos y se pueden recuperar versiones anteriores. 2. Se mantiene el estado actual y la historia (o sea, cambios y otras acciones) de cada ítem/unidad de configuración. Actividad 9 Se desarrollan informes estándar que documentan las actividades de la SCM y los contenidos de la base del software, y se ponen a disposición de los grupos e individuos afectados. Ejemplos de informes incluyen: Actas de reuniones del SCCB, Estado y resumen de las solicitudes de cambios, Estado y resumen de los informes de problemas (incluyendo reparaciones), Resumen de los cambios hechos a las bases del software, Historia de revisiones de los ítems/unidades de configuración Estado de la base del software, y Resultados de las auditorías de la base del software. Actividad 10 Se conducen auditorías de la base del software de acuerdo a un procedimiento documentado. Este procedimiento típicamente especifica que: 1. Hay una preparación adecuada para la auditoría. 2. Se evalúa la integridad de las bases del software. 3. Se revisan la estructura y las facilidades del sistema de biblioteca de administración de la configuración. 4. Se verifica que los contenidos de la biblioteca base del software estén completos y sean correctos. 5. Se verifica que se cumplan los estándares y procedimientos aplicables de la SCM. 6. Se informan los resultados de la auditoría al administrador de software del proyecto. 7. Se siguen los temas de acción que surjan de la auditoría hasta su cierre. Mediciones y Análisis Medición 1 Se hacen y usan mediciones para determinar el estado de las actividades de la SCM. Ejemplos de mediciones incluyen: Cantidad de solicitudes de cambios procesadas por unidad de tiempo; Completado de puntos importantes para las actividades de la SCM en comparación con el plan; y Trabajo completado, esfuerzo realizado y fondos usados en las actividades de la SCM. Verificación de la Implementación Verificación 1 Las actividades de la SCM se revisan periódicamente con la administración senior. El propósito primario de las revisiones periódicas por parte de la administración senior es proporcionar consciencia y conocimiento sobre las actividades del proceso de software en un nivel apropiado de abstracción y con prontitud. El tiempo transcurrido entre las revisiones debe satisfacer las necesidades de la organización y puede ser largo, siempre y cuando haya mecanismos adecuados para informar excepciones. Referirse a la Verificación 1 del área clave de proceso Seguimiento y Vista General del Proyecto de Software para prácticas que cubran los contenidos típicos de las revisiones generales de la administración senior. Verificación 2 Las actividades SCM se revisan con el administrador del proyecto de manera periódica y dependiendo de los eventos. Referirse a la Verificación 2 del área clave de proceso Seguimiento y Vista General del Proyecto de Software para prácticas que cubran los contenidos típicos de las revisiones generales de la administración del proyecto. Verificación 3 El grupo SCM audita periódicamente las bases del software para verificar que estén de acuerdo con la documentación que las define. Verificación 4 El grupo de garantía de la calidad del software revisa y/o audita las actividades y los productos de trabajo para la SCM e informa los resultados. Referirse al área clave de proceso Garantía de la Calidad del Software. Como mínimo, las revisiones y/o auditorías verifican: 1. Que los siguientes grupos cumplan los estándares y procedimientos de la SCM: El grupo SCM, El SCCB, El grupo de ingeniería del software, y Otros grupos relacionados con el software. 2. La ocurrencia de auditorías periódicas de las bases del software.