Portada » Diseño e Ingeniería » Planificación de Proyectos de Software: Guía completa para la estimación
La gestión de un proyecto de software comienza con la planificación. Antes del inicio, el gestor y el equipo deben estimar el trabajo, los recursos y el tiempo necesarios. Al estimar, miramos hacia el futuro y aceptamos cierto grado de incertidumbre.
La planificación comprende todas las actividades relacionadas con la estimación del dinero, esfuerzo, recursos y tiempo necesarios para construir un sistema o producto de software. Los gestores utilizan información del cliente, de los ingenieros y métricas de proyectos anteriores.
Es crucial estimar antes de construir software, al igual que no construiríamos una casa sin un presupuesto. La mayoría de los sistemas informáticos son más costosos que una casa, por lo que una estimación previa es fundamental.
La estimación comienza con la descripción del ámbito del producto. Sin un ámbito definido, no se puede estimar. Se recomienda usar al menos dos métodos de estimación para verificar los resultados. La complejidad y el riesgo se consideran antes de la estimación final.
Se obtiene una tabla con las tareas, funciones, coste, esfuerzo y tiempo necesarios para cada una.
La certeza absoluta solo se obtiene al finalizar el proyecto. Sin embargo, la experiencia, un enfoque sistemático, datos históricos, múltiples métodos de estimación y el análisis de la complejidad y el riesgo aumentan la precisión.
La estimación requiere experiencia, datos históricos y confianza en las predicciones cuantitativas. El tamaño del proyecto influye en la precisión de la estimación. A mayor tamaño, mayor interdependencia entre elementos del software y, por ende, mayor riesgo.
El tamaño del proyecto se incrementa a menudo por cambios en el ámbito (modificaciones en los requisitos). Este incremento puede tener un impacto geométrico en el coste y la planificación.
CLAVE: La complejidad, el tamaño y la incertidumbre estructural afectan la fiabilidad de la estimación.
La incertidumbre estructural influye en el riesgo. Con métricas de proyectos anteriores, se pueden hacer estimaciones más precisas, planificar para evitar dificultades y reducir el riesgo. El planificador debe solicitar definiciones completas de rendimiento e interfaz. Tanto el planificador como el cliente deben entender que cualquier cambio en los requisitos afecta el coste y la planificación.
El objetivo es proporcionar un marco para estimaciones razonables de recursos, coste y planificación temporal. Es importante actualizar las estimaciones a medida que el proyecto progresa.
La primera actividad es determinar el ámbito del software. Se evalúan la función y el rendimiento asignados al software durante la ingeniería del sistema para establecer un ámbito claro. El ámbito del software describe el control, los datos, la función, el rendimiento, las restricciones, las interfaces y la fiabilidad.
Al inicio, la información es escasa. Se define la necesidad y los objetivos, pero no el ámbito. La comunicación inicial entre el analista y el cliente es crucial para comprender el problema y las expectativas de la solución.
Preguntas importantes para el cliente:
También existen las «metacuestiones»:
Además del ámbito, se debe evaluar la factibilidad técnica del proyecto. ¿Es técnicamente posible? ¿Se pueden superar los riesgos técnicos?
Consideremos un sistema de clasificación de cinta transportadora (SCCT). El software debe leer códigos de barras, decodificar datos, buscar en la base de datos, controlar el mecanismo de maniobra y generar informes. La velocidad de la cinta, el espaciado de las cajas y la complejidad del software influyen en el esfuerzo de desarrollo.
CLAVE: La consideración del ámbito debe incluir la evaluación de todas las interfaces externas.
El software interactúa con hardware, software existente, personas y procedimientos. La especificación del sistema debe contener la información necesaria para la descripción del ámbito.
Los recursos del proyecto incluyen recursos humanos, software existente y recursos de entorno.
Se deben especificar las habilidades y roles necesarios (gestor, ingeniero, especialista, etc.).
CLAVE: Para una reutilización eficiente, los componentes deben estar catalogados, estandarizados y validados.
Se deben considerar tres tipos de componentes:
El entorno de ingeniería del software (EIS) incluye hardware y software. El hardware proporciona la plataforma y el software las herramientas para el desarrollo.
La estimación nunca es exacta. Existen variables humanas, técnicas, de entorno y políticas que influyen en el coste y el esfuerzo. Se pueden usar técnicas de descomposición, modelos empíricos o ambos.
La precisión de la estimación depende de la estimación del tamaño, la traducción del tamaño a esfuerzo, la habilidad del equipo y la estabilidad de los requisitos.
CLAVE: El tamaño se puede estimar con LDC o PF.
Existen diferentes métodos para medir el tamaño del software:
Tanto LDC como PF se usan como variables de estimación y como métricas de referencia. Es importante la dosificación de los tipos de proyectos para obtener promedios por dominio y mejorar la precisión.
CLAVE: Para estimaciones de PF, la descomposición se centra en las características del dominio de información.
El proceso se descompone en actividades o tareas, y se estima el esfuerzo para cada tarea. Se mezclan las funciones del problema y las actividades del proceso para estimar el esfuerzo por actividad y función.
Un modelo de estimación utiliza fórmulas para predecir el esfuerzo en función de LDC o PF. La estructura general es: E = A + B x (ev)C, donde E es el esfuerzo, ev es la variable de estimación (LDC o PF), y A, B y C son constantes. Los modelos deben calibrarse para las necesidades locales.
COCOMO II es una jerarquía de modelos de estimación que incluye modelos de composición de aplicación, de fase posterior a la arquitectura y de construcción. Utiliza puntos objeto como medida del tamaño, considerando pantallas, informes y componentes.
Este modelo estima el esfuerzo en función de LDC, un factor de destrezas y un parámetro de productividad.
Las opciones son: comprar software ya desarrollado, adquirir componentes y modificarlos, o construir software personalizado. Se deben considerar el coste, el tiempo y la calidad al tomar la decisión.
El árbol de decisión ayuda a evaluar las diferentes opciones y sus costes esperados, considerando las probabilidades de éxito y los costes de cada ruta.
El outsourcing implica subcontratar el desarrollo a una empresa externa. Puede ser estratégico o táctico. Se deben considerar los pros y los contras, como el ahorro de costes y la posible pérdida de control.
Estas herramientas implementan técnicas de descomposición o modelos empíricos. Permiten estimar el esfuerzo y el coste basándose en las características del proyecto.
La planificación del proyecto de software implica estimar la duración, el esfuerzo y el personal necesario. Se utilizan técnicas de descomposición, modelos empíricos y herramientas automáticas. La estimación del tamaño del software es crucial para la precisión. La decisión desarrollar o comprar se basa en criterios de coste, tiempo y calidad.