Técnicas de estimación: descripción general
Estimation es el proceso de encontrar una estimación o aproximación, que es un valor que se puede usar para algún propósito, incluso si los datos de entrada pueden ser incompletos, inciertos o inestables.
La estimación determina cuánto dinero, esfuerzo, recursos y tiempo tomará construir un sistema o producto específico. La estimación se basa en:
- Datos pasados / experiencia pasada
- Documentos / conocimientos disponibles
- Assumptions
- Riesgos identificados
Los cuatro pasos básicos en la estimación de proyectos de software son:
- Estime el tamaño del producto de desarrollo.
- Estime el esfuerzo en meses-persona u horas-persona.
- Estime el horario en meses calendario.
- Estime el costo del proyecto en la moneda acordada.
Observaciones sobre estimación
La estimación no tiene por qué ser una tarea única en un proyecto. Puede tener lugar durante:
- Adquirir un proyecto.
- Planificación del proyecto.
- Ejecución del Proyecto según surja la necesidad.
El alcance del proyecto debe entenderse antes de que comience el proceso de estimación. Será útil tener datos históricos del proyecto.
Las métricas del proyecto pueden proporcionar una perspectiva histórica y una valiosa información para la generación de estimaciones cuantitativas.
La planificación requiere que los gerentes técnicos y el equipo de software asuman un compromiso inicial, ya que conduce a la responsabilidad y la rendición de cuentas.
La experiencia pasada puede ayudar mucho.
Utilice al menos dos técnicas de estimación para llegar a las estimaciones y conciliar los valores resultantes. Consulte Técnicas de descomposición en la siguiente sección para obtener información sobre la conciliación de estimaciones.
Los planes deben ser iterativos y permitir ajustes a medida que pasa el tiempo y se conocen más detalles.
Enfoque general de estimación de proyectos
El enfoque de estimación de proyectos que se utiliza ampliamente es Decomposition Technique. Las técnicas de descomposición adoptan un enfoque de divide y vencerás. La estimación de tamaño, esfuerzo y costo se realiza de manera escalonada dividiendo un proyecto en funciones principales o actividades de ingeniería de software relacionadas.
Step 1 - Comprender el alcance del software a construir.
Step 2 - Genere una estimación del tamaño del software.
Comience con la declaración de alcance.
Descomponga el software en funciones que puedan estimarse individualmente.
Calcula el tamaño de cada función.
Obtenga estimaciones de esfuerzo y costos aplicando los valores de tamaño a sus métricas de productividad de línea base.
Combine estimaciones de funciones para producir una estimación general de todo el proyecto.
Step 3- Generar una estimación del esfuerzo y costo. Puede llegar a las estimaciones de esfuerzo y costos dividiendo un proyecto en actividades de ingeniería de software relacionadas.
Identifique la secuencia de actividades que deben realizarse para que se complete el proyecto.
Divida las actividades en tareas que se puedan medir.
Estime el esfuerzo (horas / días en persona) requerido para completar cada tarea.
Combine estimaciones de esfuerzo de las tareas de actividad para producir una estimación de la actividad.
Obtenga unidades de costo (es decir, costo / unidad de esfuerzo) para cada actividad de la base de datos.
Calcule el esfuerzo total y el costo de cada actividad.
Combine estimaciones de esfuerzo y costo para cada actividad para producir una estimación de esfuerzo y costo general para todo el proyecto.
Step 4- Conciliar estimaciones: Compare los valores resultantes del Paso 3 con los obtenidos en el Paso 2. Si ambos conjuntos de estimaciones coinciden, sus números son muy confiables. De lo contrario, si ocurren estimaciones muy divergentes, lleve a cabo una investigación adicional sobre si:
El alcance del proyecto no se comprende adecuadamente o se ha malinterpretado.
El desglose de funciones y / o actividades no es exacto.
Los datos históricos utilizados para las técnicas de estimación no son adecuados para la aplicación, están obsoletos o se han aplicado incorrectamente.
Step 5 - Determine la causa de la divergencia y luego concilie las estimaciones.
Exactitud de la estimación
La precisión es una indicación de qué tan cerca está algo de la realidad. Siempre que genera una estimación, todos quieren saber qué tan cerca están los números de la realidad. Querrá que cada estimación sea lo más precisa posible, dados los datos que tiene en el momento de generarla. Y, por supuesto, no desea presentar una estimación de una manera que inspire una falsa sensación de confianza en los números.
Los factores importantes que afectan la precisión de las estimaciones son:
La precisión de todos los datos de entrada de la estimación.
La precisión de cualquier cálculo estimado.
Qué tan cerca los datos históricos o los datos de la industria utilizados para calibrar el modelo coinciden con el proyecto que está estimando.
La previsibilidad del proceso de desarrollo de software de su organización.
La estabilidad tanto de los requisitos del producto como del entorno que respalda el esfuerzo de ingeniería de software.
Si el proyecto real se planeó, monitoreó y controló cuidadosamente o no, y no ocurrieron sorpresas importantes que causaron retrasos inesperados.
A continuación se presentan algunas pautas para lograr estimaciones confiables:
- Basar las estimaciones en proyectos similares que ya se hayan completado.
- Utilice técnicas de descomposición relativamente simples para generar estimaciones de costos y esfuerzos del proyecto.
- Utilice uno o más modelos de estimación empíricos para la estimación de costos y esfuerzos de software.
Consulte la sección sobre Pautas de estimación en este capítulo.
Para garantizar la precisión, siempre se recomienda realizar una estimación utilizando al menos dos técnicas y comparar los resultados.
Problemas de estimación
A menudo, los gerentes de proyecto recurren a la estimación de horarios saltando al tamaño estimado. Esto puede deberse a los plazos establecidos por la alta dirección o el equipo de marketing. Sin embargo, cualquiera que sea la razón, si se hace esto, en una etapa posterior sería difícil estimar los programas para adaptarse a los cambios de alcance.
Al realizar la estimación, se pueden hacer ciertas suposiciones. Es importante anotar todos estos supuestos en la hoja de estimación, ya que algunos todavía no documentan los supuestos en las hojas de estimación.
Incluso las buenas estimaciones tienen supuestos, riesgos e incertidumbre inherentes y, sin embargo, a menudo se tratan como si fueran precisas.
La mejor manera de expresar estimaciones es como un rango de resultados posibles diciendo, por ejemplo, que el proyecto tomará de 5 a 7 meses en lugar de indicar que estará completo en una fecha particular o estará completo en un no fijo. de meses. Tenga cuidado con comprometerse con un rango demasiado estrecho, ya que equivale a comprometerse con una fecha definida.
También puede incluir la incertidumbre como valor de probabilidad acompañante. Por ejemplo, existe un 90% de probabilidad de que el proyecto se complete en una fecha definida o antes.
Las organizaciones no recopilan datos de proyectos precisos. Dado que la precisión de las estimaciones depende de los datos históricos, sería un problema.
Para cualquier proyecto, existe un cronograma lo más corto posible que le permitirá incluir la funcionalidad requerida y producir resultados de calidad. Si existe una restricción de programación por parte de la administración y / o el cliente, puede negociar el alcance y la funcionalidad que se entregarán.
Acuerde con el cliente el manejo de los cambios de alcance para evitar sobrecostos.
La falta de acomodación de la contingencia en la estimación final causa problemas. Por ejemplo, reuniones, eventos organizacionales.
La utilización de recursos debe considerarse inferior al 80%. Esto se debe a que los recursos serían productivos solo el 80% de su tiempo. Si asigna recursos con una utilización superior al 80%, es probable que haya errores.
Directrices de estimación
Uno debe tener en cuenta las siguientes pautas al estimar un proyecto:
Durante la estimación, pregunte las experiencias de otras personas. Además, ponga en práctica sus propias experiencias.
Suponga que los recursos serán productivos solo el 80 por ciento de su tiempo. Por lo tanto, durante la estimación, considere la utilización de recursos como menos del 80%.
Los recursos que trabajan en varios proyectos tardan más en completar las tareas debido al tiempo perdido para cambiar entre ellos.
Incluya el tiempo de gestión en cualquier estimación.
Siempre incorpore la contingencia para la resolución de problemas, reuniones y otros eventos inesperados.
Deje suficiente tiempo para hacer una estimación adecuada del proyecto. Las estimaciones apresuradas son estimaciones inexactas y de alto riesgo. Para grandes proyectos de desarrollo, el paso de estimación debe considerarse realmente como un mini proyecto.
Siempre que sea posible, utilice datos documentados de proyectos anteriores similares de su organización. Dará como resultado la estimación más precisa. Si su organización no ha mantenido datos históricos, ahora es un buen momento para comenzar a recopilarlos.
Utilice estimaciones basadas en desarrolladores, ya que las estimaciones preparadas por personas distintas de las que harán el trabajo serán menos precisas.
Use varias personas diferentes para estimar y use varias técnicas de estimación diferentes.
Concilie las estimaciones. Observe la convergencia o dispersión entre las estimaciones. Convergencia significa que tiene una buena estimación. La técnica de banda ancha-Delphi se puede utilizar para recopilar y discutir estimaciones utilizando un grupo de personas, con la intención de producir una estimación precisa e imparcial.
Vuelva a estimar el proyecto varias veces a lo largo de su ciclo de vida.