Planification de release

La planification agile permet de s'adapter à la situation courante : à tout moment on donne la priorité à ce qui apporte le plus de valeur.

Une release est une série de sprints. Mais quand arrête t-on de faire des sprints pour finir la release ? A la lecture du premier article de Scrum(1996), voilà comment on décide :

quand les variables de temps, de concurrence, d'exigences, de cout et de qualité concourent à sortir une release.

Que penser de ces variables ?

  • La qualité ne devrait pas être considérée comme une variable, elle est obligatoire.
  • Le cout est déterminé par les ressources engagées et le temps qui passe. Comme en principe, les ressources sont stables dans une équipe Scrum, on peut anticiper.
  • La concurrence peut être vue comme une contrainte amenant à changer le plan initial pour sortir le produit plus tôt ou à ajouter une exigence (fonctionnalité) non prévue au départ.

D'après cet article, la date de fin est définie au cours du développement. La présentation de Scrum en 100 mots reprend tout à fait cette idée : on fait le point à la fin de chaque sprint et on décide d'arrêter (livrer) ou de faire encore un sprint. La fin est déterminée par un compromis entre les fonctionnalités qu'on voudrait voir dans le produit et la date à laquelle on souhaite le diffuser. C'est en ça que la planification est adaptative : on la revoit à chaque fin de sprint. L'outil essentiel pour évaluer l'avancement de la release est le burndown chart.

La planification d'une release repose sur l'ajustement de ces 2 variables : le contenu et la durée. Il est assez fréquent -c'est le cas sur les projets auxquels je participe- qu'on n'ait pas de degré de liberté sur une de ces 2 variables (si c'est sur les 2 en même temps, arggggggggggl) :

  • quand il faut réaliser une liste d'exigences identifiées, on parle alors de release à périmètre fixé, l'objectif de la planification est alors de calculer la date de fin.
  • quand il faut livrer à une date fixée à l'avance. C'est une release à date fixée. L'objectif de la planification est de calculer les fonctionnalités qui seront finies à cette date.