Itération, Développement itératif: clarifions enfin !

Itérer sur une proposition, recueillir le feedback, c’est trés bien …

(je dirais même c’est SUPER, assez tôt, c’est ce que préconise la Conception Centrée Utilisateur avec l’ISO 13407, c’est aussi une technique intégrèe par les méthodes Agiles ou le Lean Software Development),

… Mais, ce n’est pas faire du Développement Itératif, au sens Agile, au sens Ingenierie Logicielle, et ce n’est pas suffisant pour récolter un maximum de bénéfices…

Qu’est qu’une itération (sens agile) ?

Une itération c’est une courte période de temps, de durée fixe (1, 2, 3 ou 4 semaines) durant laquelle vont se dérouler une série d’activités (analyse, ergo, conception, codage, test…) et qui se termine par une livraison (interne ou externe).

SCRUM, méthode Agile la plus populaire, a résolu le problème et a levé les ambiguité en appelant ses itérations des Sprints !

On parle d’itératif et d’incrémental (notion complémentaire), dans le sens où chaque livraison constitue un incrément, qui sera complèté, affiné, modifié, enrichi à l’itération suivante, pour au final donner au bout de quelques semaines ou quelques mois le produit définitif.
Simple, non ? et bien ça, c’est le fondement des Méthodes Agiles !

Faire du développement itératif, c’est donc découper son projet en petits morceaux, ces fameuses itérations (comme des Shashimi) et ne définir précisément à l’avance que le contenu de l’itération qu’on démarre.

Le développement itératif et incrémental, comment ça marche ?

  • Une itération est donc courte (une itération de 2 mois n’a aucun intérèt)
  • Une itération a un objectif (« pour cette itération on va faire ça et ça ») qui sera revu formellement à la fin de l’itération (Revue de Sprint / Démo)
  • Une itération, c’est en soit un mini-projet qui va s’enrichir au fur et à mesure qu’on avance dans le temps
  • Une itération a un début (plutôt un lundi) et une fin (plutôt un vendredi)
  • La date de fin doit être respectée: on ne la bouge pas, c’est le principe du Timeboxing dont les bénéfices sont nombreux
  • Seul le contenu de l’iteration en cours est défini avec précision (avec l’équipe, lors de la réunion de planification)
  • Ce qu’on va mettre dans les itérations futures proches (+1, +2) est plus ou moins clair (en fonction des priorités et de la valeur); pour les itérations plus lointaines (itération +3 …) c’est plus flou
  • Dans tous les cas, le contenu et les activités des itérations futures ne sont précisément définis à l’avance d’où une plus grande réactivité et une meilleure prise en compte des changements
  • Plusieurs itérations, courant sur 3 ou 4 mois s’insèrent dans une release qui elle même s’insère dans un plan de release. Le tout vous donne une Vision à court, moyen et long terme pour votre produit.