







 |
 |
CMMi

Le CMMi est un référentiel
de pratiques clés à mettre en oeuvre pour l'entreprise qui développe des
logiciels. Son objectif est de la guider dans sa démarche d'amélioration des
processus. En raison de l'adhésion croissante dont il fait l'objet, le «
Capability Maturity Model » est devenu une référence.
Depuis deux ans, le CMMi (i pour integrated) a été intronisé comme successeur du
CMM. Il couvre un domaine plus vaste que ce dernier. Au développement logiciel
s'adjoignent d'autres secteurs. Notamment l'ingénierie systèmes et l'acquisition
de logiciels.
Comme le CCM, le CMMi permet de classer en cinq niveaux de maturité les
pratiques de l'entreprise (voir tableau). Le niveau de maturité 1 étant le
niveau par défaut que détient toute organisation. Le niveau 3 est le niveau
moyen généralement visé. Pour atteindre chaque étage, l'entreprise doit mener
des actions d'amélioration au niveau de processus clés. Actions qui peuvent
concerner l'entreprise entière, ou simplement une division ou un service.
La méthode utilisée s'apparente à un véritable projet d'entreprise formalisé
selon une « roue de l'amélioration » . Il s'agit d'un processus itératif, que
l'entreprise doit répéter autant de fois qu'il le faut pour passer au niveau
supérieur. Le suivi du projet étant assuré par un instructeur (Transition
Partner).
Le modèle CMMi n'induit pas d'organisation particulière. Seules les pratiques
doivent satisfaire aux exigences du modèle. Son champ d'action n'est pas non
plus la qualité du produit fini. Seuls les procédés sont concernés. Le postulat
étant que l'entreprise a plus de chances de concevoir un logiciel de qualité si
le processus pour le fabriquer est de qualité. 
Le processus itératif, ou «roue de l'amélioration»
1. L'initialisation
Avec l'aide du prestataire, l'entreprise identifie ses objectifs stratégiques.
Généralement : la réduction des coûts ou du délai de livraison, ou
l'augmentation de la qualité logicielle. Elle doit établir une hiérarchie parmi
ses priorités. Cette phase comprend également a définition du périmètre du
projet, l'identification des acteurs, etc. C'est donc une première mise en place
de l'organisation du projet, qui sera ensuite affinée en fonction du résultat du
diagnostic.
2. Le diagnostic
C'est une première évaluation des pratiques de l'organisation. Elle est assurée
par une équipe mixte, constituée du prestataire et de personnes clés de
l'entreprise, et revêt la forme d'entretiens avec les représentants d'activités
identifiées : chefs de projet, responsables qualité, développeurs, testeurs,
etc. Le prestataire-évaluateur compile ces interviews avec des documents
référentiel de l'organisation, etc. afin de les confronter aux exigences du
modèle CMMi et d'apporter son jugement. S'ensuivent des recommandations
générales sur les forces et faiblesses de l'organisation. Recommandations
affinées dans la phase suivante.
3. La construction
Le projet d'amélioration se matérialise sous forme d'un plan d'action. L'équipe
projet définit les indicateurs clés permettant de mesurer l'état d'avancement du
projet. Et les solutions pour remplir les exigences du modèle CMMi. Le
prestataire jouant le rôle de catalyseur. L'action porte en priorité sur les
procédures où l'écart est grand entre l'existant et les objectifs visés, de
façon à observer un résultat rapide.
4. La mise en oeuvre
A cette étape, on teste les solutions trouvées sur un projet pilote : un pan de
l'activité ou une prestation afin de vérifier, notamment, que les indicateurs
choisis sont bien adaptés. Le déploiement des processus à l'ensemble de
l'organisation est précédé d'une sensibilisation des opérationnels aux nouvelles
pratiques.
5. La capitalisation
Il s'agit de décrire comment s'est déroulé le cycle d'amélioration depuis la
phase de diagnostic. Objectif : être plus efficace lors du processus itératif
suivant. Le défi étant de modifier pas à pas les pratiques de l'entreprise pour
satisfaire aux exigences du modèle CMMi, sans toutefois perturber son
fonctionnement. La deuxième partie de ce bilan consiste, au moyen des
indicateurs, à mesurer la progression de l'entreprise par rapport aux objectifs
stratégiques.

Qu'est-ce
que le CMMI ?
CMMI est l'acronyme de
Capability Maturity Model Integration. Certains diraient que CMMI est un modèle
avec de multiples représentations, quand d'autres le décriraient comme un
ensemble de modèles. Tous s'accordent néanmoins sur le fait qu'il s'agit d'une
fusion de la pléthore de modèles d'amélioration des processus pour l'ingénierie
système et logicielle créée au cours des ans.
Un des objectifs de CMMI est de fournir un vocabulaire commun au travers d'un
ensemble de modèles et de fournir des clarifications sur leurs interrelations.

Des processus, des procédures et des modèles
Un processus est une série
d'étapes aidant à résoudre un problème. Les étapes doivent être décrites de
façon à être non ambiguës c'est à dire compréhensibles et pouvant être mises en
oeuvre de façon consistante par n'importe qui. L'objectif n'est pas de
transformer les individus en robot, mais de réduire les efforts redondants.
Ainsi le processus de soumission d'un plan projet s'appuie-t-il sur une
procédure expliquant comment en écrire un, accompagnée d'un exemple à partir
duquel effectuer des copier-coller.
Un modèle est un guide de bonnes pratiques élaborées en étudiant d'autres
organisations performantes. Un modèle ne contient pas les étapes nécessaires à
la mise en oeuvre d'un programme d'amélioration des processus. Le modèle dit
simplement : "c'est une bonne chose à faire"! Or sans modèle de référence, vous
n'avez rien sur quoi appuyer votre programme d'amélioration, ni rien contre
lequel mesurer vos résultats!

Les représentations du modèle CMMI
Il y a deux
représentations différentes de CMMI : la représentation étagée et la
représentation continue.
La première concentre l'amélioration dans l'aptitude à fonctionner de façon
mature en terme de processus de développement. Cette aptitude est réprésentée en
5 niveaux (ou étages) de maturité (initial, géré, défini, géré qualitativement,
optimisé).
Chaque niveau de maturité consiste en plusieurs domaines de processus ou groupes
de pratiques exécutées collectivement pour réaliser un objectif spécifique.
Ainsi si au niveau 1, une organisation n'a que des processus adhoc (non gérés),
au niveau 2 de maturité, cette organisation se concentre sur l'amélioration des
problèmes de gestion qui affectent l'efficacité du projet au quotidien. Elle met
donc en place un système basique de gestion de projets, incluant gestion des
exigences, planification de projet, contrôle et surpervision de projet, gestion
des relations fournisseurs, métriques et analyses, assurance qualité des
produits et processus, gestion de configuration.
Au niveau 3, les meilleures pratiques et leçons tirées des projets précédents
ont bouilloné au-delà de chaque équipe projet, au point de créer une identité
organisationnelle.

Pourquoi utiliser le modèle CMMI ?
En mettant en œuvre CMMI
dans leur organisation, les différents acteurs trouvent dans le modèle une aide,
des indications et des idées concernant l’ingénierie système, logicielle, le
développement en équipe ou le « sourcing » de fournisseurs.
Contrairement à ce que l’on entend parfois, CMMI ne fournit pas un ensemble de
processus prêts à l’emploi, qu’il faudrait appliquer en dépit de l’existant.
CMMI est un modèle d’amélioration des processus. Son utilité est double : d’une
part il fournit un ensemble d’outils pour mesurer un état d’avancement et de
maturité dans les processus de développement ; d’autre part il permet de guider
l’entreprise dans sa démarche d’amélioration des processus en lui indiquant des
« cheminements privilégiés » (ordonnancement des processus à améliorer, etc.).
L’entreprise peut ainsi mesurer son état d’avancement, tant du point de vue de
la capacité de chacun de ses processus (modèle de capacité) que de la maturité
de son organisation (modèle de maturité), maturité résultante de la capacité de
plusieurs processus conjugués.

Mettre en place le CMMI
Dans cette démarche
d’amélioration permanente, l’amélioration des processus liés à la gestion des
exigences figure parmi les premières étapes proposées par CMMI. Réussir à
définir clairement les exigences (par des acteurs habilités à le faire), mais
aussi réussir à passer des exigences à la conception et au développement pour
finalement mesurer la conformité aux exigences des applications délivrées, voilà
un véritable enjeu.
Même si la disponibilité d’un référentiel comme CMMI facilite la transition vers
des processus maîtrisés, le passage à l’action reste toujours plus difficile que
prévu sur le papier. Les résistances au changement, la peur d’un processus trop
formalisé et trop lourd sont quelques exemples des freins que l’on peut
rencontrer. D’autres difficultés peuvent venir de CMMI lui-même. Parce qu’il a
été lui-même écrit dans un style intentionnellement ambigu afin de couvrir
plusieurs situations organisationnelles et de projets, deux des difficultés de
mise en œuvre du CMMI portent donc sur son interprétation et sur les décisions
organisationnelles qu'il induit.
Il existe des étapes discernables de maturité des processus. Dans les années
1987-1990, le SEI a procédé à des évaluations de processus dans des
organisations de tous types pour valider ce modèle de degrés de maturité et de
capacité de processus.
Le Capability Maturity Model pour logiciels (connu comme SW-CMM ou plus
simplement CMM) a longtemps servi de base pour évaluer la maturité des processus
de nombreuses organisations. Celà les a aidé à indentifier les activités et à
les améliorer de façon ciblée. Il a été développé sous la direction du SEI.
C'est un des modèles qui ont servi de point de départ pour la famille des
produits CMMI. Le SEI a défini une transition qui aide les organisations à
migrer de SW-CMM vers CMMI.
La famille de produits CMMI intègre d'autres niveaux de maturité (par exemple
systems engineering, développement intégré de produits, supplier sourcing).
Parallèlement, une convergence a été visée vers ISO 15504 (SPiCE). De ceci
découlent deux représentations:
CMMI-Staged pour définir la maturité des processus (plus proche de SW-CMM dans
sa présentation)
CMMI-Continuous pour définir la capacité de processus (plus proche de ISO 15504
/ SPiCE dans sa présentation)

Le modèle CMMI
Le modèle CMM d'évaluation
de la capacité en terme de développement conçu par le Software Engineering
Institute (SEI), est utilisé dans le monde entier afin d'améliorer la façon de
manager, de développer et de maintenir des applications, des équipements et des
systèmes.
Issu de l'expérience, le CMMI est un modèle décrivant quelles sont les pratiques
à mettre en oeuvre dans une organisation afin d'améliorer et d'assurer la
maîtrise des coûts, des délais et des performances des applications, des
équipements et des systèmes développés.
Le CMMI est à la fois :
 | une version étendue du CMM, prenant en compte les aspects "système" des
développements, le CMM se limitant au logiciel, |
 | une nouvelle version du CMM, prenant en compte des demandes d'évolution
provenant d'industriels après 8 années d'utilisation. |
Le modèle est constitué de cinq niveaux de maturité :

 |
Niveau 1 - Initial :
 |
le processus de développement n'est pas défini. La réussite
des projets dépend du savoir-faire de quelques personnes clés dans
l'organisation. Ce savoir-faire n'est pas formalisé ni partagé par les
différentes équipes projet de l'organisation, |
|
 |
Niveau 2 - Reproductible :
 |
les entrées et les sorties des différentes activités
sont gérées et contrôlées. Les règles sont connues et appliquées par les
équipes. Le développement est planifié et suivi. Les produits sont vérifiés par
rapport aux exigences initiales, |
|
 |
Niveau 3 - Défini :
 |
les meilleures pratiques mises en oeuvre au niveau 2 sur les
projets sont généralisées à toute l'organisation. Un projet instancie le
processus standard afin de définir la meilleure solution répondant à ses propres
objectifs. L'efficacité de chacun des processus est mesurée et renforcée,
|
|
 |
Niveau 4 - Maîtrisé :
 |
chaque processus est systématiquement mesuré. Les données
sont consolidées et exploitées pour la prise de décision et l'anticipation des
risques, |
|
 |
Niveau 5 - Optimisation :
 |
les processus sont totalement maîtrisés et optimisés
en permanence. Toute évolution est anticipée et gérée.
|

|
CMMI ou comment maîtriser vos développements
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.

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.
Références
Le
site officiel de CMMI :
http://www.sei.cmu.edu/cmmi/cmmi.html
|
 |

|
C'est le successeur du CMM, un modèle d'évaluation des processus
de
développement d'un produit logiciel.
|
| 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. |
|