Cómo manejar grandes proyectos de I+D utilizando Scrum (o cualquier otro marco ágil)

Además de nuestras tareas habituales de desarrollo de software, tenemos algunas tareas importantes de I+D que nos resultan difíciles de encajar en nuestro marco scrum.

El problema principal es que no hay absolutamente ningún valor para el usuario antes de que se complete todo el proyecto, y es muy difícil desglosarlo.

Digamos que quiero crear un algoritmo que pueda distinguir a los gatos de los perros. Es posible que ya tengamos uno con un rendimiento del 98 %, pero necesitamos uno nuevo (desde cero) que pueda ofrecer el 99 %. Los pasos principales se verán así:

  1. hacer un estudio de literatura
  2. Adquirir algunas fotos de gatos y perros. Quizás también algún código para manejar las imágenes.
  3. Entrene un algoritmo basado en los datos y pruebe la precisión.
  4. Hacer una validación final de los resultados.
  5. Implementar el prototipo de trabajo en un producto.

Los pasos 1, 2, 4 y 5 son fáciles y se pueden desglosar más si es necesario. Sin embargo, el paso 3 es demasiado grande y demasiado incierto para ser solo una historia en sí misma. La experiencia muestra que el progreso será algo así como:

  1. Entrene el algoritmo usando el método de facto que se encuentra en el estudio de literatura
  2. Tenga en cuenta que necesita un mejor rendimiento, pero podría obtenerlo incorporando información especial en este caso de uso específico.
  3. Aplique el ajuste n. ° 1 que resulta mejorar el rendimiento en un x%
  4. Aplicar ajuste #2 .....
  5. .....
  6. n ajustes más tarde, ha alcanzado la meta de 99% de predicciones corregidas.

Sin embargo, dado que la adaptación/retoque es la parte principal del trabajo, a menudo es imposible predecir la cantidad de retoques necesarios, el efecto de un retoque y el tipo de retoques por adelantado. Creemos que planificar un proyecto como este es muy difícil.

Entendemos que uno de los objetivos principales (no los más importantes) del desarrollo ágil es que pueda adaptarse y cambiar de dirección según sea necesario, y eso es excelente. Pero, ¿cómo planificar/estimar una historia como esta, donde nos resulta muy difícil evaluar la carga de trabajo por adelantado e igualmente difícil desglosar el problema?

Cualquier comentario es bienvenido

Acabo de responder un similar pm.stackexchange.com/a/25022/33769

Respuestas (2)

También trabajo en un entorno similar.

Te sugiero:

  • Establece un número máximo de ajustes (o un cuadro de tiempo) y documenta los posibles "ajustes" y el tiempo que tardan
  • Trabaja en entender la velocidad de tu equipo y similar al punto anterior, trata de crear grupos de tareas y revisa el tiempo que están tomando

Estos dos puntos lo ayudarán a comprender cuánto pueden tomar cuando se requieren tareas o ajustes similares; podrá tener una idea más precisa de cuánto tiempo necesitará.

El proceso de desarrollo de software ágil fomenta el dimensionamiento relativo. es decir. ¿Qué tan grande es una obra frente a otra obra? En este caso, suena como:

  1. No tienes con qué comparar. Por lo tanto, el tamaño relativo realmente no se puede hacer.
  2. La mejora incremental (alcance del próximo ajuste) no se puede cuantificar.

Por lo tanto, necesita una referencia para el tamaño relativo. Por ejemplo, si tiene algunos números de un proyecto anterior en el que compara pájaros y peces. Eso podría ayudar.

Alternativamente, considere usar cascada o Kanban. Este tipo de trabajo suena más o menos adecuado para ser planificado como un proyecto en cascada.

Quien haya dado este voto negativo, ¿puede describir por qué votó negativo? Esto me ayudará a entender lo que me estoy perdiendo.