Certains parlent de l'itération 0, d'autres d'une phase de préparation. Je préfère la notion de préparation, parce qu'il ne s'agit pas d'une itération au sens où s'entendent les suivantes : la plupart du temps, il n'y a pas de produit partiel au bout, mais seulement des documents et des plans. Le RUP qui, s'il n'est pas toujours vu comme agile, est clairement itératif propose une phase appelée Inception qui a à peu près le même objectif (en mettant plus l'accent sur l'architecture).
En fait la question intéressante est : de quoi dois-je disposer pour commencer ma première itération dans de bonnes conditions ?
Ce qui me semble indispensable :

  • une liste des exigences (il ne s'agit évidemment pas de faire une spécification détaillée)
  • une solution qui tienne la route ("proof of concept" de l'architecture)
  • une organisation en place (l'équipe)
  • et un plan initial de la release

Une planification de la release suppose d'avoir, à partir de la liste des exigences, :

  • estimé les exigences (en points)
  • défini la priorité (l'ordre dans lequel développer les exigences).

Si en plus on définit la durée des itérations et on estime la vélocité, on peut déduire une date de fin pour la release et les exigences qu'on pense pouvoir faire pour cette date, compte tenu des connaissances actuelles. C'est avec ce plan de la release (à mettre à jour régulièrement) que la première itération peut commencer dans de bonnes conditions.