CMMI ou comment maîtriser vos développements

Publié le Mis à jour le Par

Dans un contexte de mondialisation et de concurrence chaque jour un peu plus sévère, la maîtrise des coûts et des délais est devenue une priorité pour tous les acteurs de l’industrie. Or, le moins que l’on puisse dire, c’est que ce n’est pas le point fort de l’industrie logicielle, qui est habituée à des dépassements qui seraient jugés inacceptables dans bien d’autres contextes. Des modèles existent aujourd’hui pour remédier à ces travers en rationalisant les processus de développement. CMMI® en fait partie.

La genèse de CMMI

L’industrie logicielle a souvent été pointée du doigt pour son manque de fiabilité tant sur le plan du respect des délais que de la qualité des produits livrés. A tel point qu’au milieu des années 80, le Department of Defense (DOD) américain lançait un appel d’offre pour l’élaboration d’un référentiel de critères permettant d’évaluer la capacité de ses fournisseurs. Après une lente mais nécessaire maturation, la première version du « Modèle d’évolution des capacités logiciel » (Capability Maturity Model®) voyait le jour en 1991, fruit du travail conjoint du Software Engineering Institute (SEI), un centre de recherche financé par le DOD, et du Mitre Corporation, une organisation à but non lucratif.

Cette première version était composée d’une liste de pratiques réparties par secteurs-clés (Gestion des exigences, Planification de projet, etc.), sur lesquelles s’appuyait une méthode d’évaluation du niveau de maturité d’une entreprise dans le domaine du développement logiciel. Les niveaux de maturité étaient répartis sur une échelle allant de 1 (initial) à 5 (en amélioration continue). Deux ans plus tard, en 1993, le SEI rendait public une version améliorée de son modèle, CMM version 1.1.

Très vite, l’engouement autour de ce modèle d’amélioration des processus de développement allait dépasser la seule industrie du logiciel, donnant naissance à de multiples « clones » : SE-CMM (pour System Engineering), SA-CMM (pour Software Acquisition), IPD-CMM (pour Integrated Product Developpement) et même People-CMM (pour la gestion des ressources humaines). Tant et si bien qu’il fallut rebaptiser le CMM « initial » en SW-CMM (pour Software), afin d’éviter les confusions. Dans le même temps, d’autres modèles voyaient le jour ; citons par exemple SPICE (Software Process Improvement and Capability dEtermination), de l’organisme ISO, ou SECAM (Systems Engineering Capability Assessment Model) de l’International Concil on System Engineering (INCOSE).

Cette prolifération de modèles (complémentaires ou concurrents) engendra une certaine confusion allant à l’encontre du but initialement recherché : la rationalisation des processus. Aussi fut-il décidé de rassembler tant bien que mal les divers modèles au sein d’un modèle unique baptisé Capability Maturity Model Integration® (CMMI). Dans la version actuelle (CMMI version 1.1) datant de 2002, seule la gestion des ressources humaines n’a pas (encore ?) été intégrée.

A noter que pour ne pas entrer en conflit direct avec CMMI, la norme ISO/IEC15504 issue de SPICE se contente de définir des exigences pour réaliser une évaluation, dont en particulier l’utilisation d’un modèle compatible avec un « modèle de référence », tout en fournissant (mais sans obligation de l’utiliser) son propre modèle. Le modèle CMMI respecte également ces exigences, et constitue donc une alternative.

Un modèle, deux représentations

Le modèle CMMI s’articule autour d’un certain nombre de secteurs-clés (25 au total dans sa version complète, mais il existe des modèles allégés pour des applications à des domaines particuliers), auxquels sont associés des objectifs et des pratiques. On distingue des objectifs génériques et des objectifs spécifiques, selon qu’ils sont partagés par tous les secteurs-clés ou qu’ils sont spécifiques à un secteur en particulier. Idem pour les pratiques.

Deux modes de représentation du modèle coexistent, correspondant à deux points de vue légèrement différents : la représentation continue (continuous) et la représentation étagée (staged). Les deux s’appuient sur les mêmes secteurs clés, mais ceux-ci sont utilisés différemment.

La représentation continue

Dans cette représentation, les secteurs-clés sont regroupés en quatre catégories : Gestion de processus, Gestion de projet, Ingénierie et Support, comprenant respectivement 5, 8, 6 et 6 secteurs-clés. A chaque secteur-clé est associé un niveau de capacité, sur une échelle allant de 0 à 5 :

| Niveau | description |
|Niveau 0 – Incomplet|Les objectifs associés à ce secteur-clé ne sont pas remplis. |
|Niveau 1 – Réalisé|Les objectifs sont atteints, mais cette réussite repose essentiellement sur les individus.|
|Niveau 2 – Géré|Les objectifs sont remplis en suivant des plans pré-établi.|
|Niveau 3 – Défini|Une politique de normalisation des processus est mise en place au niveau de l’organisation.|
|Niveau 4 – Maîtrisé|Des mesures sont effectuées pour contrôler les processus et agir en cas de déviation par rapport aux objectifs de l’organisatio.n|
|Niveau 5 – En optimisation|Les processus sont sans cesse remis en question afin d’être toujours en adéquation avec les objectifs de l’organisation.|

Il est ainsi possible de déterminer le profil d’une organisation, en étudiant pour chaque secteur-clé son niveau de capacité. Tous les secteurs-clés n’atteignent pas forcément le même niveau, ce qui permet de déceler les points forts et les points faibles de l’organisation.

La représentation étagée

Dans cette représentation, c’est un niveau global de maturité de l’organisation qui va être déterminé, et non pas un niveau par secteur-clé. Les 25 secteurs clés sont regroupés par niveaux de maturité sur une échelle de 1 à 5, comprenant chacun respectivement 0, 7, 14, 2 et 2 secteurs-clés. Les niveaux de maturité ont les caractéristiques suivantes :

| Niveau | description |
| Niveau 1 – Initial | Les processus sont imprévisibles et incontrôlables.|
| Niveau 2 – Géré | Des procédures sont mises en place pour chaque projet.|
| Niveau 3 – Défini | Les processus sont définis et documentés au niveau de l’organisation. |
| Niveau 4 – Maîtrisé | L’organisation se fixe des objectifs quantitatifs et qualitatifs et se dote de moyens pour contrôler qu’ils sont atteints. |
| Niveau 5 – En optimisation | Les processus sont en continuelle amélioration. |

Le niveau de maturité de l’organisation va être ainsi déterminé en examinant quels sont les secteurs-clés dont les objectifs sont remplis. Tant que les 7 secteurs-clés du niveau 2 ne sont pas validés, l’organisation reste au niveau de maturité initial. Une fois atteint le niveau 2, elle y restera tant qu’elle n’aura pas validé les 14 secteurs-clés du niveau 3, et ainsi de suite jusqu’au niveau 5. Cette représentation donne donc une marche à suivre pour l’amélioration des processus, en imposant un ordre dans la réalisation des objectifs.

Choisir une représentation

Les deux représentations permettent d’aborder le problème de l’amélioration des processus au sein d’une organisation sous deux angles différents. La première représentation, continue, donne une grande liberté dans le choix des secteurs-clés à améliorer en priorité, puisque ce choix n’est nullement contraint. Il permet également une finesse dans l’analyse, chaque secteur-clé étant à tout moment évalué. Mais le risque existe pour l’organisation de se trouver face à un chantier trop important, sans savoir par quel bout l’entamer. De plus, la détermination des niveaux de capacité pour chaque secteur peut se révéler trop subjectif.

La seconde représentation, étagée, laisse moins de liberté et donne moins de détails sur l’organisation, puisque seul un niveau global de maturité est déterminé. Mais elle fournit un guide appréciable pour la conduite de l’amélioration en imposant l’ordre des secteurs à améliorer. Elle est en outre plus facile à mettre en œuvre : pour chaque secteur-clé, il s’agit simplement de savoir s’il est validé ou pas.

La représentation continue sera ainsi plus adaptée aux petites structures, dont on maîtrise les moindres rouages et pour lesquelles le risque de se perdre dans les détails est relativement faible ; la représentation étagée sera plus adaptée aux grosses structures, auxquelles elle fournira des règles solides et une vue synthétique.

Reste qu’il est possible de passer sans difficulté de la représentation continue à la représentation étagée : il suffit de prendre tous les secteurs-clés d’un niveau de maturité donné ; pour chacun de ces secteurs-clés, on pourra déduire de son niveau de capacité s’il est validé ou pas.

Mise en œuvre de CMMI

CMMI propose un cadre permettant d’évaluer le niveau de maturité d’une entreprise, et par là sa fiabilité. Le modèle fournit une liste d’objectifs et de pratiques à instaurer, par secteur, pour prétendre à un certain niveau. La mise en œuvre d’une démarche d’amélioration des processus s’appuyant sur CMMI au sein d’une organisation est un processus qui se fait dans la durée et avec l’appui de toute la hiérarchie, des dirigeants aux exécutants. Elle réclame le passage par un certain nombre d’étapes, que nous allons voir rapidement ici.

Définition des objectifs

Cette phase est réalisée conjointement avec la direction. Il s’agit de définir quelles sont les raisons qui ont été à l’origine de la démarche, quels sont les bénéfices escomptés, quelles ressources vont pouvoir être allouées, etc. Le choix de la représentation (continue ou étagée) est arrêté et un planning établi pour fixer les prochaines échéances.

Sensibilisation

La mise en place d’une méthodologie comme CMMI va nécessairement engendrer des réticences et des blocages à différents échelons. Aussi une sensibilisation, à travers des présentations ciblées par cœur de métier, est-elle nécessaire.

Audit interne

Un audit des pratiques et méthodologies en vigueur dans l’organisation va ensuite avoir lieu, afin de déterminer le niveau (capacité ou maturité, selon la représentation choisie) de l’organisation. Cet audit consiste en des questionnaires et des entretiens avec le personnel, ainsi qu’en l’analyse des méthodes et outils utilisés.

Identification des secteurs prioritaires

En s’appuyant sur les résultats de l’audit interne, la direction peut identifier les secteurs à améliorer et hiérarchiser les besoins en fonction des objectifs de l’organisation. Cette définition des priorités va permettre la rédaction d’un plan d’action.

Mise en place

L’étape suivante est la mise en place du plan d’action : rédaction des nouvelles directives, installation des nouveaux outils, rédaction des nouvelles méthodologies, formation du personnel, etc. C’est à ce stade que l’on se rend compte du degré d’acceptation par l’ensemble de l’organisation de tout le processus d’amélioration.

Bilan

Une fois la mise en place terminée, il reste à faire le bilan, pour d’une part évaluer les effets positifs et/ou négatifs de la démarche, et d’autre part définir les prochaines étapes dans le processus d’amélioration.

Risques et bénéfices

La mise en place d’une démarche de rationalisation s’appuyant sur CMMI (ou sur tout autre modèle) n’est pas sans présenter des risques. Le risque le plus important est commun à toute tentative pour faire évoluer les choses : la résistance au changement. Afin de minimiser ce risque, il faut s’assurer d’une part du soutien inconditionnel de la direction (ce qui n’est pas forcément gagné d’avance, bien que la décision provienne en général de cette même direction) ; et d’autre part de l’adhésion et de la participation d’un maximum de collaborateurs au processus d’amélioration, ce qui ne pourra se faire que si la sensibilisation a été convaincante.

Un autre risque identifié provient de la relative complexité du modèle, qui nécessite une adaptation aux besoins et aux objectifs réels de l’organisation. Vouloir trop en faire d’un coup risque de se transformer en une tâche insurmontable et par là de condamner définitivement tout effort ultérieur en ce sens. Il faut savoir rester modeste dans ses ambitions, procéder par petites couches successives en réitérant le processus plusieurs fois.

Enfin, il ne faut pas perdre de vue que CMMI ne constitue pas une méthodologie, mais un modèle : il décrit ce qu’il faut réaliser, mais il ne dit pas explicitement comment le réaliser. Il ne faut donc pas croire que CMMI soit une solution miracle qui résoudra tous vos problèmes : c’est à chaque organisation de définir les méthodes et outils à mettre en place de façon à satisfaire les critères.

Ces risques étant identifiés, les bénéfices procurés par la mise en place d’une démarche d’amélioration des processus sont indéniables. C’est tout d’abord l’occasion de se demander, pour chaque pratique en vigueur dans l’organisation, si elle est justifiée et optimale. Le seul fait de remettre à plat tout le processus de développement nécessite un formalisme et une rigueur qui doivent permettre d’en avoir une meilleure vision.

Ensuite, la mise en adéquation de ce processus avec les pratiques-clés de CMMI doit aboutir à une maîtrise accrue des coûts, des délais et de la qualité des produits. Cela dépend bien sûr en grande partie du sérieux avec lequel les nouvelles méthodes seront appliquées, et donc de l’implication du personnel à tous les échelons de la hiérarchie – mais nous avons déjà évoqué ce point plus haut.

En définitive, cette rationalisation du processus de développement doit se traduire par une plus grande confiance de la part des clients, qui seront sensibles à la diminution des risques qu’ils encourent. Un des volets importants de la démarche concerne donc la communication ; communication en interne, on l’a vu, mais aussi communication vis-à-vis de l’extérieur, afin de mettre en avant ce nouvel atout de l’organisation.

Références

– Le site officiel de CMMI : http://www.sei.cmu.edu/cmmi/cmmi.html
CMMI Distilled, D. Ahern, A. Clouse, R. Turner, Addison-Wesley, 2003