CMMi, un modèle de maturité du SI
CMMi est un référentiel de bonnes pratiques conçu en 1987 à partir des meilleures pratiques de conception des logiciels par le SEI de l'Université Carnegie Mellon.
Ce référentiel représente donc un ensemble de bonnes pratiques pour le développement de logiciels. L’organisation utilisant CMMi va voir sa qualité de prestation augmenter, qualité qui sera mesurable étant donné la présence d'indicateurs pour chacun des processus et domaines de processus. Les domaines de processus correspondent ici à un ensemble de processus regroupés par domaines (au nombre de 22 dans la version 1.2 de CMMi), ils seront présentés un peu plus loin.
Les 3 modèles de CMMi sont CMMI-DEV, axé sur le développement de système, CMMI-ACQ pour la maîtrise des activités d’achat et enfin CMMI-SVC, centré sur la fourniture de services. Ces modèles tournent autour d’une partie commune représentant environ 60% des pratiques.
Il faut savoir que le modèle CMMi possède deux approches conceptuelles. La première dite étagée consiste à aborder la mise en œuvre de tous les processus (par domaines) et de définir la maturité de l'ensemble (niveau 1, niveau2, etc.). Dans cette approche l'organisation tout entière doit évoluer au regard des 5 niveaux définis dans CMMI, on parle alors de maturité.
La deuxième dite continue aborde quand à elle la maturité des processus mais individuellement, c'est donc le niveau de chaque processus qui est important, on parle alors d'aptitude. Il faut préciser que le niveau 0 n’existe pas en représentation étagée contrairement à l’approche continue.
Le choix entre l’une ou l’autre dépend ici de son utilisation. Dans le cas par exemple d’une certification de toute une organisation vers CMMi, l’approche étagée est conseillée. En revanche, si l'on souhaite intervenir sur des processus inexistants ou insuffisamment matures, on préfère privilégier l'approche continue.
Au niveau de sa structure le modèle CMMi est constitué de :
- Niveaux de maturité des processus ;
- Pratiques génériques spécifiques à un niveau de maturité ;
- Objectifs génériques qui sous tendent les pratiques génériques ;
- Pratiques spécifiques qui complètent les pratiques et objectifs génériques ;
- Objectifs spécifiques qui soutiennent les pratiques spécifiques ;
- Sous pratiques qui complètent ou détaillent les pratiques spécifiques.
Le modèle de maturité
CMMi définit une échelle de mesure de la maturité comportant 5 niveaux (de 1 à 5), correspondant respectivement aux états "initial", "reproductible", "défini", "maitrisé" et enfin "optimisé". Les indicateurs permettant l’évaluation des activités sont également définis par CMMi.
Le schéma ci-dessous présente le détail des 5 niveaux de maturité de CMMi avec une description pour chaque niveau.
![](i/Figure15.png)
Figure 15 : Les niveaux de maturité selon CMMi
(source : itil.fr)
Les contraintes de coût, de qualité et de délais de la gestion de projet ont aidé à l’émergence de ce référentiel qui est par conséquent devenu un modèle de développement et de maintenance des systèmes et applications informatiques.
Chacun des niveaux de CMMi possède des objectifs génériques (GG pour Generic Goals). De ce fait, lorsque l’organisation vise un niveau supérieur de maturité, elle doit dans un premier temps intégrer les nouveaux objectifs génériques et pratiques associées et dans un second temps continuer à mettre en œuvre les GG du niveau inférieur.
Figure 16 : Imbrication des niveaux et des objectifs génériques
(source : itil.fr)
CMMi prône la mise en œuvre de 24 processus, regroupés sur la gestion des processus, la gestion de projet, l’ingénierie et enfin le support. Le schéma suivant représente la répartition des processus par niveaux. On y retrouve les niveaux CMMi, les domaines de processus par niveaux et les activités et domaines de processus constituants.
Figure 17 : Répartition des processus par niveaux de CMMi
(source : itil.fr)
CMMi va donc trouver sa place dans toute organisation IT en permettant :
- D'assurer l'équilibre entre les coûts, les délais et la sécurité ;
- De mettre en œuvre les conditions d'une amélioration continue ;
- De garantir que les coûts sont maitrisés ;
- D'assurer un niveau optimal de Qualité de la conception des logiciels ;
- D'évaluer le coût d'un projet ;
- De mettre en œuvre les conditions de partenariats avec des tiers (infogérance, offshore,…).