Timeboxing significa que las iteraciones no se alargan
Preguntas cómo acortar las iteraciones. Pero eso implica que están tomando más tiempo, lo que implica que no estás aplicando el boxeo de tiempo. En cualquier iteración cuando la complejidad comienza a pesar más (o tiene otros contratiempos imprevistos), no cambia la longitud de la iteración. En su lugar, desapunta la adición incremental que planeaste al comienzo de la iteración. Algunos métodos iterativos sugieren hacer esta evaluación en medio de una iteración (antes de que sea demasiado tarde). Lea más sobre lo que sugiere OpenUP :
Administre los objetivos
Cuando un equipo se está quedando atrás significativamente o se producen problemas críticos que impiden que el equipo cumpla con los objetivos de la iteración, puede ser necesario dejar de trabajar para garantizar que el equipo ofrezca un incremento útil del producto al final de la iteración, mientras maximiza valor de los interesados Trabaje con el equipo y las partes interesadas para revisar el Plan de iteración y, según sea necesario, reduzca el énfasis en tareas menos críticas posponiéndolas a una iteración posterior. En casos raros, si los objetivos de la iteración aún parecen imposibles de cumplir, el equipo podría considerar terminar la iteración o reformular la iteración a un nuevo objetivo.
Si observa el primer gráfico, puede ver que el valor agregado es menor en las iteraciones posteriores. Esto significa que las iteraciones aún duran tanto como antes, pero tal vez haya menos funcionalidad nueva (relativamente) dentro de cada iteración.
Como usted dice, la fortaleza de iterative es reducir el riesgo al recibir retroalimentación con frecuencia. Parece que estás hablando complejidad del proyecto que te persigue en las iteraciones posteriores? No estoy de acuerdo con que esto sea una debilidad de iterativo. Es una debilidad de la complejidad mal administrada.
Teóricamente, usted pone los mayores riesgos del proyecto por adelantado. Esto significa que tiene un proyecto muy inestable, pero a medida que gestiona los grandes riesgos, es supone que se estabilizará. La complejidad, por supuesto, es uno de los riesgos.
Los lenguajes de secuencias de comandos y los procesos automatizados ayudan a reducir el riesgo de complejidad, que se puede llamar complejidad "accidental" (y se analiza en otra respuesta). Los proyectos altamente iterativos pero complejos (Chromium es un buen ejemplo, incluso si no es un juego) tienen mucha infraestructura para gestionar la complejidad. Eche un vistazo a https://www.chromium.org/developers para ver muchos ejemplos de cosas como codificar consejos para BuildBot .
Lo que esta figura no muestra es la estabilidad del proyecto, que probablemente se parece a esto:
Hasta que se entiendan bien los riesgos técnicos, se trata de prototipos simples