Ingeniería de Software II Segundo Cuatrimestre de 2008 Clase 3b: Planificación y Estimación de Proyectos de Software Buenos Aires, 28 de Agosto de 2008 © Cátedra de Ingeniería de Software II – FCEN – UBA, 2008 Sobre el Gerenciamiento - Funciones Gerenciamiento “Staffing” Planificar Organizar Controlar Liderar ¿Qué es planificar? Predeterminar un curso de acción para cumplir objetivos 2 © Cátedra de Ingeniería de Software II – FCEN – UBA, 2008 Puntos clave: identificación de “Stakeholders” Debo identificar claramente: Para quién desarrollaré el producto Quién pagará el producto Quién usará el producto Quién es un factor de decisión esencial para el éxito del producto Quién tiene el know-how Quién y cómo se aceptará el producto Algunos “stakeholders” clave Sponsor Líder usuario (Product Champion) Usuarios directos e indirectos 3 © Cátedra de Ingeniería de Software II – FCEN – UBA, 2008 Determinación de Factores Críticos Distintos objetivos compiten “Puede ser bueno, lo puedo entregar rápido, puede ser barato. Elija dos” En general, podemos hablar de cinco dimensiones de la calidad en un proyecto de software: Funcionalidad Calidad Recursos Costo Plazo Cada una puede ser driver, restricción, grado de libertad 4 © Cátedra de Ingeniería de Software II – FCEN – UBA, 2008 Representación con diagramas de flexibilidad Sistema de información interno Aplicación comercial competitiva “Quality Driven” Fuente: Karl Wiegers, Creating a Software Engineering Culture. Dorset House, 1996. 5 © Cátedra de Ingeniería de Software II – FCEN – UBA, 2008 Identificación Preliminar de Requerimientos Además de los factores críticos, necesitamos un entendimiento inicial del alcance y los requerimientos (si queremos tener un plan) Esto incluye tanto los requerimientos funcionales como atributos de calidad (“ilities”) Son el input para muchas tareas de planificación Inicialmente se usan para la estimación 6 © Cátedra de Ingeniería de Software II – FCEN – UBA, 2008 Estimaciones - ¿Qué hay que estimar? Tamaño: ¿Qué tan grande es lo que tenemos que hacer? Esfuerzo: ¿Cuántas horas / persona son necesarias para construirlo? Costo: ¿Cuánto gastaremos en hacerlo? Esta es la secuencia natural de estimación, aunque en muchos casos se comienza por el esfuerzo. Esfuerzo Cronograma Tamaño Costo 7 © Cátedra de Ingeniería de Software II – FCEN – UBA, 2008 ¿Cómo se suele estimar? Para tamaño se suelen usar líneas de código u otras mediciones del tipo “puntos” (de función, de caso de uso) Luego se ajustan por distintos factores Para esfuerzo se multiplica la estimación de tamaño por un “factor de productividad” E (Hs persona) = T (MT) * P (Hs Persona/MT) El costo está principalmente compuesto por horas. El resto de los costos es relativamente fácil de estimar Vamos a ver más detalles en la clase sobre métodos de estimación 8 © Cátedra de Ingeniería de Software II – FCEN – UBA, 2008 Problemas recurrentes en las estimaciones Somos generalmente optimistas. No recordamos todas las experiencias pasadas. Omitimos tareas importantes que luego no hacemos por falta de tiempo comprometiendo la calidad, o las hacemos comprometiendo el cronograma En vez de estimaciones, tenemos objetivos (“esto tiene que estar listo para Junio”) 9 © Cátedra de Ingeniería de Software II – FCEN – UBA, 2008 ¡Porque no se puede! Existen pocos datos para poder estimar. No vale la pena, es imposible o inutil estimar En software siempre puedo estimar con un cierto nivel de incertidumbre... a partir de la experiencia anterior (mi experiencia, casos similares, métricas de mi empresa, otras empresas…) y usar eso como base para trabajar. 10 © Cátedra de Ingeniería de Software II – FCEN – UBA, 2008 Incertidumbre de la Estimación (waterfall) 4x 2x x etapas Entrega 1/2 x 1/4 x Codificación Diseño Requerimientos Factibilidad Fuente: Software Estimating Technology: A survey. Richard Stutzke. 11 © Cátedra de Ingeniería de Software II – FCEN – UBA, 2008 El ciclo dorado de la estimación Estimo Mido Calibro Analizo Registro Comparo 12 © Cátedra de Ingeniería de Software II – FCEN – UBA, 2008 ¿Por qué estimamos mal? Algo estamos haciendo mal... La toma de requerimientos es pobre No sabemos cómo estimar La estimación la hace marketing, o ventas, o … No conocemos la tecnología, el dominio, o ninguna de las dos cosas No reconocemos las diferencias de escala Y también confudimos Esfuerzo y tiempo (en la planificación) Tiempo, esfuerzo y progreso (en la ejecución) 13 © Cátedra de Ingeniería de Software II – FCEN – UBA, 2008 ¿Qué cosas afectan el tamaño del software? Cantidad y complejidad de las funcionalidades Cantidad y complejidad de los datos Factores Adicionales: Atributos de calidad Novedad Tecnologías a utilizar Restricciones Etc... 14 © Cátedra de Ingeniería de Software II – FCEN – UBA, 2008 Una clasificación de métodos Empíricos: Opinión de experto u “Ojo de buen cubero”. Opiniones basadas en experiencias personales. Opiniones basadas en comparación con proyectos anteriores de similares características (analogía). Descomposición. (1) Descomponer, (2) Estimar cada parte, (3) Sumar, ajustar y contar el costo de las uniones. Métodos Algorítmicos. Usar un algoritmo que toma datos del sistema (e.g. funcionalidades, pantallas, inputs...) y factores de ajuste por complejidad y devuelve un número. Combinaciones de los anteriores. 15 © Cátedra de Ingeniería de Software II – FCEN – UBA, 2008 Método de Clark Dividir al sistema en módulos Estimar para cada módulo tres valores Optimista (O): el menor tamaño / esfuerzo imaginable Pesimista (P): el mayor tamaño / esfuerzo imaginable Valor “medio” (M) Calcular el estimado... Estimado = ( O + 4 M + P) / 6 16 © Cátedra de Ingeniería de Software II – FCEN – UBA, 2008 Wideband Delphi Desarrollado por Rand Corporation, a fines de los ’40 Aprovecha la experiencia de los expertos y elimina el sesgo producido por el optimismo de algunos de los expertos 17 © Cátedra de Ingeniería de Software II – FCEN – UBA, 2008 Wideband Delphi (versión “full”) Planificación Reunión de Lanzamiento Preparación Individual Reunión de Estimación Ensamblado de Tareas Revisión de Resultados Participantes: - Moderador - Gerente del Proyecto Actividades - Definir el alcance de la especificación a estimar - Juntar la información disponible para la estimación - Se seleccionan de 2 a 4 estimadores adicionales al moderador para participar del proceso 18 © Cátedra de Ingeniería de Software II – FCEN – UBA, 2008 Wideband Delphi (versión “full”) Planificación Reunión de Lanzamiento Preparación Individual Reunión de Estimación Ensamblado de Tareas Revisión de Resultados Participantes: - Moderador - Gerente del Proyecto - Estimadores Actividades - Se expone la técnica a los estimadores que no la conocen. - Se exhibe la información disponible sobre el problema: especificación, restricciones, condiciones de contexto, etc. - Se definen los objetivos de la estimación. - Se revisan los requerimientos y se evalúa si los estimadores son idóneos para el dominio de problema a estimar. 19 © Cátedra de Ingeniería de Software II – FCEN – UBA, 2008 Wideband Delphi (versión “full”) Planificación Reunión de Lanzamiento Preparación Individual Reunión de Estimación Ensamblado de Tareas Revisión de Resultados Participantes: - Estimadores Actividades - Cada estimador construye una lista de las tareas / módulos. - Se asocia la estimación a cada una de ellas. 20 © Cátedra de Ingeniería de Software II – FCEN – UBA, 2008 Wideband Delphi (versión “full”) Planificación Reunión de Lanzamiento Preparación Individual Reunión de Estimación Ensamblado de Tareas Revisión de Resultados Participantes: - Moderador - Estimadores Actividades - Se recolectan las estimaciones individuales y se colocan sobre un gráfico. No se debe indicar quién hizo cada estimación (!). 21 © Cátedra de Ingeniería de Software II – FCEN – UBA, 2008 Wideband Delphi (versión “full”) Planificación Reunión de Lanzamiento Preparación Individual Reunión de Estimación Ensamblado de Tareas Revisión de Resultados 22 © Cátedra de Ingeniería de Software II – FCEN – UBA, 2008 Wideband Delphi (versión “full”) Planificación Reunión de Lanzamiento Preparación Individual Reunión de Estimación Ensamblado de Tareas Revisión de Resultados 23 © Cátedra de Ingeniería de Software II – FCEN – UBA, 2008 Wideband Delphi (versión “full”) Planificación Reunión de Lanzamiento Preparación Individual Reunión de Estimación Ensamblado de Tareas Revisión de Resultados Actividades - Continúo en este proceso hasta que: - El desvío es aceptable. - Se acabó el tiempo de la reunión (aprox. 2 hrs.) - No hay cambios entre iteraciones. - Los estimadores en este momento se sienten seguros de la estimación más allá de las diferencias... 24 © Cátedra de Ingeniería de Software II – FCEN – UBA, 2008 Wideband Delphi (versión “full”) Planificación Reunión de Lanzamiento Preparación Individual Reunión de Estimación Ensamblado de Tareas Revisión de Resultados Participantes: - Gerente del Proyecto - Moderador Actividades - Se crea una lista maestra de tareas asociando a cada una cada una de las estimaciones. 25 © Cátedra de Ingeniería de Software II – FCEN – UBA, 2008 Wideband Delphi (versión “full”) Planificación Reunión de Lanzamiento Preparación Individual Reunión de Estimación Ensamblado de Tareas Revisión de Resultados Participantes: - Gerente del Proyecto - Moderador - Estimadores Actividades - Se revisa la lista de tareas y se llega a un acuerdo acerca de su composición. 26 © Cátedra de Ingeniería de Software II – FCEN – UBA, 2008 Los Puntos de Función Método creado por Allan Albrecht en 1977 (IBM) Es un método de estimación algorítmico para el tamaño Muy usado (en alguna de sus variantes). Grupo de usuarios IFPUG activo “Puntos de función” = el tamaño es un puntaje dependiente de las funcionalidades y algunas características generales del proyecto y el sistema Hay “números mágicos” que permiten llevar los puntos de función a líneas de código o esfuerzo 27 © Cátedra de Ingeniería de Software II – FCEN – UBA, 2008 Método Identificar (“contar”) los componentes del Sistema Calcular el valor funcional sin ajustar Ajustarlo según ciertas características de la aplicación Aplicar un factor de productividad para calcular el esfuerzo 28 © Cátedra de Ingeniería de Software II – FCEN – UBA, 2008 Las componentes del sistema a contar Dos preguntas molestas ¿Qué está dentro del sistema? ¿Qué está fuera del sistema? Factores a “contar” Entradas Externas Salidas Externas Consultas Externas Archivos Lógicos Internos Archivos de Interfaz Externos 29 © Cátedra de Ingeniería de Software II – FCEN – UBA, 2008 Complejidad para Entradas Externas “Archivos” referenciados Items de Datos <5 5-15 16+ <2 Simple Simple Mediano 2-3 Simple Mediano Complejo 4+ Mediano Complejo Complejo 30 © Cátedra de Ingeniería de Software II – FCEN – UBA, 2008 Complejidad para Salidas y Consultas Externas “Archivos” referenciados Items de Datos <6 6-19 20+ <2 Simple Simple Mediano 2-3 Simple Mediano Complejo 4+ Mediano Complejo Complejo 31 © Cátedra de Ingeniería de Software II – FCEN – UBA, 2008 Complejidad para Archivos Internos y Archivos de Interfaz Archivos referenciados Items de Datos <20 20-50 51+ 1 Simple Simple Mediano 2-5 Simple Mediano Complejo 6+ Mediano Complejo Complejo 32 © Cátedra de Ingeniería de Software II – FCEN – UBA, 2008 Tabla de Cálculo del Valor Funcional (Sin ajustar) Componente Entrada Externa Salida Externa Consultas Externas Archivos Lógicos Internos Archivos de Interfaces Ext Simple __ x 3=__ __ x 4=__ __ x 7=__ __ x 5=__ __ x 3=__ Complejidad Mediana Compleja Tot. __ x 4=__ __ x 6=__ __ x 5=__ __ x 7=__ __ x 10=__ __ x 15=__ __ x 7=__ __ x 10=__ __ x 4=__ __ x 6=__ Total PF Brutos: 33 © Cátedra de Ingeniería de Software II – FCEN – UBA, 2008 Factores de Complejidad 1. 2. 3. 4. 5. 6. 7. ¿La información y el control, usan comunicaciones? ¿El procesamiento distribuido es una característica de la aplicación? ¿La aplicación tiene objetivos de performance? ¿La aplicación va a correr sobre un entorno muy usado? ¿La frecuencia de transacciones es alta e influye sobre el diseño y la implementación? ¿Hay entrada de datos on line? ¿Es importante la eficiencia en las entradas on line? 34 © Cátedra de Ingeniería de Software II – FCEN – UBA, 2008 Factores de Complejidad (2) 8. 9. 10. 11. 12. 13. 14. ¿Los archivos internos se actualizan on line? ¿El procesamiento complejo es una característica de la aplicación? ¿La aplicación será construida pensando en la reusabilidad de sus componentes? ¿Es un requerimiento que la conversión de datos y la instalación sean simples? ¿La facilidad de operación es un requerimiento de la aplicación? ¿La aplicación será instalada en múltiples sitios? ¿La aplicación será desarrollada para facilitar sus cambios? 35 © Cátedra de Ingeniería de Software II – FCEN – UBA, 2008 Cálculo de puntos de función ajustados Se asigna a los factores de complejidad un peso, entre 0 y5 0 = no está presente 5 = tiene un alto impacto en el proyecto Se calculan los puntos de función ajustados: PFA = Puntos de función sin ajustar * [0.65 + 0.01 * suma de nivel de influencia] Máxima influencia: 1.35 (0.65+0.7) Mínima influencia: 0.65 36 © Cátedra de Ingeniería de Software II – FCEN – UBA, 2008 Esfuerzo (que ya sabemos que no es tiempo) No existe una forma única de asociar PF a horas hombre. Regla Genérica: 1PF = 8 HH Usar el “language level” de Capers Jones 4-8 10 to 20 Function Points per staff month 9 - 15 16 to 23 Function Points per staff month 16 - 23 15 to 30 Function Points per staff month 24 - 55 30 to 50 Function Points per staff month Above 55 40 to 100 Function Points 1st Generation Default. LL: 1.00 LOC: 320 2nd Generation Default. LL: 3.00 LOC: 107 3rd Generation Default. LL: 4.00 LOC: 80 4th Generation Default. LL: 16.00 LOC: 20 Java. LL: 6, LOC: 53 1PF = 9 HH Staff Month = 136 horas por mes 37 © Cátedra de Ingeniería de Software II – FCEN – UBA, 2008 ¿Para qué puede usarse? Para estimar un proyecto, en cualquier momento del desarrollo (inclusive muy temprano) Para medir productividad Para monitorear “outsourcing” Para medir los cambios Para normalizar otras medidas defecto, precio ... 38 © Cátedra de Ingeniería de Software II – FCEN – UBA, 2008 A favor Basado en una visión externa “Sencillo” de aplicar Puede ser entendido por usuarios no técnicos Independiente del ambiente de desarrollo Puede hacerse una estimación temprana Hay registros históricos de su uso 39 © Cátedra de Ingeniería de Software II – FCEN – UBA, 2008 En contra – Ejemplo de MARK II La clasificación en 3 categorías es muy simplificada Las estimaciones son bajas si los algoritmos son complejos La selección de pesos es empírica Propuesta: Symons, MARK II: PF = 0.44 * Cantidad de elementos de datos de input + 1.67 * Cantidad de referencias a entidades + 0.38 * cantidad de elementos de datos de salidas Fuente: Charles Symons, Software Sizing and Estimating: MKII FPA. Wiley & Sons, 1991 40 © Cátedra de Ingeniería de Software II – FCEN – UBA, 2008 Ejemplo Mark II Tipo de Transacción Agregar Cliente Datos Entidades Input Referenciadas 53 Cliente Consultar Stock 2 Procesar Cabecera pedido Procesar item de orden 20 Cancelar orden 2 Reporte de Stock por tienda y producto Total 1 6 84 Total 1 Producto, local, Stock 3 Cliente, orden Despacho 3 Orden, despacho, stock item, producto, local 6 Cliente, orden, item, producto 4 Local, producto, stock 3 20 Datos Output 3 10 40 14 15 21 103 41 © Cátedra de Ingeniería de Software II – FCEN – UBA, 2008 Use Case Points Basada en especificaciones con casos de uso Unadjusted Actor Weight (UAW) = Actores * Peso Unadjusted Use Case Weight (UUCW) = Casos de Uso * Peso Unadjusted Use Case Points (UUCP) = UAW + UUCW Use Case Points (UCP) = UUCP*TCF*ECF TCF-Technical Complexity Factor ECF-Environmental Complexity Factor Estimación total (horas persona) = UCP * Factor de Productividad (Horas Persona por Punto de Caso de Uso) Factor de productividad típico: 20 Fuente: http://www.geocities.com/shiv_koirala/fp/usecasepoints.html 42 © Cátedra de Ingeniería de Software II – FCEN – UBA, 2008 Peso de los Casos de Uso Tipo de Caso de Uso Descripción Peso Simple Una interfaz de usuario simple que toca una única entidad de base de datos. Su escenario exitoso tiene 3 pasos o menos; su implementación implica menos de 5 clases 5 Promedio Más diseño de interfaz y toca 2 o más 10 entidades de base de datos. Su implementación implica 5 a 10 clases Complejo Interfaz de usuario compleja. Toca 3 o más entidades de base de datos. Tiene más de 7 pasos. Su implementación involucra más de 10 clases. 15 43 © Cátedra de Ingeniería de Software II – FCEN – UBA, 2008 Peso de los actores Tipo de Actor Descripción Peso Simple El actor representa otro sistema con una API definida 1 Promedio El actor representa otro sistema interactuando por un protocolo 2 Complejo El actor es una persona interactuando por una interfaz 3 44 © Cátedra de Ingeniería de Software II – FCEN – UBA, 2008 Factores técnicos Factor Descripción Peso T1 Distributed System 2 T2 Response time 1 T3 End user efficiency (online) 1 T4 Complex internal processing 1 T5 Code must be re-usable 1 T6 Easy to install 0,5 T7 Easy to use 0,5 T8 Portable 2 T9 Easy to change 1 T10 Concurrent 1 T11 Include special security features 1 T12 Provide direct access for third parties 1 T13 Special user training facilities are required 1 A cada ítem se le asigna un valor de entre 0 a 5 y se multiplica por el peso Technical Complexity Factors: TCF=0.6+ (0.01*TFactor) 45 © Cátedra de Ingeniería de Software II – FCEN – UBA, 2008 Factores Ambientales Factor Descripción Peso E1 Familiar with Rational Unified Process 1,5 E2 Application experience 0,5 E3 Object-oriented experience 1 E4 Lead analyst capability 0,5 E5 Motivation 1 E6 Stable requirements 2 E7 Part-time workers Difficult programming language -1 E8 -1 A cada ítem se le asigna un valor de entre 0 a 5 y se multiplica por el peso Environmental Complexity Factors: ECF= 1.4+ (-0.03 * EFactor) 46 © Cátedra de Ingeniería de Software II – FCEN – UBA, 2008 Métodos algorítmicos “caseros” Se pueden hacer variaciones sobre métodos existentes O nuevos métodos Con características similares Especializados para el dominio o la tecnología en particular Ejemplo: factores técnicos y ambientales “customizados” a una organización en particular 47 © Cátedra de Ingeniería de Software II – FCEN – UBA, 2008 Lo importante Hay varios métodos posibles, sencillos o complejos. No adoptar un método porque sí. Recopilar información sobre proyectos anteriores. Usar y adaptar los métodos a la organización. Seguir el Ciclo Dorado. Los métodos iterativos facilitan la traducción a duración de proyectos (“curva de staffing plana”) 48 © Cátedra de Ingeniería de Software II – FCEN – UBA, 2008 Work Breakdown Structures (WBS) En muchos casos, el primer paso del armado de un cronograma Segrega el proyecto o el producto en pedazos o partes más pequeñas y manejables, hasta el nivel en que será ejecutado el control. Método: Definir el propósito del WBS Identificar el nodo raíz (nombre del proyecto/producto) Dividir cada componente en subcomponentes (hasta 7 +/- 2 elementos) Continuar la división hasta que se cumpla con el objetivo (ej: poder estimar o asignar tareas) Desarrollar un diccionario 49 © Cátedra de Ingeniería de Software II – FCEN – UBA, 2008 Tipos de WBS – De Proceso WBS de proceso La raíz identifica el nombre del proyecto El segundo nivel identifica elementos mayores Planificación, organización, análisis de requerimientos, diseño, iteraciones, etc Partición de un proceso en subprocesos hasta obtener tareas individuales (1 o 2 personas) a desarrollar en poco tiempo (1 a 2 semanas) 50 © Cátedra de Ingeniería de Software II – FCEN – UBA, 2008 Tipos de WBS – De Producto WBS de producto Altamente relacionado con la arquitectura del producto. Identifica componentes e interfaces del producto Identifica hardware, software y datos La raíz identifica el nombre del producto Los otros elementos son ítems discretos e identificables de hardware, software y datos 51 © Cátedra de Ingeniería de Software II – FCEN – UBA, 2008 Tipos de WBS - Híbrida WBS híbrida Combina elementos de los dos tipos anteriores La raíz es un proceso, alternando elementos de proceso y producto La idea es que los procesos producen productos y los subproductos requieren procesos para su desarrollo Utilizado por managers que quieren priorizar la estimación y control precisos de cada elemento de producto 52 © Cátedra de Ingeniería de Software II – FCEN – UBA, 2008 La determinación de dependencias Para poder optimizar la alocación de recursos y la paralelización de tareas es imprescindible conocer con precisión todas las dependencias entre tareas La fecha de comienzo de tareas debe ser dinámicamente establecida en función de sus dependencias Las dependencias pueden ser no sólo de “fin a comienzo” y no sólo entre tareas globales (todas las combinaciones entre fin y comienzo de la tarea predecesora y sucesora son posibles) Se identifican tareas del tipo “hitos” (duración 0), con entregables asociados 54 © Cátedra de Ingeniería de Software II – FCEN – UBA, 2008 La determinación de dependencias (cont.) Se deben considerar e incluir puntos de revisión y ajuste (que suelen generar ciclos de tareas) p.ej.: la ejecución del testing implica ajustes en la codificación. Es esencial considerar no sólo dependencias entre tareas internas al proyecto sino también dependencias con otros proyectos. Para ello, considerar: no sólo proyectos técnicos sino también de negocios no sólo proyectos “propios” sino también proyectos existentes en la organización con impacto en el propio. Al final se agregan dependencias por contención de recursos 55 © Cátedra de Ingeniería de Software II – FCEN – UBA, 2008 Identificación del Camino Crítico El camino crítico es la secuencia de tareas cuyo atraso provoca atrasos en el fin del proyecto Las herramientas las calculan automáticamente Las tareas no críticas tienen un margen (“slack”) más allá del cual se convierten en críticas Por lógica: El mayor esfuerzo en la estimación debe ser puesto sobre las tareas críticas Un análisis del plan para comprimir cronogramas debe comenzar por las tareas críticas Hay 4 tipos de precedencias El “lag” es una duración que afecta la dependencia Ejemplo, la tarea B puede empezar 3 días después de que termine la tarea A A (F,C Lag 3d) B 56 © Cátedra de Ingeniería de Software II – FCEN – UBA, 2008 Diagrama de red tipo PERT o CPM A D H J 1 1 day 4 4 days 8 Mon 8/3/98 Mon 8/3/98 Tue 8/4/98 Fri 8/7/98 Wed 8/12/98 Wed 8/19/98 6 days 10 3 days Thu 8/20/98 Mon 8/24/98 E 5 5 days Wed 8/5/98 Tue 8/11/98 B 2 2 days Mon 8/3/98 Tue 8/4/98 F C 6 4 days Wed 8/5/98 Mon 8/10/98 G I 3 3 days 7 6 days 9 2 days Mon 8/3/98 Wed 8/5/98 Thu 8/6/98 Thu 8/13/98 Fri 8/14/98 Mon 8/17/98 57 © Cátedra de Ingeniería de Software II – FCEN – UBA, 2008 Cronograma o Gráfico de Gantt Gráficos de barras desarrollados por Henry Gantt a principios del siglo XX. Técnica hoy ampliamente usada Muestra tareas con responsables, fechas, secuencia de ejecución y costos directos Sirve fundamentalmente como referencia para la ejecución y control del proyecto. Para presentaciones se suelen usar sólo diagramas de hitos o de componentes de alto nivel, sin incluir la descripción detallada de actividades 58 © Cátedra de Ingeniería de Software II – FCEN – UBA, 2008 Ejemplo de Gráfico GANTT 59 © Cátedra de Ingeniería de Software II – FCEN – UBA, 2008 Otros conceptos Línea de base: versión estable del plan que se usará como base para el seguimiento Programación por valor acumulado: definición de pesos a los entregables de los hitos, para medir avance (no esfuerzo) 60 © Cátedra de Ingeniería de Software II – FCEN – UBA, 2008 El plan de gestión del proyecto Documento consistente y coherente para guiar la ejecución y el control del proyecto, creado por el Gerente del proyecto sobre la base de la documentación que aportan los miembros del equipo y otros interesados en el proyecto Se usa comúnmente el estándar de la IEEE. Hay otros estándares (por ejemplo RUP) Un cronograma no es un plan! 61 © Cátedra de Ingeniería de Software II – FCEN – UBA, 2008 Organización de grupos de programación Grupo del programador jefe de Mills Grupo del programador “cirujano” de Brooks Grupo jerárquico Grupo estilo MSF de Microsoft, sin jerarquía, con separación clara de roles Grupos tipo Scrum – Auto-organizados, sin roles 62 © Cátedra de Ingeniería de Software II – FCEN – UBA, 2008 El entregable “Plan de Proyecto” (estándar IEEE 1058-1998) 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Overview (Clause 1 of the SPMP) 1. Project summary (Subclause 1.1 of the SPMP) 2. Evolution of the SPMP (Subclause 1.2 of the SPMP) References (Clause 2 of the SPMP) Definitions (Clause 3 of the SPMP) Project organization (Clause 4 of the SPMP) 1. External interfaces (Subclause 4.1 of the SPMP) 2. Internal structure (Subclause 4.2 of the SPMP) 3. Roles and responsibilities (Subclause 4.3 of the SPMP) Managerial process plans (Clause 5 of the SPMP) 1. Project start-up plan (Subclause 5.1 of the SPMP) 2. Work plan (Subclause 5.2 of the SPMP) 3. Control plan (Subclause 5.3 of the SPMP) 4. Risk management plan (Subclause 5.4 of the SPMP) 5. Project closeout plan (Subclause 5.5 of the SPMP) Technical process plans (Clause 6 of the SPMP) 1. Process model (Subclause 6.1 of the SPMP) 2. Methods, tools, and techniques (Subclause 6.2 of the SPMP) 3. Infrastructure plan (Subclause 6.3 of the SPMP) 4. Product acceptance plan (Subclause 6.4 of the SPMP) Supporting process plans (Clause 7 of the SPMP) 1. Configuration management plan (Subclause 7.1 of the SPMP) 2. Verification and validation plan (Subclause 7.2 of the SPMP) 3. Documentation plan (Subclause 7.3 of the SPMP) 4. Quality assurance plan (Subclause 7.4 of the SPMP) 5. Reviews and audits plan (Subclause 7.5 of the SPMP) 6. Problem resolution plan (Subclause 7.6 of the SPMP) 7. Subcontractor management plans (Subclause 7.7 of the SPMP) 8. Process improvement plan (Subclause 7.8 of the SPMP) Additional plans (Clause 8 ofthe SPMP) Plan annexes Plan index © Cátedra de Ingeniería de Software II – FCEN – UBA, 2008