Timeboxing significa que as iterações não ficam mais longas
Você pergunta como diminuir as iterações. Mas isso implica que eles estão demorando mais, o que implica que você não está aplicando o boxe no tempo. Em qualquer iteração quando a complexidade começa a pesar mais (ou você tem outros contratempos imprevistos), não altera o comprimento da iteração. Em vez disso, você desce a adição incremental planejada no início da iteração. Alguns métodos iterativos sugerem fazer essa avaliação no meio de uma iteração (antes que seja tarde demais). Leia mais sobre o que o OpenUP sugere :
Gerenciar objetivos
Quando uma equipe está ficando para trás significativamente, ou ocorrem problemas críticos que impedem a equipe de atingir os objetivos da iteração, pode ser necessário fazer um trabalho descendente para garantir que a equipe ofereça um incremento útil do produto até o final da iteração, maximizando valor das partes interessadas. Trabalhe com a equipe e as partes interessadas para revisar o Plano de Iteração e, conforme necessário, reduzir a ênfase em tarefas menos críticas, adiando-as para uma iteração subsequente. Em casos raros, se os objetivos da iteração ainda parecerem impossíveis de atingir, a equipe pode considerar encerrar a iteração ou reformular a iteração para um novo objetivo.
Se você observar o primeiro gráfico, poderá ver que o valor agregado é menor nas iterações posteriores. Isso significa que as iterações ainda demoram tanto quanto antes, mas talvez haja menos novas funcionalidades (relativamente) em cada iteração.
Como você diz, a força da iterativa é reduzir o risco, obtendo feedback com frequência. Parece que você está falando sobre a complexidade do projeto perseguindo você nas iterações posteriores? Não concordo que isso seja uma fraqueza da iterativa. É uma fraqueza da complexidade mal gerenciada.
Teoricamente, você coloca os maiores riscos no projeto com antecedência. Isso significa que você tem um projeto muito instável, mas como você gerencia os grandes riscos, ele deve se estabilizar. A complexidade, é claro, é um dos riscos.
Linguagens de script e processos automatizados ajudam a reduzir o risco de complexidade, que pode ser chamado de complexidade "acidental" (e é discutido em outra resposta). Projetos altamente iterativos, porém complexos (o Chromium é um bom exemplo, mesmo que não seja um jogo), possuem muita infraestrutura para gerenciar a complexidade. Dê uma olhada em https://www.chromium.org/developers para ver muitos exemplos de coisas como conselhos de codificação para o BuildBot .
O que esta figura não mostra é a estabilidade do projeto, que provavelmente se parece com isso:
Até que os riscos técnicos sejam bem compreendidos, você estará lidando com protótipos simples