¿Cuánto tiempo pasar estimando tareas de programación?

9

Por ejemplo, si divido un proyecto en n productos de trabajo discretos (por ejemplo, clases, funciones o componentes), ¿hay un tiempo t tal que n * t sea una cantidad de tiempo adecuada para gastar en la estimación?

Michael Behan
fuente
99
Es fácil. Simplemente planifique un tiempo para mirar su carga de trabajo y estimar aproximadamente cuánto tiempo tomarán las estimaciones y ... oh, espere.
joshin4colours
Dado que sus estimaciones estarán siempre equivocadas, cero retorno de la inversión = cero tiempo invertido. Ah, excepto que los jefes te obligarán a crear estimaciones falsas. Las estimaciones ágiles en las que elige un número aleatorio de Fibonacci en una unidad de medida aleatoria sin unidades llamada BogoEstimons, o algo así, parecen mejores que las estimaciones en unidades de trabajo de horas humanas reales.
Warren P
Tiempo estimado para la tarea de estimación. Que comience la Estimateception
usuario

Respuestas:

13

Si tiene suficiente información para haberlo desglosado a ese nivel, no debe gastar más de un minuto en cada uno. No vas a estar correcto de todos modos, pero serás tan correcto después de un minuto como después de una hora.

Si, por otro lado, estuvieras hablando de historias de usuarios , te sugiero que pongas a los interesados ​​en una habitación y pases cinco minutos haciendo preguntas antes de estimar.

De todos modos, no pierdas mucho tiempo haciendo estimaciones. No son lo suficientemente útiles o precisos para que valga la pena el esfuerzo.

pdr
fuente
3
+1. pero no estoy de acuerdo con que las estimaciones no sean muy útiles. Ayudan a planificar mejor y, por lo tanto, a ser más productivos.
SuperM
44
@superM: No dije que no fueran útiles en absoluto. Ciertamente lo son. Dije que no valen la pena gastar mucho tiempo. El software de trabajo es mucho más útil, así que dedique la mayor parte de su tiempo a eso.
pdr
@superM: ¿Alguna vez hiciste una comparación entre tus estimaciones y los valores reales? Esto le dará una gran lección sobre el valor real de las conjeturas (que es una estimación por definición). La estimación es una cosa clásica de Pareto: obtienes una estimación bastante buena en el 20% del tiempo. Perder más tiempo hará que solo sea un 5% mejor.
JensG
Para mí, cuanto más trabajo en un proyecto, mejores estimaciones hago. Hay demasiados factores y algunos de los que no puedo controlar, y conocer esos factores [específicos del proyecto] viene con experiencia. A veces no puedes escapar de la estimación, y a veces estás entre los que sufren de tus estimaciones inexactas.
SuperM
2

En mi experiencia, una de las piezas centrales de un enfoque ágil "sí, que realmente funciona" es la directriz "Las tareas deberían tomar menos de un día". Si estás estimando cosas que toman más de un día, estarás bastante lejos.

Una vez que los ha desglosado para que pueda hacer eso, ya ha hecho lo suficiente; independientemente de lo que son esas cosas.

Telastyn
fuente
2

En la metodología ágil de scrum, Planning Poker es visto como una forma efectiva de usar todo el equipo para estimar rápidamente el esfuerzo requerido para las historias de los usuarios en un sprint (suponiendo que esto es de lo que estás hablando). De lo contrario, no pasaría más de unos minutos estimando una sola tarea que es parte de una historia de usuario.

Recomiendo encarecidamente utilizar esta técnica basada en el consenso si intenta hacer estimaciones para un equipo de desarrolladores.

Planificar el póker significa que puedes obtener estimaciones bastante buenas para cada historia de usuario en una sola sesión (no más de 1-2 horas).

¡Lee un poco sobre esto y pruébalo!

Además, como regla general, ninguna tarea en una historia de usuario debe exceder las 7,5 horas (un solo día de trabajo). Si lo hace, debe dividir la tarea en tareas más pequeñas.

Ciaran Gallagher
fuente
1
La planificación del póker estima los puntos, que no están en unidades reales. ¿Qué los hace análogos a cómo son realmente las estimaciones? Guessery culo salvaje.
Warren P
1
La idea es que si sabemos que una tarea de 1 punto tomará 7.5 horas, por ejemplo, entonces podemos decir que una historia de usuario de 5 puntos tomará 30 horas, y que una historia de usuario de 10 puntos tomará 60 horas. Por ejemplo, podríamos elegir una de las tareas más pequeñas, y el tiempo estimado se puede asignar como el valor de un único punto de historia del usuario. Entonces, podemos usar esta historia de usuario como base para estimar tareas más grandes. Si creemos que otra tarea tomará el doble de tiempo, asignaríamos 2 puntos de historia de usuario (15 horas), y así sucesivamente.
Ciaran Gallagher
1

Creo que depende de lo que necesites. Si, por ejemplo, la asignación de recursos de su proyecto depende de ello (como fue el caso aquí a veces), es mejor hacerlo con cuidado. Por otro lado, si está haciendo un proyecto que no tiene este tipo de necesidad, es posible que no entre en demasiados detalles. Pasar demasiado tiempo no es una buena idea, porque hacer una estimación precisa es muy difícil.

Hay un famoso concepto llamado Cono de incertidumbre y Cono de incertidumbre en Wikipedia que dice cuán precisa puede ser una estimación. Vale la pena leer sobre.

Joqus
fuente
1

¿Qué obtienes de tus estimaciones?

Dependiendo de en qué trabaje, las estimaciones individuales precisas pueden ser relevantes (el cliente le está pagando al final de la semana o la tarea / historia está bloqueando a otros y se requiere una ETA precisa) o no (tiene 200 historias en la cartera de pedidos, nadie va a morir si una historia cambia durante una semana, y usted cuenta con errores de estimación para promediar bien una gran cantidad de ellos).

Simplemente pase la cantidad mínima de tiempo para obtener una estimación que sea lo suficientemente buena para sus necesidades. No hay formula

Personalmente, considero que más de un minuto o dos significa que probablemente esté estimando algo incorrecto (dividirlo o planear el descubrimiento).

ptyx
fuente
0

En realidad, necesita una estimación para ayudar a otras partes interesadas a asignar una prioridad relativa, por lo que las estimaciones de base amplia que al menos dicen que la tarea1 es aproximadamente 3 veces el esfuerzo en comparación con la tarea2, (incluso si en términos de horas no es muy precisa al final) son útiles. Dedique la mayor cantidad de tiempo necesario para comprender cuáles son esas tareas (para alcanzar ciertas metas) y luego tener estimaciones aproximadas para ellas.

Una vez que tenga una prioridad relativa, solo concéntrese en hacer cosas y ajuste las estimaciones en ruta. En otras palabras, dedique poco tiempo a las estimaciones iniciales, pero refine sus estimaciones a medida que pase el tiempo para que el plan del proyecto dé una buena idea de lo que se va a hacer.

Roopesh Shenoy
fuente
0

Las buenas estimaciones son las que se basan en hechos, no en suposiciones.

Por lo tanto, si ya tenía un proyecto o proyectos similares y capturó su tiempo de estimación anterior, eso podría servir como una buena base de estimación para comenzar . Sin embargo, dependiendo del alcance de su proyecto, puede haber artefactos desconocidos , lo cual es mejor aclarar con BA o el propietario del producto lo antes posible.

También es cierto decir que: la estimación del proyecto de software es intrínsecamente inexacta . Sin embargo, hay algunas prácticas de estimación realistas que podrían ayudar:

  • Las personas que hacen el trabajo deben participar en la estimación del proyecto.
  • Traiga a los expertos: el juicio experto es crítico para el éxito del proyecto
  • Estimar piezas grandes como un rango
  • Use la técnica Delphi: este es un método que ayuda a converger las opiniones del equipo en caso de que haya un conflicto en la estimación del proyecto de software.
  • Ten en cuenta el costo
  • Tenga en cuenta los recursos asignados disponibles para realizar el trabajo.
Yusubov
fuente
Nunca he observado a un equipo o persona que hizo estimaciones que rutinariamente (más del 50% del tiempo) resultaron ser precisas dentro del 10% del tiempo real empleado. Otras personas en otros lugares afirman éxitos que me parecen difíciles de imaginar en algún lugar donde haya trabajado.
Warren P
"exacto dentro del 10% del tiempo real empleado" - en realidad es un resultado muy pobre. También tenga en cuenta el margen de error, que aumenta por la complejidad y las dependencias externas del proyecto.
Yusubov el
Eso es lo que estoy diciendo. La estimación apesta.
Warren P
sí, es un gran golpe tener "precisión dentro del 10% del tiempo real empleado" ...
Yusubov