Première étape de mon parcours au travers d’un référentiel Agile CMMI, et premier billet d’une longue série qui s’adresse en priorité à mes lecteurs AGILISTES, aux praticiens CMMI et à ceux qui s’intéressent de prés ou de loin à l’amélioration des processus.
Ma posture est celle d’un coach agile qui accompagne une organisation cherchant à atteindre, pour diverses raisons, le niveau de maturité 3 CMMI, mais souhaitant garder un mode de fonctionnement agile fondé sur des pratiques SCRUM et XP.
Voici donc REQM, « Gestion des exigences« , l’un des 7 domaines du Niveau de maturité 2, dont l’intention est de « gérer les exigences des produits et composants de produits du projet et d’identifier les incohérences entre ces exigences et les produits d’activité du projet ».
La gestion des exigences (REQM) est avec RD (Développement des exigences) la base de ce qu’on appelle l’Ingénierie des exigences, des activités ô combien cruciales dans les projets informatiques. Les exigences sont fonctionnelles (« ce que les système doit faire ») ou non fonctionnelles (attributs de qualités, par exemple fondés sur l’ISO 9126).
Au programme, REQM dans une perspective Agile CMMI :
- Quels sont les objectifs spécifiques à satisfaire OBLIGATOIREMENT?
- Quelles sont les pratiques spécifiques initialement recommandées, et comment l’agilité se marrie-t-elle avec celles-ci?
- Quels sont les objectifs génériques à satisfaire OBLIGATOIREMENT ( Niveau 2 & 3), et comment se positionne l’agilité sur les pratiques génériques initialement recommandées?
1 OBJECTIF(S)SPECIFIQUES A SATISFAIRE OBLIGATOIREMENT POUR CMMI
REQM SG1 : Gérer les exigences
OK AGILE CMMI
Un seul objectif à satisfaire mais il est de taille. Les exigences sont gérées, et les incohérences avec les plans du projet et les produits développés sont identifiées. C’est l’objectif à atteindre, et l’agilité le permet largement.
2 PRATIQUES(S)SPECIFIQUES DE REFERENCE RECOMMANDEE POUR CMMI
Il s’agit des pratiques recommandées dans le modèle théorique. Non imposées, elles servent souvent de guide pour ceux qui démarrent leur projet d’amélioration des processus mais peuvent être remplacées par des pratiques alternatives, contextualisées à l’entreprise, pourvu qu’elle permettent d’atteindre l’objectif fixé. L’idée pour nous est de prouver qu’avec un process Agile, vous gérez les exigences !
REQM-SP1.1 Développer une compréhension commune des exigences et de leur signification avec ceux qui les ont fournies.
OK AGILE CMMI
L’agilité se retrouve bien dans cette pratique qu’elle pourrait faire sienne. Les ateliers de travail, les face à face, pour construire de manière collaborative une Vision PARTAGEE, et un Backlog de produit, ESTIME et PRIORISE vont dans ce sens. La réunion de lancement en fait partie. Les critères d’acceptation portant sur chaque User Story (élément du Backlog) prolongent cet effort de compréhension commune et concourent à l’atteinte de l’objectif.
Qui : Product Owner, Equipe
Quoi : Vision, Backlog de produit, Réunion de lancement, Réunion d’estimation, Réunion de planification, User Stories
REQM-SP1.2 Obtenir des participants au projet leur engagement sur les exigences.
OK AGILE CMMI
Engagement et responsabilisation : voilà des points forts des méthodes Agiles. La réunion de planification (à chaque début de sprint) est un moment où l’équipe s’engage collectivement sur la réalisation, durant le sprint, d’une partie du Backlog de produit (et user stories). Chaque jour, les membres de l’équipe s’engagent sur la réalisation d’une tâche pour construire les user stories : c’est le Daily Scrum.
Qui : Equipe, ScrumMaster
Quoi : Réunion de planification (CR PPT ou Wiki), Daily Scrum
REQM-SP1.3 Gérer les modifications aux exigences au fur et à mesure de leur évolution en cours de projet.
OK AGILE CMMI
Maintien et contrôle des exigences : c’est aussi l’objectif du Backlog de produit, qui vit et évolue au fur et à mesure de l’avancée du projet. Il est actualisé à la fin de chaque Sprint (suite à la réunion de fin de sprint).. Historiser les versions du Backlog est très pertinent dans un contexte CMMI.
Le changement dans les exigences peut se traduire aussi au niveau des user stories (éléments du Backlogde produit). Mettre à jour, faire vivre, la partie « Conversation » de l’User Stories est déjà une pratique en place chez beaucoup d’équipes.
Le burndown chart montre concrètement au quotidien ce qui est réalisé, et les changement éventuels survenus.
Au final, ce qui compte ici, c’est UN BACKLOG DE PRODUIT ET DES USER STORIES à JOUR.
Qui : Product Owner, Equipe
Quoi : Backlog de produit, User stories, Burndown Chart, Réunion de fin de sprint (CR PPT ou Wiki)
REQM-SP1.4 Maintenir une traçabilité bidirectionnelle entre les exigences et les produits d’activité.
OK AGILE CMMI
On s’en fait une montagne, et pourtant …il suffit d’envisager la fonction développée et présentée en DEMO comme la barquette de viande vendue au supermarché. Le cas échéant, on doit pouvoir remonter toute la chaine, et mesurer les enjeux collatéraux. Pour les végétariens, vous vez aussi la métaphore du Petit Poucet J Le quatuor (Backlog de produit – User Stories – Tâches – Produit Développé) assure un système de suivi des exigences souple et performant, se concrétisant dans la démo de fin de sprint. CMMI attend une matrice de traçabilité des exigences. Les feuilles de calcul et les outils du marché gérant les Backlog de produit permettent d’atteindre cet objectif.
Qui : Product Owner – Equipe
Quoi : Backlog de produit, Démo, Réunion de fin de sprint (CR PPT ou Wiki)
REQM-SP1.5 Identifier les incohérences entre les plans du projet et les produits d’activité d’une part et les exigences d’autre part.
OK AGILE CMMI
Cette pratique est un vrai point fort de l’Agilité. Elle s’effectue de manière continue, dans la collaboration, durant tout le sprint avec comme clé de voute les critères d’acceptation définis pour chaque User story mais aussi grâce aux daily scrum. La démo de fin de sprint est un RDV formel permettant de déterminer ce qui a été fait ou pas, ce qui est bien fait de ce qui ne l’est pas. Ce RDV qui donne lieu potentiellement à des actions correctives et à l’actualisation du Backlog de produit. FEEDBACK ET ADAPTATION.
Qui : Product Owner – Equipe – ScrumMaster
Quoi : Backlog de produit, User Stories, Daily Scrum, Démo, Réunion de fin de sprint (CR PPT ou Wiki)
3 OBJECTIF(S) GENERIQUES A SATISFAIRE OBLIGATOIREMENT POUR CMMI, et PRATIQUES ASSOCIEES
REQM GG1 : Réaliser les objectifs spécifiques
OK AGILE CMMI
En somme pour REQM, les exigences doivent être gérées (renvoie à REQM SG1 : Gérer les exigences)
REQM GG2 : Institutionnaliser le processus en tant que processus discipliné
OK AGILE CMMI
Là cela devient intéressant… Cet objectif n’est pas le plus simple à atteindre ; il est pourtant nécessaire dans les contextes CMMI et Agile CMMI. Il ne nécessite pas forcement une adaptation des pratiques Agiles, mais plutôt un élargissement de celle-ci à l’entreprise : « J’ai réussi un projet agile, et je souhaiterais capitaliser et faire en sorte que mes autres projets en bénéficient ». Des expériences que je capitaliserais à nouveau pour les améliorer.
Je vous parle donc de PROCESS AGILE, Capitalisation et amélioration continue. Je vous parle donc d’ENTREPRISE AGILE… C’est dans l’ère du temps non ?
REQM-GP2.1 Établir et maintenir une directive organisationnelle traitant du processus Gestion des exigences…
OK AGILE CMMI
C’est un élément incontournable de mon Process Agile. Je m’appuie généralement sur le sponsor pour travailler cette directive qui vient d’en haut. Le plus souvent, elle reste générique (les méthodes agiles) mais on peut aborder brièvement, c’est mieux, la gestion « agile » des exigences (développement et gestion). C’est en quelque sorte officialiser le process Agile dans l’entreprise.
Qui : Coach Agile, Sponsor, Direction, Equipes
REQM-GP2.2 Planifier le processus Gestion des exigences…
OK AGILE CMMI
Une adaptation des pratiques agiles est nécessaire puisqu’on doit introduire pour chaque projet un plan de projet ou charte projet qui décrira dans les grandes lignes le Qui, Quoi, Quand, Ou du projet. Je conseille aux équipes de le faire en Sprint 0 et demande au ScrumMaster de s’en charger. C’est un petit doc, commun à beaucoup de domaines de process CMMI (exigences, risques, qualité …). C’est court, PPT, Word ou Wiki.
Qui : ScrumMaster.
REQM-GP2.3 Fournir les ressources adéquates pour le processus Gestion des exigences…
OK AGILE CMMI
Preuve doit être donnée que les ressources adéquates (humaines, outils …) ont été fournies. Dans notre cas, cela passe entre autres par le choix de l’outil de Backlog, et par la désignation d’un Product Owner (disponible). Cette pratique m’est très utile car elles la question des moyens est souvent un facteur d’échec des projets agiles. Avec cette pratique, on gagne en maturité. Cette activité fait partie intégrante du rôle du ScrumMaster, en Sprint 0. Donc pas de problème.
Qui : ScrumMaster.
REQM-GP2.4 Assigner la responsabilité et l’autorité pour mettre en œuvre le processus Gestion des exigences…
OK AGILE CMMI
C’est une composante du Process Agile, à inclure dans le Plan de projet. Qui fait quoi ? Cela revient à décrire brièvement le rôle de Product Owner …
Qui : ScrumMaster.
REQM-GP2.5 Former les personnes qui mettent en œuvre ou soutiennent le processus Gestion des exigences…
OK AGILE CMMI
Cela fait partie de mon travail de coach Agile. Dans ce cas précis, cela passe par la mise en place de formations et ateliers dédiés au Product Owner, aux testeurs, à l’équipe.
Qui : Coach Agile.
REQM-GP2.6 Placer les produits d’activité identifiés du processus Gestion des exigences au niveau de contrôle approprié…
OK AGILE CMMI
Comme sur tous les projets informatiques … Il s’agit du niveau de configuration d’éléments comme le Backlog de produit ou les User Stories. Les CR de réunions de planification ou de sprint rentrent aussi dans cette catégorie.
Qui : Product Owner, ScrumMaster.
REQM-GP2.7 Identifier et impliquer les parties prenantes concernées par le processus Gestion des exigences…
OK AGILE CMMI
Un petit tableau dans le Plan de projet fait en Sprint 0 est tout à fait pertinent. Le Product Owner est l’acteur principal sur laquestion mais, l’équipe (en particuliers les testeurs) est fortement partie-prenante. Business analysts, Ergonomes, Utilisateurs… sont aussi concernés.
Qui : ScrumMaster.
REQM-GP2.8 Suivre et contrôler le processus Gestion des exigences …
OK AGILE CMMI
Cette pratique consiste à suivre l’avancement des activités de gestion des exigences sur la base d’indicateurs. La fin du sprint est un jalon essentiel avec la collecte de données : sur les user stories (Done / Ready), le burndown chart, les changement sur les stories…. Cela fait partie « par défaut » des attributions du ScrumMaster.
Qui : ScrumMaster
REQM-GP2.9 Évaluer objectivement le respect du processus Gestion des exigences…
OK AGILE CMMI
Relié aussi au GP2.2. C’est du QA. Le ScrumMaster est le garant de la bonne application du Process Agile sur le projet. Cela fait partie « par défaut » de ses attributions. Maintenant attention, le Process Agile est adaptatif…
Qui : ScrumMaster.
REQM-GP2.10 Revoir l’état du processus Gestion des exigences avec la hiérarchie et résoudre les problèmes…
OK AGILE CMMI
C’est à la fois donner de la visibilité et remonter des problèmes potentiels à la hiérarchie. C’est justement le rôle du ScrumMaster (le « Chien de berger ») qui doit aussi protéger l’équipe et faire remonter, les obstacles éventuels soulevés par l’équipe (par exemple en Daily Scrum). Il peut s’appuyer sur des éléments du radiateur d’informations, burndown chart et fiches de Sprint pour donner de la visibilité à sa hiérarchie sur cette question des exigences.
Qui : ScrumMaster, Product Owner, Hiérarchie
REQM GG3 : Institutionnaliser le processus en tant que processus ajusté
OK AGILE CMMI
Comme précédemment, pas facile mais nécessaire (pour la maturité 3). On est plus que jamais dans du Process Agile…on est dans du standard mais dans une perspective qui me plaît bien, c’est à dire adaptative et non figée, fondée sur l’amélioration continue.
REQM-GP3.1 Établir et maintenir un processus Gestion des exigences ajusté
OK AGILE CMMI
Une description du processus Agile « standard » de l’entreprise doit être disponible .Elle servira de référence, mais sera ajustée à chaque projet (cela doit être prouvé). On est en plein dans de l’AGILITE en CONTEXTE.
Définir le Process Agile standard, de manière collaborative et participative (jamais seul !)cela fait partie de mon travail.
L’adaptation au projet : c’est le boulot du ScrumMaster avec l’équipe et le Product Owner.
Qui : Coach Agile, les ScrumMaster, les Product Owner, les Equipes
REQM-GP3.2 Collecter l’information d’amélioration du processus Gestion des exigences
OK AGILE CMMI
Le projet doit se servir de retour d’expérience à la fois pour le Process Standard et pour les autres. C’est très agile, c’est très adaptatif (niveau organisation), et c’est la base de l’amélioration continue. Les agilistes doivent se féliciter de cette pratique.
Qui : Agile, les ScrumMaster, les Product Owner, les Equipes
Une autre référence sur la sujet : Flex »i »MMI
Du bien bel ouvrage;
Une seule rq sur la GP2.8 : Comment assurer l’objectivité de l’appréciation de la conformité de ce qui est fait par rapport à ce qui est planifié (GP2.2), voire exigée (GP3.1) ?
Je ne suis pas certain que le ScrumMaster soit le plus approprié ; un acteur « QA » externe au projet est le plus souvent recommandé
Cordialement
Nous retravaillons nos processus d’exigences.
Merci pour cet article de fond qui alimente notre réfléxion.
A trés bientôt.
Bonjour,
intéressant de faire le parallèle entre la gestion des exigences CMMi et les methodes agiles (Srcum surtout).
Toutefois certains points ne me semble pas être judicieux dans le mode de fonctionnement :
REQM SP1.2 : l’engagement est celui de toutes les parties prenantes, et dans votre descritpion je ne vois pas le Client ?
REQM SP1.3 / 1.4 : gérer les modifications (et être capable de faire de la traçabilité & analyse d’impact). Comment déterminer l’impact d’une modification, d’une évolution, d’un abandon d’une exigence avec une gestion de certaines exigences qui seront accrochées à un tableau en format post-it ? Comment avoir la trace que cette modification a été demandé par le client, ou vient d’une caractéristique d’implémentation par exemple ?
Tout ceci reste toutefois très intéressant et je continuerai à suivre votre voyage 🙂
Bonjour,
@Jack : la notion de partie prenante (« stakeholders ») est un concept quelque peu générique pour nommer l’ensemble des personnes qui sont impliquées de prés ou de loin dans le projet. Le Client est donc inclus dans cette notion.
Pour ce qui des modifications, la notion de post-it me perturbe un peu mais peut être est ce ma méconnaissance de la méthode Agile. Au delà des « post-it », il existe des outils type DOORS qui permettent de gérer des exigences et voir les impacts de tout changement. Dans le cas de projets plus petits il est possible de gérer tout cela dans un fichier excel de suivi des exigences (id, libellé, date validation, date implémentation, date suppression…). Du moment où ce fichier est tenu à jour, la traçabilité existe. L’intérêt est également d’utiliser l’id de l’exigence dans toutes les phases du projet pour une traçabilité complète.
Personnellement, je préconise d’ajouter une notion de « criticité » à chaque exigence. Cette criticité se base sur l’importance fonctionnelle pour le Client ou les utilisateurs et la criticité technique (un batch qui doit traiter des millions de lignes dans un temps contraint). La notion de criticité permettra donc de prioriser les développements mais également, et surtout, les tests internes afin d’éviter de tester les fonctionnalités critiques en fin de phase de tests.
Cela parait une évidence mais combien de fois ai-je vu des projets « capoter » ou prendre du retard (et annoncer au client très tardivement ce décalage => ce qui va à l’encontre du CMMI qui doit permettre une amélioration de la prédictibilité) à cause de ce manque de priorisation.
Cdt
Bonjour
@ JP Douet:
Repassant par là, je viens de lire ton post.
– Ce que je dis, c’est que je vois pas dans ce Poste de jeanc clause où est le client le vrai, celui qui finance et l’utilisateur final – sinon je sais ce que veut dire parties prenantes 🙂
Il me semble difficile d’avoir un engagement uniquement verbal d’une partie des personnes engagées sur le projet. L’engagement ne signifie pas juste de dire qu’à la fin de la journée j’aurai fait quelques petits user stories ou une partie du backlog [cf http://www.journaldunet.com/developpeur/expert/44134/gestion-des-exigences-cmmi—soyez-agile.shtml%5D
– Vous parlez de Doors, il y a aussi un concurrent: CALIBER (et peut être même QC d’ici quelques années même si la V10 intégre les Exigences selon CMMI).
– Quant à votre remarque sur la criticité, je suis d’accord avec vous..