Actividad 13. Calendarizaci贸n de proyectos de software. M.C. Juan Carlos Olivares Rojas Syllabus jcolivares@itesm.edu.mx May, 2009
Introducción
• En la construcción de un sistema complejo muchas tareas de ingeniería de software que dicta el modelo de proceso de software se refinan para la funcionalidad que se construirá. • A cada tarea se le asignan esfuerzo y duración y se crea una red de tareas (también llamada “red de actividad”) de tal forma que permita al equipo de software cumplir con la fecha límite de entrega establecida.
Introducción
• Al igual que otras áreas de ingeniería del software, varios principios básicos guían la calendarización de los proyectos: • Compartimentación. El proyecto debe dividirse en compartimientos en varias actividades, acciones y tareas manejables. Interdependencia. Algunas tareas deben ocurrir en secuencia mientras que otras pueden ocurrir en paralelo.
Introducción
• Asignación de tiempo. A cada tarea por calendarizar se le debe asignar cierto número de unidades de trabajo (por ejemplo, personasdía de esfuerzo). • Validación del esfuerzo. Todo proyecto tiene un número definido de personas en el equipo de software. • Definición de responsabilidades. Toda tarea calendarizada se le debe asignar a un miembro
Introducción
• Definición de resultados. Toda tarea calendarizada debe tener un resultado definido. En proyectos de software el resultado es un producto de trabajo (por ejemplo, el diseño de un módulo). • Definición de hitos. Cualquier tarea o grupo de tareas debe estar asociado con un hito del proyecto. Un hito se logra cuando se ha revisado la calidad de uno o más productos de trabajo y se han aprobado.
Introducción
• Existe un mito común que todavía creen muchos administradores de proyecto, responsables del esfuerzo de desarrollo del software: “si nos retrasamos en la calendarización, siempre podemos incorporar más programadores y recuperarnos más adelante en el proyecto”. Desgraciadamente, agregar más personas en etapas tardías de un proyecto con frecuencia tiene un efecto perturbador sobre éste, lo que provoca que la calendarización se desfase aún más.
Introducción
• El desarrollo de una calendarización del proyecto requiere distribuir un conjunto de tareas a lo largo de la línea de tiempo del proyecto. • El conjunto de tareas variará según el tipo de proyecto y el grado de rigor con el que el equipo de software decide realizar su trabajo.
Introducción
• Las tareas y subtareas individuales tienen interdependencias basadas en su secuencia. Además, cuando más de una persona está involucrada en un proyecto de ingeniería del software, es probable que las actividades y tareas de desarrollo se realicen en paralelo. • Una red de tareas, también denominada red de actividad, es una representación gráfica del flujo de tareas en un proyecto.
Introducción
• La calendarización de un proyecto de software no difiere enormemente de la de cualquier esfuerzo de ingeniería multitarea. En consecuencia, las técnicas y herramientas generalizadas de calendarización de proyecto se pueden aplicar, poco modificadas, en proyectos de software.
Introducción
• La técnica de evaluación y revisión de programa (PERT, por sus siglas en inglés) y el método de ruta crítica (CPM, por sus siglas en inglés) son dos métodos de calendarización de proyecto que se pueden aplicar al desarrollo de software. Ambas técnicas ofrecen herramientas cuantitativas que permiten al planificador de software tomar mejores decisiones.
Introducción
• Como consecuencia de algunas técnicas de plnificación, se genera un cronograma, también llamado gráfica de Gantt. Es posible desarrollar una gráfica de Gantt para todo el proyecto. • El análisis del valor ganado es una medida del progreso. Permite valorar el “porcentaje realizado” de un proyecto reempleando el análisis cuantitativo en lugar de apoyarse en una opinión personal.
Referencias
โ ข Curso de Proyecto Integrador de Software Bรกsico, Universidad TecMilenio, 2009
Questions?