CMMi : maîtrisez enfin vos développements

publicité
Conduite de projet dossier
CMMi : maîtrisez enfin vos développements ?
En 1985, le Ministère de la défense
des États-Unis (DoD) observait des
dérives de planning et de budget
des [DMH3] projets de développement logiciels. Le constat posé, le
DoD a demandé au SEI une
approche de l’évaluation des entreprises, dépassant la simple méthodologie de maîtrise des budgets. En
1993, la version 1.1 de CMM
(Capability Maturity Model) est
parue et a connu un franc succès au
sein de la communauté des développeurs. Entre 1993 et 1998, de
nombreux « CMM » clones ont été
adaptés pour différents secteurs et
des organismes de normalisation
ont voulu intégrer l’approche
et certains ont été agrégés au
sein d’un unique modèle : le
CMMIntegration. La version actuelle
(CMMi version 1.1) date de 2002 et
dépasse largement l’activité du
développement système (logiciels
sur étagère, matériel et développements).
CMMi se focalise sur les processus plutôt que sur les technologies ou les personnes car ils apportent une analyse
constructive [DMH4]. CMMi part d’un
principe simple que le travail des
hommes est plus efficace lorsqu’il est
organisé et les technologies apportent les meilleurs bénéfices lorsqu’elles sont insérées dans une
démarche plus globale à l’entreprise… encore fallait-il y penser
[DMH5] !
Le Modèle est construit sur une
vision, construite sur une étude des
bonnes pratiques et de leurs interactions. Il [DMH6] comporte 25 processus clés (Process Area) répartis en
5 niveaux (en fait 4 puisque le
niveau 1 correspond au niveau où
aucun processus est maîtrisé).
Chaque process area est composé :
– d’objectifs spécifiques : ils ne s’appliquent qu’au Process area. La
plupart d’entre eux correspondent
au niveau de capacité 1 [DMH7] :
leurs pratiques associées sont
appelées pratiques de base. Les
objectifs spécifiques correspondant à un niveau supérieur à 1,
sont appelés pratiques avancées.
– d’objectifs génériques : à chaque
niveau de capacité (1 à 5) ne correspond qu’un seul objectif générique, qui décrit l’institutionnalisation que l’organisation doit
atteindre pour parvenir à ce
niveau. Chacun est décliné dans
tous les secteurs de processus.
Par Daniel Mahé
et Didier Cohen
ASK Conseil
Depuis ces dernières années, les
référentiels de bonnes pratiques
ont le vent en poupe. COBIT pour
la stratégie et la gouvernance
d’ensemble dont l’AFAI est le promoteur en France, ITIL pour les
opérations et les services et celui
qui nous intéresse CMMi pour
l’ingénierie et la conduite des
projets.
CMMi a été particulièrement
remis en selle avec la délocalisation des développements en Inde
et la nécessité de partager des
référentiels pour contractualiser
et piloter les projets.
Chacun de ces « process area » peut
alors être évalué par un niveau de
maturité « Staged Maturity Levels »
Niveau 0 – Inachevé : un processus
inachevé est un processus qui n'est
pas exécuté ou ne l’est que partiellement. Un (ou plusieurs) des objectifs
du secteur de processus n'est pas
satisfait.
Niveau 1 – Exécuté : un processus
du niveau de capacité 1 est caractérisé comme un « processus exécuté »
totalement. Il satisfait les objectifs
du secteur de processus correspondant au niveau de capacité 1.
Niveau 2 – Géré : un processus géré
est exécuté (processus de niveau de
capacité 1), et est également suivi et
surveillé tout au long de son exécution. Son adhérence par rapport à sa
description est évaluée.
(1) Software Engineering Institute créé par le Ministère de la Défense Américain (DoD).
• La revue n° 80 - Septembre 2005
CMMi est l’acronyme de Capability
Maturity Model Integration, traduisons concrètement Modèle d’évaluation et d’évolution de la maturité
des processus de développement
logiciel [DMH2] dans l’entreprise. Ce
modèle s’est généralisé au développement des systèmes. Développé
par le SEI (1), il est une évolution du
CMM.
9
dossier :Conduite de projet
Niveau 3 – Défini : un processus
défini est géré. Il est basé sur un processus standard défini au niveau de
l’organisation, décrivant les éléments de processus fondamentaux.
Niveau 4 – Géré, contrôlé : les processus sont suivis et contrôlés tout
au long de leur exécution : des
mesures et des analyses sont effec-
Level
tuées. Des critères de qualité et de
performance permettent d’évaluer
et de gérer les processus.
Niveau 5 – En optimisation : les processus sont totalement maîtrisés et
l’organisation sait les optimiser ou
en améliorer des points.
Deux modes de représentation du
modèle existent : la représentation
Project Management
Engineering
5
Optimizing
4
Quantitatively
Managed
3
Defined
2
Managed
continue (continuous) et la représentation étagée (staged).
Dans la représentation continue
(voir figure suivante), les secteurs
clés sont regroupés en quatre catégories : gestion de processus, (5 processus clés), gestion de projet, (8
processus clés), ingénierie (6 processus clés) et support (6 secteurs clés).
Support
Process Management
CAR: Causal Analysis
& Resolution
OID: Organizational
Innovation &
Deployment
QPM: Quantitative
Project Management
OPP: Organizational
Process Performance
IPM: Integrated
Project Management
RSKM: Risk Management
IT Integrated Teaming
ISM: Integrated
Supplier Management
RD: Requirements
Development
TS: Technical Solution
PI: Product Integration
VER: Verification
VAL: Validation
DAR: Decision Analysis
& Resolution
OEI: Organizational
Environment
for Integration
PP: Project Planning
PMC: Project Monitoring
& Control
SAM: Supplier Agreement
Management
REQM: Requirements
Management
MA: Measurement
& Analysis
PPQA: Process
& Product
Quality Assurance
CM: Configuration
Management
OPF: Organizational
Process Focus
OPD: Organizational
Process Définition
OT: Organizational
Training
• La revue n° 80 - Septembre 2005
1
Initial
10
Dans la représentation étagée, c’est
un niveau global de maturité de l’organisation qui va être évalué, et non
pas un niveau par processus clé. Les
25 processus clés (process area) sont
regroupés par niveaux de maturité
sur une échelle de 1 à 5, comprenant
chacun respectivement 0, 7, 14, 2 et 2
processus clés.
Les 4 composantes du modèle :
– Ingénierie logicielle CMMi®-SW :
ce composant couvre le développement des systèmes logiciels à
savoir : développement, déploiement et maintenance en suivant
des approches systématiques,
strictes et quantifiables.
– Ingénierie des systèmes [DMH8]
CMMi®-SE/SW : Elle couvre le
développement des systèmes
dans leur globalité, qu’ils incluent
ou non du logiciel, en se concentrant sur les besoins et attentes du
client, et sur les contraintes liées à
la solution adoptée.
– Développement intégré des produits et processus CMMi®SE/SW/IPPD : L’IPPD est une
approche
systématique
qui
cherche à établir une collaboration
entre les contributeurs du projet,
afin de répondre au mieux aux
besoins, aux attentes et aux exigences du client. Les processus
soutenant une approche IPPD sont
intégrés avec les autres processus
de l'organisation. Ce composant
est choisi par une organisation uniquement en complément d’autres
composants.
– Sourcing fournisseur CMMi®SE/SW/IPPS/SS : Lorsque le travail
devient complexe, les projets peuvent nécessiter des ressources
externes pour exécuter certaines
fonctions, ou pour modifier les produits. Quand ces activités ont une
importance critique, il peut être
intéressant au projet d’analyser et
de surveiller les activités du fournisseur avant la livraison de produits. C’est ce type de tâches que
couvre le sourcing fournisseur.
L’intérêt de ce composant est à
mettre en relation directe avec le
développement actuel de la soustraitance dans le domaine de l’informatique, en particulier avec les
pays d’Asie (Offshore) où l’on trouve
un nombre d’entreprises certifiées
CMMi niveaux 3, 4 et 5 assez
impressionnant au regard de la
maturité de ces organisations
somme toutes récentes.
Conduite de projet dossier
Le bon côté de la vision « normalisée »
proposée dans le CMMi est que, quel
que soit le niveau de maturité de
l’activité de réalisation de logiciels
dans l’entreprise, CMMi permettra
de :
– donner une structure aux processus actuels,
qualité des produits. Cela dépend du
« sérieux » avec lequel les nouvelles
méthodes seront appliquées.
Cette rationalisation du processus
de développement doit augmenter
la confiance des clients, sensibles à la
diminution des risques qu’ils encourent.
Un des volets importants de la
démarche concerne alors la communication : en interne pour la mise en
place et vers l’extérieur comme
avantage concurrentiel potentiel.
– d’aider à la gestion de la complexité
des développements,
Les risques du CMMi
– donner des gisements d’efficience
aux processus concernés.
Le premier risque est de croire que
plus les processus sont matures au
sens CMMi, moins la dépendance de
l’entreprise aux hommes (et aux
technologies) est faible. Les risques
les plus courants sont présents dans :
Est-il utile de dire que la mise en
place d’une démarche de mise en
œuvre du CMMi [DMH10] dans une
organisation est une démarche
d’entreprise avec ses facteurs de
succès désormais classiques : sponsorship du management, implication du chef de projet et des équipes
opérationnelles, suivi et évaluations
régulières, formation…
Apports
De manière générale, les bénéfices
de la mise en place d’une démarche
d’amélioration des processus sont
indéniables. Le simple fait de se
demander, pour chaque pratique de
l’organisation, si elle est justifiée et
optimale constitue une source de
gisements de gains dont l’entreprise
n’a pas idée tant qu’elle ne s’est pas
lancée dans la démarche.
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. CMMi apporte
ce formalisme et cette rigueur avec
en plus l’utilisation d’un langage
commun à toute l’entreprise et
même à l’extérieur de l’entreprise.
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
– la déresponsabilisation des acteurs
sur le plan de la réussite globale
des projets,
– la baisse de la motivation,
– la baisse de la créativité.
L’approche processus peut se révéler un peu trop restrictive et se focaliser sur les compétences nécessaires ou les technologies réellement productives et opérationnelles
peut aussi amener une entreprise à
une meilleure qualité de résultat.
Le second risque est de trop
complexifier la démarche et de la
transformer en coquille vide : certes
l’entreprise aura des procédures
claires et formalisées mais en contrepartie, elles ne seront pas toutes suivies. Rappelons que des auto-évaluations doivent être coachées par
des auditeurs « agréés [DMH11] »
par le SEI et que généralement des
audits internes sont mis en place
dans les structures de taille importante. La méthode itérative en partant de processus simples et proches
de la situation actuelle reste encore
le meilleur moyen d’introduire cette
démarche.
Le risque habituel à toute tentative
de changement communément
appelée la sacro-sainte résistance au
changement n’échappe évidemment pas à CMMi. Si le soutien de la
direction est incontestablement
nécessaire, l’appui et la participation
d’un maximum de collaborateurs au
processus d’amélioration sont indispensables.
Enfin, gardons à l’esprit que CMMi
n’est 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 faire. CMMi n’est pas
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.
Pour les adeptes des normes :
les alternatives à CMMi
Six Sigma : Contrôle de la qualité
basé sur l’étude d’indicateurs de
variation. Les objectifs principaux
sont la diminution des rebus, l’amélioration de la production, la diminution des niveaux de stock. Au départ
peu orientée vers la réalisation de
logiciels la transposition de cette
démarche de fabrication de produits
se révèle pourtant dans certains cas
une alternative intéressante.
ISO 9000 est destinée à aider les
organisations à mettre en place de
manière efficace un système qualité.
Cette norme et les modèles
CMM/CMMi sont donc complémentaires [DMH12] : les normes ISO 9000
traitent plutôt des processus du système qualité dans leur globalité, en
fixant les fondamentaux d’une
démarche qualité, alors que les
modèles du SEI s’attachent aux processus de développement de façon
plus concrète.
ISO SPICE (Software Process
Improvement Capability dEtermination) est un projet qui a débuté
en 1991 par une étude préliminaire
(ISO SC7) avec comme objectif
d’aboutir aux spécifications d'un
standard international en matière
d’amélioration des processus de
développement logiciel.
• La revue n° 80 - Septembre 2005
Ce référentiel ne peut pas [DMH9]
devenir LA méthode à employer
mais de réduire les risques d’inadéquation avec le besoin et de produire
des solutions à valeur ajoutée dès
que possible.
11
dossier :Conduite de projet
Ce programme de travail fut approuvé
en 1993 (par ISO/IEC JTC1), et donna
lieu à une succession de versions :
une première en 1995, une seconde
en 1996, et la version finale, en 1998,
correspondant à la norme ISO 15504.
Le référentiel ISO/SPICE propose un
modèle de management de processus, ainsi qu'un ensemble d'exigences et de méthodes concernant
l'évaluation et l'amélioration de ces
processus. Le modèle est composé
de la façon suivante :
– une dimension processus, qui identifie une quarantaine d'activités,
réparties en cinq catégories :
• client/fournisseur,
• engineering,
• projet,
• support,
• organisation.
Une catégorie supplémentaire sera
intégrée dans la prochaine version,
prévue pour 2003/2004 : Processus
d’acquisition.
– une dimension capacité (ou aptitude), qui propose des modalités
génériques de mise en œuvre et
de management de ces processus,
selon une hiérarchie décrite en
termes de niveaux de capacité.
• La revue n° 80 - Septembre 2005
Le modèle évalue les procédés des
organisations en matière de déve-
12
loppement logiciel et détermine
leur niveau de maturité. Les résultats
obtenus permettent d’orienter le
processus d'amélioration.
En fait, le projet SPICE s’est inspiré du
CMM développé plus tôt et composé
de 18 secteurs de processus clés, et
de 5 niveaux de maturité.
SPICE propose ainsi une structure
très proche de celle de la représentation continue du CMMi. Il subsiste
cependant un certain nombre de
différences :
– CMMi dispose de quatre groupes
de processus dans sa représentation continue (processus, projet,
opérationnel, support), alors que
SPICE en a cinq.
– Deux architectures sont disponibles pour le CMMi (étagée et
continue), une seule pour SPICE.
– Quatre versions différentes pour
CMMi (SW, SE/SW, SE/SW/IPPD,
SE/SW/IPPS/SS) et une seule pour
SPICE (SW).
Depuis quelques années, la tendance
de SPICE est de se définir comme un
méta modèle, c'est-à-dire une référence à laquelle des modèles tels
que CMMi devront se référer.
CMMi et méthodologies modernes
de réalisation des logiciels (Agile)
CMMi peut se révéler trop bureaucratique par rapport à de telles
méthodologies ou client et développeur sont côtes à côtes. Cependant
si le CMMi est interprété et déployé
de façon appropriée, la « compatibilité » des deux approches peut être
intéressante. Trois points conciliables :
– L’approche a priori linéaire des
développements de CMMi et l’approche incrémentale des méthodologies « Agile ».
– La complexité de CMMi laisse penser que ce référentiel n’est adapté
qu’à des grandes organisations ou
à des grands projets. Cependant
(comme pour les normes ISO), le
référentiel peut se déployer sur
des entreprises de toute taille.
– L’aspect documentation est sans
doute celui qui différencie le plus
des méthodologies Agile (comme
eXtreme Programming), qui réduit
à son stricte minimum la documentation et CMMi qui tend à
créer des documents et procédures dont une grande partie est
souvent inexploitée (les WOD
Write Only Documents).
Pour en savoir plus…
Le site du SEI, fondateur de CMMi :
http://www.sei.cmu.edu/cmmi/
Le site de l’AFAI (article sur les référentiels) :
http://www.afai.fr/article.php3?id_article=224
Téléchargement