¿Qué hacer cuando la estimación del tiempo sale mal?

26

Digamos que el tiempo estimado para un caso es de 3 días. En el segundo día, notará que el caso está creciendo y están surgiendo nuevos escenarios que no se contaron cuando se realizó la estimación del tiempo. El nuevo hallazgo lleva a 2 días extra (total 5 días). Este es un problema típico que enfrentarás tarde o temprano como desarrollador.

  • ¿Qué estrategia se puede utilizar para notificar al líder del proyecto la nueva hora de entrega?
  • A menudo te preguntas por qué. ¿Cómo motivar el nuevo tiempo de entrega?

El hecho es que muchos proyectos no dedican mucho tiempo al análisis y diseño durante SDLC.

EDITAR: En proyectos muy complejos, no importa cuánto tiempo razonable dedique a Análisis y Diseño, siempre hay sorpresas ya que las reglas de negocio son demasiado complejas. Sin embargo, en tales casos, creo que el líder del proyecto debe ser consciente de la complejidad y tener una actitud correcta cuando surgen sorpresas inesperadas. La pregunta es cómo abordar a los líderes de proyectos que no entienden la complejidad.

Amir Rezaei
fuente
1
Creo que la mejor pregunta es, ¿qué haces cuando la estimación fue correcta ? La mayoría de las veces, no lo será.
Tim Post
@Tim Post Tienes razón sobre "La mayoría de las veces, no será". Quería reservar.
Amir Rezaei
1
+1 - Gracias por EDITAR que contiene palabras de sabiduría. El hecho que destacó ("" En proyectos muy complejos, no importa cuánto tiempo razonable dedique a Análisis y Diseño siempre hay sorpresas ya que las reglas de negocio son demasiado complejas) "" es muy cierto.
Karthik Sreenivasan

Respuestas:

17

Entregando malas noticias

Es absolutamente necesario plantear el asunto de inmediato, sin embargo, si puede hacerlo en un plazo razonable (es decir, unas pocas horas, no más), debe hacer una pequeña evaluación de impacto antes de hacerlo.

Al igual que con todas las malas noticias, es mejor proporcionar información detallada (en lugar de simplemente decir "va a llegar tarde"), así que proporcione la mayor cantidad posible de:

1) Estimaciones / escalas de tiempo revisadas para las tareas que se han deslizado.

2) Estimaciones / escalas de tiempo revisadas para tareas futuras que ahora piensa, a la luz de saber que algunas cosas ya se han superado, puede llevar más tiempo.

3) Razones muy breves por las que se produjo el deslizamiento (no gire, solo la verdad, pero no parezca que está inventando excusas). En este caso, usted declara "Estimamos en base a las reglas X e Y, pero ahora han incluido Z, que nunca se mencionó". Es posible que pueda usar esto para explicar el retraso a los clientes y educarlos sobre la importancia de ser minucioso en primer lugar.

4) Si son posibles alternativas para volver a encaminar las cosas (generalmente reduciendo el alcance, pero puede haber otras opciones; otras partes del proyecto pueden adelantarse y es posible mover las tareas).

Recuerde con deslizamientos el impacto psicológico / credibilidad es culminante. Es posible que pueda salirse con la suya, pero la segunda será mucho más dura y la tercera aún más dura.

Es por eso que el punto 2 es importante: revise no solo lo que ya se deslizó, sino también las tareas futuras que ahora cree que pueden llevar más tiempo de lo previsto originalmente. Los resbalones suceden en las TI, no aprender de sus errores es un pecado mayor.

Prevenir tener que entregar malas noticias

Aquí hay dos escenarios: primero, usted no hizo las estimaciones usted mismo, en cuyo caso no hay mucho que pueda hacer aparte de presionar para participar en las estimaciones la próxima vez.

En segundo lugar, hizo las estimaciones usted mismo, en cuyo caso necesita ver cómo hacer mejores estimaciones. Para mí, la frase clave en la pregunta es "siempre hay sorpresas ya que las reglas de negocios son demasiado complejas" .

Con respeto, si siempre sucede, no debería ser una sorpresa . Si solo obtiene la mitad de las reglas de negocio, entonces debe suponer eso en sus estimaciones y permitir el deslizamiento de la característica.

Puede hacer esto aumentando las estimaciones de las reglas que tiene (funciona, pero no está educando a nadie sobre lo que realmente está sucediendo), pero es mejor establecer con sus estimaciones "Históricamente, las reglas que obtenemos son una versión simplificada de lo que realmente quieren. Las reglas que establecieron tardarán 3 días en implementarse, sin embargo, debemos permitir otros 3 días de contingencia para las reglas que no se han mencionado pero que probablemente se descubrirán durante el desarrollo y las pruebas ".

Si el primer ministro cuestiona esto, entonces debe recordarle todas las veces que ha sido cierto (con ejemplos, es difícil argumentar ejemplos) y también sugerirle gentilmente que le conviene entregar a tiempo tanto como a usted, así que ¿no es así? mejor ser conservador?

Pero la conclusión: si siempre se subestima debido a un factor específico (en este caso, la característica de fluencia), calcule eso en sus estimaciones.

Jon Hopkins
fuente
2
+1 "Al igual que con todas las malas noticias, es mejor proporcionar información detallada" Sin embargo, no todos entienden los detalles / complejidad del problema.
Amir Rezaei
@Amir: he agregado un poco más, aunque como persona que entiende la complejidad, la simple verdad es que es tu responsabilidad explicarlo. No van a aprender de otra manera.
Jon Hopkins
¡Buenos puntos! "con ejemplos: es difícil argumentar ejemplos" y "gentilmente sugiera que le interesa entregar a tiempo". Con respecto a "si siempre sucede, no debería ser una sorpresa", el problema es que el tiempo extra para la sorpresa no es constante. Por lo tanto, es posible que ni siquiera tome un promedio de ellos, ya que tienden a tener una gran variación.
Amir Rezaei
+1 "Recuerde con deslizamientos que el impacto psicológico / de credibilidad es acumulativo".
Karthik Sreenivasan
16

Las estimaciones basadas en el tiempo son suposiciones sobre el futuro, y eso siempre fallará a largo plazo. Es una batalla sin sentido que no puedes ganar.

Deje de estimar en días y comience a usar la estimación relativa en su lugar. Aquí hay un ejemplo simple:

  1. Asigna un número a cada tarea. La tarea más difícil puede ser 10 y la tarea más fácil 1.
  2. Comience a programar para completar sus tareas.
  3. Después de una semana, detenga su trabajo y sume los números de todas las tareas completadas. Digamos que terminas con 14. Esa es tu velocidad semanal.

La próxima semana, repita el proceso nuevamente. Apuesto a que tu velocidad cambiará, pero no mucho. Después de algunas semanas con esto, su velocidad debería ser bastante estable y eso es a lo que apuntamos. Ahora puede comenzar a hacer planes con confianza. Elija tareas que sumen su velocidad y su PM puede estar bastante seguro de que se completará según lo prometido. Así es como debe abordar a los líderes de su proyecto.

Martin Wickman
fuente
¿Puede dar un ejemplo de cómo realiza un seguimiento del tamaño de las tareas? ¿Crea una tabla con tipos de tareas (como "crear un nuevo formulario", "agregar un método al servicio web X") o es más un presentimiento?
encogerse
Simplemente compare con las tareas que ha estimado y completado anteriormente.
Martin Wickman
+1 - "Las estimaciones basadas en el tiempo son suposiciones sobre el futuro, y eso siempre fallará a largo plazo. Es una batalla sin sentido que no puedes ganar". Esta es la primera vez que estoy aprendiendo acerca de las estimaciones relativas y definitivamente es un alimento para el pensamiento. Gracias.
Karthik Sreenivasan
¡Qué idea tan brillante! Definitivamente voy a explorar esto más a fondo.
Meetpd
3

Tan pronto como vea que la estimación es incorrecta, debe levantar la campana de alarma. Informe a quienes esperan la entrega sobre el retraso.

Pide ayuda a tus compañeros de equipo si es posible. Asegúrese de seguir entregando el software de mayor calidad posible.

Un atajo probablemente hará más daño al final, y todos los involucrados deberían saberlo. O al menos debería ser posible explicárselos.

Morten
fuente
3

Esto sucede con tanta frecuencia que ningún gerente de proyecto experimentado hará gran parte de ello. Solo sea honesto al respecto y no haga nuevas estimaciones demasiado optimistas; cuando veas que tomará mucho más tiempo, dilo. No diga "Necesito un poco más de tiempo" a diario.

Tendrá que explicarle al gerente: ¿fue la estimación incorrecta en primer lugar o fueron las circunstancias adversas (pasaron un día cazando un error) la razón del retraso? En el primer caso, algo está mal con el proceso de estimación, tal vez es demasiado optimista o ingenuo. En el segundo caso, es un caso para el búfer que se incluyó en el plan del proyecto.

usuario281377
fuente
2

Siempre mantenga a las partes interesadas relevantes al tanto de su progreso, incluido (¡especialmente!) El hecho de que sus estimaciones fueron demasiado optimistas. No estarán contentos, pero sabrán dónde se encuentra realmente el proyecto y pueden planificar en consecuencia.

Idealmente, su lista de características habrá sido MoSCoWed: debe, debería, podría, no lo hará.

Cuando te dirijas a una invasión, corta los poderosos, luego los deberes. Reduzca las funciones para que pueda enviar a tiempo: su proyecto generalmente no vive de forma aislada, y pasar la fecha de lanzamiento significa que los proyectos posteriores ahora también superarán su calendario.

Idealmente solo tendrás ~ 60% de mostos. Si tiene que cortar los que está en problemas muy profundos (tener un exceso muy grave), en cuyo caso tendrá que cortar esquinas.

¡Asegúrese de darse el tiempo suficiente después de la liberación para limpiar el desorden hecho al cortar esquinas!

Frank Shearar
fuente
44
+1 @Frank Buen punto con respecto a "Funciones de corte para que pueda enviar a tiempo". El problema aquí es que no soy el líder del proyecto.
Amir Rezaei
@Amir En cuyo caso su cliente es (amable) su líder de proyecto. Usted dice "Estoy atrasado. Puedo cortar esta característica, o esa característica. ¿Qué debo hacer?"
Frank Shearar
@Frank Ya que hacemos Scrum, y el caso se mueve de la cartera de pedidos al sprint, parece estar escrito en piedra para PM para reducir los casos. Sin embargo, una experiencia PM puede no tener este tipo de problema.
Amir Rezaei
No me gusta MoSCoW. Lo único inteligente es el acrónimo. Simplemente mantenga sus tareas en una cartera priorizada.
Martin Wickman
1
@Martin se encoge de hombros "Debe" significa "si no envía esta función, no tiene nada". Esa es información diferente a una cartera de pedidos priorizada, que es "¿qué característica preferiría primero?" Aún tendría una acumulación de prioridades con MoSCoW.
Frank Shearar
2

La estimación del proyecto es de juego, simple y llanamente. No hay recompensa sin riesgo.

Si el gerente no entiende esto, eso es lo primero que explicaría.

La pregunta es, ¿quién cubre el riesgo?

Si tiene un contrato de precio fijo, está cubriendo el riesgo.

Si el tiempo y los materiales, entonces él está cubriendo el riesgo.

Por lo tanto, al estimar, es importante comprender que está adivinando, y debe tener una idea de cuán incierto es el cálculo y quién cubre el riesgo.

Mike Dunlavey
fuente
1

Creo que la mejor estrategia es refinar constantemente su estimación . Lo sé, estoy diciendo: tu pregunta está de alguna manera fuera de lugar.

Lectura Introducción al descubrimiento deliberado de Dan North Llegué a la conclusión de que colocar el esfuerzo de estimación en la fase inicial equivale a hacer una predicción exactamente cuando su ignorancia del problema y el dominio está en un nivel máximo. Acéptalo, no puedes predecir lo que es incierto, especialmente si aún es desconocido .

Las metodologías ágiles resuelven este problema dividiendo la vida útil del proyecto en varias partes (sprints, en Scrum) y repitiendo la estimación (historias de dimensionamiento) cada semana. Cada semana, lo que sabe sobre el problema se refina, y también lo es la estimación.

Para mí, una estimación no puede ser verdadera o falsa. Simplemente puede ser cada vez más refinado . Una estimación no es un compromiso. Por eso se llama estimación.

Lo mejor que puede hacer cuando llega tarde (y también cuando "se arriesga a entregar por adelantado", porque el problema es el mismo: lo ha estimado mal) es escalar y comunicar el hecho al cliente lo antes posible. Se llama gestión de riesgos. Cuanto antes dé su opinión, más efectiva será la contramedida. Por lo general, eso significa que, si tiene evidencias de que no puede entregar todo, debe hablar con su cliente, decirle que solo puede entregar el 70% del compromiso y dejarle decidir qué tiene más valor comercial para ella y debe desplegar primero .

Escribí sobre esto aquí Estimación incorrecta, ¡ayuda! ¡Voy tarde! ¡Corta las características y deja de caer en cascada!

Arialdo Martini
fuente
1

Se llama una estimación porque es una suposición educada. No es una descripción infalible del futuro, y tengo poca paciencia con las personas que tratan las estimaciones de software de esa manera. En última instancia, muchas cosas llevarán más tiempo de lo esperado, en raras ocasiones pueden tomar un orden de magnitud más tiempo. Esto le sucede incluso a los mejores programadores del mundo. ¿Cómo podría un gerente esperar que no te suceda? Si su gerente no entiende eso, no tiene mucha experiencia. Si ella finge no entenderlo para aplicar presión en el horario, no está siendo razonable.

El mejor enfoque es el más obvio. Tan pronto como tenga una idea clara de que una función llevará más tiempo de lo esperado, discútala con su gerente. A menudo hay formas de proceder que resolverán tanto sus problemas como los de su gerente. Es decir, la parte de la característica que está ralentizando las cosas puede ser relativamente poco importante o fácil de modificar de una manera que permita un progreso más rápido posible. Sin embargo, en cualquier caso, no se deje intimidar por una segunda estimación optimista.

PeterAllenWebb
fuente
0

Deje que todo el equipo lo sepa e intente encontrar una solución. Recomiendo 3 soluciones, de mayor a menor prioridad:

a. Trate de encontrar una solución temporal o una solución rápida

si. El trabajo que puedes hacer, hazlo mejor. Después de mostrarle al cliente su excelente parte del trabajo, solicite su ayuda: podemos hacer esto, pero hay algún problema y puede ralentizar la productividad de su trabajo ... Tal vez pueda preguntarles si hay alguna solicitud innecesaria / característica que se puede soltar o reducir.

Proponer un enfoque alternativo para su problema puede ser una buena idea.

do. Horas extras

Hoàng Long
fuente
Actualicé mi pregunta. Es el líder del proyecto quien será notificado.
Amir Rezaei
No entiendo del todo. ¿Eres el líder del proyecto o solo un programador?
Hoàng Long
0

Opciones:

  • Características de corte
  • Calidad de corte (deje correcciones de errores para más adelante)
  • Aumentar la productividad
    • Encuentra y elimina bloqueadores
    • Descanso / descanso
    • Reduzca el tiempo personal / de sueño
    • Obtenga más fuerza laboral
    • Obtén mejores herramientas
    • Formación
    • Aumentar la motivación
      • Comida gratis
      • [Promesa de] aumento / promoción / vacaciones / bonificación / etc.
      • Amenazas
      • Mejore las condiciones de trabajo (mejor hardware, muebles, etc.)
      • Cambiar el entorno: trabajar desde una cafetería o trasladar a todo el equipo a un lugar fresco: ¿un refugio de montaña o una casa en el lago?

fuente
1
Cabe señalar que cada palabra de eso es una respuesta a CORTO PLAZO a la pregunta "qué hacer cuando la estimación del tiempo va mal". En particular, las amenazas aumentan la motivación brevemente y luego tienen el efecto contrario.
Dan Ray
Estoy de acuerdo en que las amenazas apestan, aunque estoy seguro de que funcionan para algunas personas y en algunas situaciones, especialmente si planeas dejarlas ir de todos modos.
0

Este es un problema común :)

Uno de los enfoques más simples es agregar un búfer a cualquier estimación que haga, ya que siempre ocurren problemas imprevistos. El tamaño del búfer depende del tamaño del equipo y la incertidumbre de la tecnología y el problema en sí.

Los equipos más grandes tienen más personas que podrían enfermarse y menos personas que saben "todo".

Las nuevas tecnologías siempre son más riesgosas que las que ya conoce.

Y cuando vea que no terminará en la fecha estimada, comuníquese temprano con las partes interesadas. Tal vez pueda volver a priorizar cosas o retrasar ciertas funciones después de hablar con el cliente / parte interesada.

Patrick Cornelissen
fuente