viernes, 12 de marzo de 2010

CALENDARIZACION DE PROYECTOS DE SOFTWARE

Es crear  una red de tareas de ingenieria de software que permitan tener el trabajo justo a tiempo, esta red debe tener responsabilidades asignadas, asegurarse que dichas tareas se realizen y adaptar la red conforme los riesgon se tornen en realidad.

Los proyectos de software usualmente se entrega con retraso debido a

Una fecha limite irrealizable  establecida por alguien ajento al grupo de ingenieria

Cambios en los requisitos del cliente que no se reflejan  en modificaciones al calendario

Una subestimacion razonable de la cantidad  de esfuerzo  o de recursos  que se requeriran  para realizar el trabajo

Riesgos predecibles o impredecibles que no se consideraron al iniciar el proyecto

Dificultades tecnicas que no se lograron preveerse

Dificultades humanas imprevisibles

Falta de comunicacion  entre el personal del proyecto

Una falla en la gestion del proyecto

Que se debe hacer con fechas de entrega irrealizables

rechazar el proyecto -NO
ordenar al cliente que cambie la fecha -NO

se debe realizar una estimacion detallada, aplicar un proceso incremental, reunirse con el cliente y explicarle la estimacion detallada y decirle por que la fecha es irrealizable, ofrezca una estrategia de desarrollo incremental  como alternativa.

Existen distintos principos basicos que guian la calendarizacion del proceso

Compartimentacion
Interdependencia
Asignacion de Tiempo
Validacion del esfuerzo
Definicion de responsabilidades
Definicion de resultados
Definicion de hitos

Existe el mito que al agregar personas a un proyecto atrasado este puede finalizarse en el tiempo estimado con exito, esto es muchas veces mentira ya que las nuevas personas primero deben ponerse al corriente y los que previamente estan involucrados deben enseñar a los nuevos, si se desea agregar personas a un proyecto se debe observar que la tarea sea altamente compartimentada.

REGLA 40-20-40

Esta es una regla que usualmente se sigue, en la cual se asigna el 40% del esfuerzo al analisis y diseño de software, el 20% del esfuerzo a la codificacion y el ultimo 40% a la realizacion de preubas del sistema, esta distribucion se utiliza como guia, la distribucion final del proceso la dictan las caracteristicas del proyecto

existen distintos tipos de proyectos de software entre ellos

Proyectos de desarrollo de concepto
Proyectos de desarrollo de nuevas aplicaciones
Proyectos de mejora de aplicacion
Proyectos de mantenimiento de aplicacion
Proyectos de reingenieria

Dependiendo del tipo de proyecto y actividades dentro del proyecto se pueden seleccionar el tipo de tareas que se realizaran

Una red de tarea es una representacion grafico de flujo de tareas del proyecto


Es importante siempre encontrar la ruta critica  estas son las tareas  que se deben  completar la calendarizacion  si el proyecto como un todo se debe completar  a tiempo.

Un cronograma o grafico de Gantt  permite determinar  que tareas se realizan  en un punto de tiempo dado, es posible crear un cronograma general  y luego crerar cronogramas para cada actividad o tarea.

El seguimiento del calendario puede hacerse de diferentes maneras

Realizando reuniones periodicas
Haciendo evaluaciones de los resultados de todas las revisiones realizadas a lo largo del proceso  de ingenieria de software
Determinando si se han logrado los hitos en las fechas establecidas
comprobando la fecha real con la fecha  de inicio prevista para cada actividad