Document

PF et méthode Agile

Les Points de Fonction et le mode Agile

Story Points et/ou Points de Fonction

Par David Herron, Vice President of Software Performance Management (DCG David Consulting Group)

IFPUG – Metrics View Vol.10 issue 1 February 2016

Traduit de l’anglais par Dominique Basset

Faut-il utiliser les « Story Points » ou bien « les Points de Fonction » ou bien les deux ?

Ces questions sont amenées à se poser de plus en plus fréquemment, car l’usage de l’agilité est en constante croissance dans les organisations. Les questions principalement posées sur le sujet sont les suivantes :

  • Peut-on utiliser les Points de Fonction dans un projet Agile ?
  • Les Story Points sont-ils plus simples et plus rapides à mettre en œuvre que les Points de Fonction ?
  • Existe t’il une relation entre les Story Points et les Points de Fonction ?

Avant de passer directement aux réponses à ces questions, un certain travail de terrain est nécessaire pour une mise en perspective de ces deux modes de mesure.

Story Points

Selon https://tcagley.wordpress.com (1), les Story Points sont une mesure relative basée sur la perception par l’équipe projet de la somme de travail à réaliser. La détermination de cette taille est basée sur un niveau de compréhension de la complexité et de l’effort de travail nécessaire à la réalisation comparé avec d’autres unités de travail.

Les Story Points sont exprimés sous forme de plages numériques habituellement limitées à une séquence de nombres tels qu’une adaptation de la suite de Fibonacci (par exemple 1, 2, 3, 5, 8, etc.).

Les Story Points sont une mesure relative utilisée par les équipes agile généralement au cours d’une séance de sprint. Pour chaque user story est attribuée une valeur en Story Point basée sur la meilleure compréhension de tout le monde sur le niveau de difficulté de cette user story particulière. Bien sûr, le niveau de difficulté peut inclure des composantes différentes comme la complexité, la taille, la durée, l’effort et ainsi de suite. Quelle que soit l’échelle utilisée, dans ce processus appelé planning poker, les valeurs attribuées sont évaluées indépendamment par chaque individu, comparées par l’équipe, elles sont ensuite discutées pour parvenir à un consensus. Il n’y a pas de définition cohérente de ce que ces valeurs représentent, autre que de les utiliser comme une valeur comparative d’une user story plus ou moins grande / plus ou moins difficile / plus facile que l’autre au sein de l’équipe. Après un certain nombre d’itérations (sprints) il peut être établi une vitesse de référence (nombre de story point livrés par sprint) qui pourra servir à estimer les montants futurs de travail / effort dans les sprints à venir. Bien sûr, même si une équipe réalise exactement le même volume / complexité de travail par rapport à une autre équipe, leurs Story Points respectifs ne seront pas nécessairement les mêmes.

(1) Tom CAGLEY Président de l’IFPUG – International Function Point Users Group

Points de Fonction

« Les Points de Fonction mesurent un logiciel en quantifiant ses fonctionnalités par rapport aux besoins de son client final, en se basant principalement sur la conception logique de celui-ci » ; les règles sont régies par l’IFPUG – International Function Point Users Group (www.ifpug.org). Les Points de Fonction mesurent la taille du logiciel ou, plus précisément, la taille des exigences fonctionnelles qui serviront à spécifier la conception et pour lesquelles le logiciel livré devra fournir une solution adaptée au plus près des besoins des utilisateurs finaux. La taille d’une exigence est un élément d’information indispensable pour être en capacité d’estimer la durée et l’effort nécessaire au développement de cette partie du logiciel. Contrairement au Story Points, les Points de Fonction sont une unité de mesure normalisée et reproductible. Les Points de Fonction peuvent être mesurés de manière uniforme indépendamment de qui les mesures. Les Points de Fonction peuvent être utilisés sur des projets agiles et non agiles. En mode agile, les user story agile décrivent principalement les caractéristiques et les fonctions demandées par le « product owner ». Dans la méthodologie des Point de Fonction sont identifiés les 5 éléments clés suivant que sont : les entrées (ENT), les sorties (SOR), les interrogations (INT), les groupes de données externes (GDE), les groupes de données internes (GDI). Naturellement, une description suffisamment détaillés de ces éléments doit pouvoir permettre de rendre possible une mesure en Points de Fonction satisfaisante, principalement rendue possible sur la base d’une richesse documentaire suffisante. Une fois la taille en Points de Fonction déterminée, cette mesure peut être utilisée pour estimer le niveau d’effort ou encore pour calculer la productivité, la qualité ….

Des éléments de réponses ….

Peut-on utiliser les Points de Fonction dans un projet agile ?

Oui, les Points de Fonction peuvent être utilisés sur un projet agile. De fait, les Story Points et les Points de Fonction peuvent être utilisés sur des projets agiles et peuvent servir à gérer efficacement le projet et en mesurer la performance.

Nous savons déjà que les Story Points sont utilisés pour dimensionner la taille des user stories pour un sprint / une itération donnée. Les user stories peuvent également être dimensionnées en utilisant des Points de Fonction. Cependant, vous ne devez pas utiliser la taille en Point de Fonction pour estimer combien de temps une collection de user stories dans un sprint va prendre dès lors que vous avez déjà établi une cadence de référence de 2, 3, ou 4 semaines pour vos sprints.

Les Points de Fonction sont le plus utiles et fréquemment utilisés au début d’un projet agile, mais aussi à la livraison d’une nouvelle version ou d’une livraison importante de fonctionnalités. Au début d’un projet agile vous pouvez utiliser les Points de Fonction pour mesurer la taille de la totalité d’un backlog et utiliser cette information de taille complétée de toutes données additionnelles utiles, ensemble qui permettra d’estimer le coût total du projet et d’estimer une date de livraison prévisionnelle. Au « backend » du projet, vous pouvez comptabiliser le nombre total de Points de Fonction livrés, ce qui vous permettra de contrôler les niveaux de performance et de comparer les niveaux de performance des projets agile aux niveaux de performance d’autres méthodologies couramment en usage.

Les Story Points sont beaucoup plus faciles et plus rapides à utiliser que les Points de Fonction

Cet énoncé est vrai; les Story Points sont plus rapides et plus faciles à mettre en œuvre que les Points de Fonction. La question qui vient alors à l’esprit est quelle est alors la méthode la mieux appropriée pour arriver à ses fins. Le fait de se trouver en immersion dans une équipe projet fonctionnant en mode agile, et à ce titre attribuer des Story Points sur des user stories sélectionnées pour un sprint de backlog,  est un excellent exercice pour bien appréhender la complexité de ce que sera l’effort à produire sur ces user stories sélectionnées. Nous sommes ici en présence d’une approche collaborative qui implique l’équipe projet au complet et permet de disposer d’une compréhension collégiale pour chaque user story. Même si les Story Point ne sont pas affectés, la discussion seule apporte de la valeur ajoutée au mode de conduite de l’équipe projet.  Les Points de Fonction quant à eux exigent un examen plus détaillé des user stories disponibles et leurs comptages reproductibles nécessite une expertise indéniable sur le sujet et de la pratique. Il existe bien entendu des guides méthodologiques spécifiques qui permettent d’appliquer la norme et de réaliser les calculs appropriés, il est cependant  irréaliste de s’attendre à ce que chaque membre de l’équipe d’une équipe agile puisse disposer de ce niveau d’expertise. En conséquence, l’utilisation de Points de Fonction dans une organisation classique est généralement réalisée par une équipe de spécialistes « centralisée » qui seule sera capable de réaliser des comparaisons entre les différentes équipes et le portefeuille d’autres projets agiles. Les Points de Fonction sont également une unité de mesure de la taille qui sert à la fois aux  développeurs qu’aux utilisateurs finaux. Pour le développeur, les Points de Fonction sont utilisés pour gérer les résultats du projet. Pour l’utilisateur final (product owner), les Points de Fonction sont un moyen utile pour lister et quantifier ces propres attentes en termes d’identification, de caractéristiques et d’identifier les fonctions qui sont en cours d’élaboration et ce jusqu’à leurs déploiement. Il faut garder à l’esprit que la contribution directe des membres de l’équipe agile dans le dimensionnement par ses soins des tâches sur lesquelles elle va avoir à travailler directement a l’avantage de garantir une motivation pleine et entière sur le sujet, à contrario d’un dimensionnement « imposé » par l’équipe de comptage centrale de Points de Fonction.

Plus facile, plus rapide, plus agréable… certes, mais attention ce n’est pas ici le but final recherché. Le but final recherché est avant tout de pouvoir disposer de tous métriques ou d’ensembles de paramètres qui permettront de disposer de toutes informations utiles pour gérer au mieux la mise en œuvre de l’application définitive, aidant ainsi à prendre les bonnes décisions et à gérer aux mieux les attentes des utilisateurs finaux.

Et enfin ce qu’il faut garder à l’esprit, c’est que le problème qui apparait avec la vitesse et la facilité d’utilisation des Story Points, est qu’ils sont difficilement comparable entre équipes agiles. Pour chaque équipe agile indépendamment ce n’est pas un problème, mais pour l’organisation qui a besoin de construire et disposer de road maps de produits, de budgets annuels, de plans de charges pour ses ressources etc…, la perte de cohérence est significative.

Existe t’il Is une relation entre les Story Points et les Points de Fonction ?

Le scénario ci-dessous fait référence à l’exemple suivant …

 Itération  # User Stories  Story Points   FP     Complexité

     1                 10                     50            100      Simple      

     2                  5                      50             25       Complex    

Itération 1 – L’équipe a déroulé 10 user stories (au cours d’un sprint de deux semaines) pour lesquels ont été attribués un total de 50Story Points. La taille en Points de Fonction pour ces mêmes 10 user stories a été mesurée à 100 PF. Pour information les user stories étaient axées sur une simple transaction I/O traitement.

Itération 2 – L’équipe a déroulé 5 user stories (au cours d’un second sprint de deux semaines) pour lesquels ont été attribués un total 55 Story Points. La taille en Points de Fonction pour ces mêmes 5 user stories a été mesurée de 25 PF.

Question : En supposant que l’équipe a atteint une vélocité assez constante (50) pourquoi n’existe-t-il pas ici de corrélation entre PS et PF ?

Observations:

Les Story Points sont principalement apparentés à une certaine considération du niveau d’effort requis. Dans la première itération, les user stories concernent des traitements assez simples et de ce fait ont été attribués une moyenne de 5 Story Points chacun. Dans la deuxième itération, les user stories concernent des traitements plus complexes et pour lesquels de ce fait ont été attribuées une moyenne de 10 Story Points.

L’analyse en Points de Fonction quant à elle ne fait pas référence au niveau d’effort. Elle permet de  comptabiliser les caractéristiques et les fonctions livrées. Les user stories de l’itération 1 portaient sur des traitements entrées et sorties et représentaient un nombre élevé de Points de Fonction. Dans la deuxième itération, les user stories exigeaient un plus grand degré de traitement logique, pour des caractéristiques et des fonctions livrées moindre.

Les Story Points sont une mesure relative alors que les Points de Fonction sont une méthode cohérente et normalisée de dimensionnement. Est-ce à dire que les Points de Fonction ne peuvent pas être utilisés pour estimer un niveau de sprint ? Les sprints sont « time boxer », généralement réalisés sous forme d’itérations de deux semaines. L’objectif souhaité est de parvenir à dérouler un flux constant de travail de sprint à sprint (vélocité). Pour les équipes « agile », cette vélocité est mesurée de manière adéquate en utilisant des Story Points. Les Points de Fonction sont plus appropriés pour mesurer le résultat global du projet. Cela peut être fait à la livraison d’une version majeure  et / ou les Points de Fonction peuvent être appliqués lorsque le « product backlog » est d’abord développé comme un moyen pour estimer le niveau total d’effort qui sera nécessaire à tous les sprints.

Résumé

Story Points ou Point de Fonctions; devons-nous orienter notre choix sur l’un ou l’autre, ou bien encore sur les deux à la fois ? La réponse est les deux à la fois. L’emploi conjoint de ces deux méthodes de mesures est utile, toutes les deux concourent à atteindre l’objectif principal recherché qui est de gérer le plus efficacement possible un projet de développement logiciel.

Les Points de Fonction sont particulièrement bien adaptés pour réaliser une mesure globale d’un produit en début et fin de processus projet. La mesure en Points de Fonction réalisée au début d’un projet pourra être utilisée pour estimer la charge les coûts et les délais globaux. La mesure en Points de Fonction au moment de la mise en production de l’application  pourra être utilisée pour disposer notamment d’une mesure de la productivité. Les Story Points sont quant à eux efficaces pour gérer le flux de travail dans un projet agile. Ils servent aussi pour d’estimer la quantité de travail qui peut être accomplie par l’équipe dans une période de temps définie (sprint / itération).

Clairement, le meilleur usage est de mettre en œuvre ces deux méthodes en recouvrement l’une de l’autre, il sera donc important de prendre les orientations stratégiques les concernant et ce afin définir quand et comment elles seront utilisées ensemble plutôt qu’isolément, ce sera un choix tactique.

MetricViewsFebruary2016

L’article original se trouve dans le numéro de février 2016 de MetricViews. Le deuxième article sur le sujet contenu dans le présent magazine est en cours de traduction.

Téléchargez fichier