domingo, 16 de agosto de 2009

Guias prácticas de estimacion de esfuerzo basado en juicio experto

|
Resumen sobre
GUIA PRÁCTICA DE ESTIMACIÓN DE ESFUERZO
BASADA EN JUICIO EXPERTO


Jorge Fernández Lugo, Fernando Princich, Roberto Roldan.


En un equipo de desarrollo de software, el líder del proyecto y su equipo, estimaron que el esfuerzo necesario para cada una de las tareas especificadas y finalmente llegaron a un total de 17.000 Hs de trabajo, 20.000 como máximo y 15.000 como mínimo. Luego de exponer esto, el líder preguntó (p) a un miembro del equipo con gran experiencia en el dominio, cual había sido su experiencia en proyectos similares. El miembro respondió; “Recuerdo haber pasado mas de 40.000 hs de trabajo para este tipo de proyectos”, incluso, agrego el desarrollador “alrededor del 25 % de ellos falló completamente”.
En todos los proyectos de software más del 50 % de los esfuerzos se deben a acontecimientos inesperados.

La estimación de esfuerzo basado en juicio experto es el método más común de hoy, y la decisión de recurrir a estos procesos en lugar de los modelos de estimación formales no debe sorprender.
Una mejora de la estimación del esfuerzo no requiere necesariamente el uso de sofisticados modelos de estimación formal o costosas bases de datos de experiencias de proyectos.
Simples cambios en los procesos, tales como el replanteamiento de preguntas (p) pueden dar lugar a estimaciones más realistas de esfuerzos.
Frecuentemente los administradores de proyectos realizan una estimación demasiado optimista respecto del esfuerzo necesario para completar un proyecto. La experiencia de expertos demuestra que, en todos los proyectos, alrededor del 50% del esfuerzo se debe a acontecimientos inesperados.
Para intentar hacer frente a esto, el autor del paper a diseñado siete directrices o líneas guías, para las estimaciones de esfuerzo realistas, de desarrollo de software. Éstas directrices, explica, no significan seguir al pie de la letra las mismas como un manual de procedimientos para estimar esfuerzos, deben ser analizadas según el contexto del proyecto y/o de la organización que las implementaría.



Guías para la Estimación de Esfuerzo:

Estas directrices difieren de otras básicamente de tres maneras.

a. Se calcula sobre la base de dictámenes de expertos en lugar de modelos
b. Son fáciles de aplicar
c. Son mas confiables aunque menos precisas.







Directrices:

1. No mezcle la estimación, planificación, y licitación
• Al estimar el esfuerzo más probable, el objetivo debe solo la precisión.
• En Planificación, sin embargo, también debería centrarse en los impacto de el esfuerzo previsto sobre la eficiencia del trabajo y el riesgo de rebasamiento del plazo previsto.
• Licitación de objetivos se refiere a ganar rondas de licitación y beneficio.

Se deben tener procesos diferenciado para cada una de estas estimaciones, ya que por ejemplo las expectativas no realistas de clientes o gerentes de negocios indefectiblemente introducen efectos en las estimaciones. Para evitar estos efectos se recomienda.
a. No se debe dar al stakeholder planificador del esfuerzo mas probable, información sobre precios, costos, ganancias, etc.
b. Siempre tratar la planificación y la licitación como procesos separados de los esfuerzos de estimación.

2. Combinar los métodos de estimación
Es deseable combinar los métodos de estimación para tener mas confianza. La estimación de esfuerzo realista o esfuerzo medio es una estimación confiable pero menos precisa que otros métodos, combinándolos se pueden obtener mejores resultados.

3. Pedir Justificación
Cada estimación de esfuerzo para completar una tarea debe ser justificada, con el fin de poder ser revisada.
No se deben aceptara intuiciones en las justificaciones, las justificaciones deben estar fundadas en proyectos anteriores, especificaciones similares, resultados obtenidos.
Exigir a los estimadores a que justifiquen sus gastos es una buena forma de aumentar sus rendiciones de cuentas.

4. Seleccione expertos de estimación con experiencia en proyectos similares
Los resultados demuestran que la estimación de expertos con “Experiencia General” son más erráticas que las estimaciones de “Expertos Específicos” en proyectos similares o dominios similares, 39% de media de error contra 12% de media de error de estimaciones respectivamente.
Quizás quien sepa exactamente como se realizan ciertos procesos particulares sean demasiados optimistas en sus predicciones de esfuerzos, sin embargo, expertos estimadores en procesos similares tendrán aproximaciones mas exactas respecto del esfuerzo necesario para cumplir el proceso.
Se deben seleccionar cuidadosamente los estimadores, si ningun profesional den tro de la organización de desarrollo tiene verdadera experiencia comprobable en proyectos similares, se debe contratar experiencia externa de la organización para estimar esfuerzos.

5. Aceptar y valorar la incertidumbre de los esfuerzos
Es sabido que una buena gestión de proyectos y mejores estimaciones reducen sobrecostos por causa de incertidumbres.
Los proyectos a veces tienen incertidumbre inherente y deben estos deben ser aceptados como tales. Dar valor a la incertidumbre es necesario para preparar los buffers de contingencia.


6. Proporcionar oportunidades de aprendizaje
Existen pocas oportunidades para aprender a estimar esfuerzos en proyectos de software.
Normalmente los expertos estiman y luego ejecutan las tareas y obtienen los resultados.
Casi siempre las medias, de esfuerzos, obtenidas luego de cumplida la tarea o el proyecto superan a las estimadas en el principio. Pero que se aprende luego de finalizada la tarea o el proyecto, respecto de esta diferencia. ¿Sólo que nos hemos equivocado en nuestras estimaciones?
El error nos da la posibilidad de aprender, se deben estudiar y analizar las causas de esos errores en las predicciones. Verificar cuales fueron los efectos de esos errores. Documentar y referenciar estas fallas para utilizarla luego en proyectos similares. Esto nutre a la organización y a los profesionales adiestrándolos y proporcionándoles herramientas para posteriores estimaciones.



7. Considere la posibilidad de aplazar o evitar el esfuerzo de estimación

En ciertas ocasiones, las estimaciones tempranas son contraproducentes. Estimaciones muy optimistas pueden incurrir en una baja calidad del producto, por ejemplo; no estimar correctamente el esfuerzo necesario para validar requerimientos con los clientes.
Incluso, estimar antes con poca información puede ser un ancla para las estimaciones y afectar negativamente a los estimadores de ser realistas cuando se disponga de mas información.
Existen buenas y varias razones para aplazar la estimación de esfuerzos, incluso; resignar la estimación de esfuerzos ya que no se dispone de información o experiencia previa podría ser mas ventajoso que una estimación muy desacertada. Sin embargo, la estimación de los trabajos SIN esfuerzos, no significa que la planificación no es importante. Buena definición de objetivos del proyectos como apropiada demarcación de Hitos, son importantes factores de éxito de proyectos de software, independientemente de si existe o no estimación de esfuerzos.


Conclusiones Generales:

• La estimación de esfuerzos basada en juicio experto, es la técnica más aplicada y menos compleja de utilizar, a veces solo consiste en replantear preguntas.
• Es una técnica confiable aunque bastante imprecisa.
• Generalmente los “expertos en la materia” incurren en la subestimación de esfuerzos, lo que hace a estimaciones generalmente riesgosas.
Según Steve McConnell - Software Estimation: Demystifying the Black Art- menciona los trabajos de investigación de Michiel van Genuchten, que afirma que las estimaciones realizadas por los desarrolladores tienen un factor de optimismo de entre el 20% y el 30%, Esto quiere decir que los desarrolladores de software estimamos que podemos hacer las cosas un 30% más rápido de lo que realmente pueden.
• Evidencias recientes demuestran la efectividad que surge de la combinación de métodos, como lo explica la directriz segunda.
Combinar la sencilla técnica de estimación basada en juicio experto o humano con otras aplicando modelos matemáticos utilizando por ejemplo simulación con imputs parametrizados respecto de escenarios similares es una muy buena forma de lograr la confiabilidad propia de los métodos informales + la precisión de los métodos formales.


Referencias:

1. Practical Gidelines for Expert-Judegment-Gased Software Effort Estimation (IEEE Software) Magne Jorgensen, Simula Research Laboratory.
2. Software Estimation: Demystifying the Black Art - Steve McConnell
3. "Agile Estimating and Planning" by Mike Cohn - Chapter 6 Techniques for Estimating
4. Introducción a la estimación y planificación ágil (proyectosagiles.org) Xavier Quesada Allue
5. Estimaciones Ágiles, no Extremas - Lucas Ontivero
Fernando Princich. Con la tecnología de Blogger.