¿Cuál podría ser una buena actividad de trabajo en equipo para mejorar las habilidades de estimación? [cerrado]

9

Estoy preparando una presentación para entregar a algunos de mis compañeros de equipo (todos los desarrolladores), y me gustaría incluir una breve actividad de trabajo en equipo que se centre en mejorar las habilidades de estimación. ¿Alguien tiene alguna sugerencia o sabe de alguna actividad de trabajo en equipo que pueda utilizar?

Robar
fuente
2
Mejorar la estimación no es algo que se pueda hacer con una actividad corta. Tiene que ser un esfuerzo a largo plazo para rastrear sus estimaciones, tiempos reales y algún tipo de autopsia para determinar por qué la estimación y el tiempo real fueron diferentes. También es una habilidad que se desarrolla con el tiempo: usted mejora al estimar y aprender de sus errores a través del análisis.
Thomas Owens
¿Tiene usted un problema? ¿Qué tan precisas son sus estimaciones y debería tomarse el tiempo para mejorarlas?
JeffO
@ Thomas Owens, soy consciente de que no es algo que se pueda hacer con una actividad breve. Solo estoy tratando de aumentar la conciencia de la importancia de desarrollar buenas habilidades de estimación. Debería haber sido más específico en mi pregunta.
Rob
2
@Jeff O, no hay problema: estas son nuevas contrataciones, algunas con menos experiencia, y quiero ayudarlos a trabajar en la estimación en general.
Rob

Respuestas:

8

Echa un vistazo a la programación basada en evidencia de Joel On Software , es una forma bastante simple para que las personas descubran cómo estimar con mayor precisión.

La mejor manera de aprender a estimar es tener buenos requisitos, practicar, practicar y practicar. Enseñarles cosas como la programación basada en la evidencia ayudará a que la práctica sea más efectiva, pero nada puede reemplazar la práctica real.

Malfist
fuente
Me encanta algo de EBS (soy un ávido usuario de FogBugz). Sin embargo, no pensé en usarlo como ejemplo: buena sugerencia. Me inspiraré un poco.
Rob
6

Presente un problema de ejemplo usando Minecraft.

El cliente necesita una pirámide escalonada marrón de 20x20 bloques. La pirámide también necesita un foso de al menos 10 bloques de ancho.

Déles 3 minutos para hacer un bosquejo de una WBS simple y una estimación.

2 minutos después, diga que el cliente cambió de opinión y que ahora necesita una pirámide de 30x30. Dígales que revisen sus estimaciones en el minuto restante.

Al final del tiempo, dígales que bajen los lápices y ahora diga que los desarrolladores comienzan a trabajar en el proyecto pero que el cliente está confundido porque no había un puente que cruzara el foso.

Dígales que el puente tardaría X horas en desarrollarse y pida que todos los que subestimaron se pongan de pie.

Esto conducirá el punto a casa.

árbol de arce
fuente
2
Me gusta esto, pero si no estás familiarizado con Minecraft, no estoy seguro de cómo podrías llegar a una estimación que tenga sentido. ¿Cómo cuantificarías el tiempo que lleva construir una pirámide escalonada marrón?
Rob
1
@ Thomas Owens, creo que el punto maple_shaft es impresionar a los desarrolladores la importancia de descubrir ese tipo de requisitos. Como consultor, personalmente he visto muchos ejemplos de cosas ridículamente obvias que un usuario debería haber pedido, pero no lo hizo, porque no se dieron cuenta de que era lo que necesitaban. Todos mis desarrolladores y yo somos consultores, y en nuestra situación actual, no tenemos el lujo de contar con buenos ingenieros de requisitos, por eso estoy tratando de ayudarlos a hacerles preguntas de descubrimiento a sus clientes para ayudarlos a mejorar sus estimaciones. .
Rob
2
@ unforgiven3 Sin embargo, eso no tiene nada que ver con la estimación. El trabajo de ingeniería de requisitos puede recaer en un desarrollador, pero solo puede basar sus estimaciones en los requisitos conocidos. Mejorar su capacidad de analizar, verificar, validar y descubrir los requisitos es disjunto de mejorar su capacidad de estimar cuánto tiempo llevará realizar una tarea. Los requisitos cambian, por lo tanto, las estimaciones cambian, pero es imposible estimar lo que no sabe y no debería intentar.
Thomas Owens
1
@Thomas Owens, estoy de acuerdo en que es imposible estimar lo que no sabe, que es precisamente mi punto, debe descubrir los requisitos para una función y validar los supuestos sobre ella como un requisito previo para crear una estimación decente. Sin embargo, estoy de acuerdo, después de considerarlo, que es disjunto de mejorar la capacidad de estimar; quizás centrar la actividad en descubrir requisitos sería más útil de inmediato que una actividad de estimación. Puntos positivos: definitivamente me hacen pensar que tal vez me estoy centrando en la habilidad incorrecta para mejorar.
Rob
1
@ unforgiven3 Un buen ingeniero siempre debe estar trabajando para mejorar ambos. He estado en una posición en la que no se me asignó la tarea de ingeniería de requisitos, pero me entregaron una especificación que tenía lo que vi eran problemas. Tener la habilidad de verlos y hacer las preguntas correctas es esencial para cualquier persona que desarrolle software, y es necesario trabajarlo. Sin embargo, cuando estoy estimando, siempre basé mis estimaciones en la especificación, incluso si hay preguntas. Solo dejo una ventana más grande por error (dando 75% de posibilidades en lugar de 85%, o dando una ventana un poco más grande).
Thomas Owens
1

Sugiero un generador / solucionador de laberintos para los siguientes puntos:

  • Es divertido hacer
  • No puedes pensar en todos los casos por primera vez
  • La generación y la resolución de cosas son bastante complementarias.
  • Esto abarca desde el back-end con almacenamiento de datos hasta el front-end con carga de datos
  • Se pueden asignar muchos puntos a las personas: especificación de archivos, visualización, generación, resolución, optimización, pruebas, etc.
Whiskas
fuente
1

Puedes jugar el "¿Cuánto tiempo te tomaría escribir esto?" juego. Similar a un grupo de personas que se jactan de cómo pueden conducir a Las Vegas en X horas (donde el número X generalmente disminuye con cada fanfarrón hasta que alguien dice que puede hacerlo en menos de una hora). Entonces, para los programadores: deseche un objetivo simple y vea lo que dice cada individuo y si hay un consenso por parte del grupo u opiniones destacadas. ¿Cuánto tiempo te llevaría escribir hola mundo? ¿Qué significa "escribir", significa eso "correr" y "probar" también? ¿Requiere un entorno de simulación primero? ¿En qué plataforma y qué compilador cruzado y las herramientas ya están instaladas y listas? etc. "Hola mundo" puede tardar 4 días en "escribir" en una plataforma integrada (instalar herramientas, preparar la plataforma,

Después de que el equipo termine de decidir cuánto tiempo puede llevar el objetivo, mida cuánto tiempo lleva realmente (tal vez no para el objetivo sugerido sino para uno similar del mundo real) o recuerde un proyecto anterior con un objetivo muy similar. Compare la estimación con la real. Exagere enormemente el error entre la estimación y el real y publique una conclusión para todos.

Jonathan Cline IEEE
fuente