|
Dans le même temps, nous avons cherché à obtenir le niveau 3 du CMMi.
Nous y sommes allé avec
curiosité.
Pourquoi ai-je été déçu ? Pourquoi certains héros ont-ils dû déployer une
telle énergie pour préparer l'audit et
présenter les preuves requises ? Pourquoi lors des interviews, je n'ai
jamais senti que les auditeurs
cherchaient à savoir si nous développions correctement le bon logiciel ?
Ainsi, il suffit de s'assurer que l'on
répond aux exigences du CMMi pour affirmer que nous développons bien le
bon produit ? Pourquoi le rythme
d'amélioration continue était-il soudain freiné par le formalisme
détaillé requis par le CMMi ? Pourquoi nous a
t-on reproché de ne pas planifier à l'avance les changements de
Processus que nous menions petit à petit et
en continue au fur et à mesure que nous découvrions des opportunités
d'amélioration ?
Mais en fait, pouvons nous mener une démarche Agile ET viser le niveau 3
du CMMi ?
« Alors, on peut ? »
Selon Mark Paulk, il est possible d'obtenir le niveau 3 en pratiquant l'eXtreme-Programming (XP). D'ailleurs,
nous avons réussi en appliquant une forme XP adaptée à nos contraintes. Donc, oui, en pratique cela est
possible. Mais, sur le fond, sur les principes, ces deux démarches sont-elles vraiment compatibles ?
«Est-ce réellement compatible ? »
Une réponse à cette question nous est proposée par Peter Middleton et James Sutton dans leur livre Lean
Software Strategies. Les auteurs proposent de comprendre les principes du CMMi en les comparant à deux
modèles industriels: la production de masse et le Lean. Cette démarche est intéressante car le
mouvement Agile peut être vu comme une transposition du Lean au développement logiciel.
Les cinq principes les plus marquants de la production de masse sont:
• Viser la répétabilité;
• Les grandes infrastructures;
• Optimiser le l'efficacité et le rendement;
• Le gigantisme organisationnel;
• Le technocentrisme.
Les cinq principes les plus marquants de la production Lean sont:
• Spécifier ce qui fait ou crée de la valeur pour le client;
• Identifier le flux de valeur;
• Favoriser l'écoulement du flux;
• Tirer les flux;
• Viser la perfection.
« Alors, comment positionne t-on la démarche CMMi par rapport à ces deux modèles ? »
Les principes de la production de masse se retrouvent-ils dans la démarche CMMi ?
Un des objectifs du CMMi est l'obtenir la répétabilité du processus de développement. D'ailleurs, le
niveau 2 s'appelle « Repeatable ».
Le CMMi cherche à améliorer l'efficacité et le rendement des processus. Une démarche pilotée par
le rendement amène à optimiser des activités regroupées par type. D'ailleurs, les pratiques du CMMi
sont organisées par type d'activité (les key process areas, ou KPA). Cette démarche d'optimisation
d'activités s'oppose au principe de fluidification d'un flux continu. Là où le CMMi se focalise sur les
activités, le Lean se concentre sur le flux. Ces deux approches sont mutuellement exclusives.
Une démarche centrée sur les activités qui recherche l'efficacité et le rendement aboutit
naturellement à la séparation du travail. Le travail est divisé en tâches et les travailleurs sont
spécialisés par tâche. D'ailleurs, le CMMi demande que soient identifiés:
• the software engineering groups;
• the software engineering process group;
• the training group;
• the system engineering group;
• the software configuration management group;
• the software quality assurance group;
• the system test group.
Mettre en place de tels groupes ressemble bien au gigantisme organisationnel.
Dans la même démarche, le CMMi mène à formaliser les processus et les modes opératoires avec
un niveau de détail qui rend des travailleurs spécialisés interchangeables pour une activité donnée.
Dans cet esprit, le CMMi s'aligne clairement sur la philosophie de la production de masse.
Le CMMi a officialisé dans ses KPA certaines des meilleures techniques des années 1980, comme
les revues par les pairs et les DAR (decision analysis and resolution). En ce sens, le CMMi est
technocentriste.
Enfin, il est bien plus facile pour une grande infrastructure d'amortir les coûts de la pratique du
CMMi, tels que la formalisation des processus, la description détaillée des activités, les revues
formelles, l'organisation des groupes de travail, la saisie des matrices SCAMPI, la conduite des
audits ...
Ainsi, le CMMi semble bien compatible des principes de la production de masse. Comment la démarche se
positionne-t-elle par rapport aux principes du Lean ?
Le CMMi demande qu'il y ait une gestion des exigences sur le produit à développer. Par contre, le CMMi ne se préoccupe pas de s'assurer que l'on gère les bonnes exigences: c'est à dire celles qui
répondent réellement au besoin du client. Ainsi, le CMMi ne suit pas le principe Lean de la valeur.
Le Lean propose de se concentrer sur le flux de valeur afin de l'optimiser en supprimant tout
gaspillage. Au niveau 5, le KPA « Defect Prevention » incite à s'organiser de manière à ce qu'un type
de défaut identifié ne puisse se reproduire. Ainsi, le CMMi propose de modifier le flux de valeur afin
d'éviter le gaspillage représenté par un type de régression. Néanmoins, cela ne concerne pas
l'optimisation d'un flux qui ne génère pas de défauts.
Parfois, certains changements radicaux de processus sont nécessaires afin de supprimer les
gaspillages dans le flux de valeur. La formalisation détaillée imposée par le CMMi ralenti ou interdit
de tels bouleversements. Et même, la démarche exige de planifier à l'avance les changements de
processus. Ceci nuit à l'amélioration continue des pratiques.
Ainsi, le CMMi ne semble pas pleinement compatible du principe de flux de valeur.
Les exigences du CMMi sont organisées par activité. Le processus de création de valeur est traité
activité par activité. Les activités sont surveillées par des groupes spécialisés. Une telle démarche
ne se concentre pas sur l'écoulement du flux de valeur.
Aucune exigence du CMMi propose de tirer les flux à la demande du client.
Le CMMi comme le Lean recherchent la perfection par l'amélioration continue. Néanmoins, le CMMi cherche à améliorer l'efficacité d'un processus alors que le Lean cherche à améliorer le produit tout
en éliminant tout gaspillage dans sa création. Bref, les deux démarches ne recherchent pas la même
perfection.
En conclusion
Les organisations qui ont suivi la voie du CMMi ont progressé. De même, les organisations qui ont appliqué une démarche Agile s'améliorent. Pourtant, les principes des deux démarches ne sont pas en phase.
Pour tendre vers la perfection, il s'agit de choisir la voie qui permet de créer le bon produit, qui génère le
moins de gaspillage et qui respecte les individus.
Il est possible d'être Agile et certifié CMMi niveau 3. Ou plutôt, il me semble possible d'être Agile malgré une
pratique du CMMi. En effet, un Agiliste devra faire des concessions et formaliser d'avantage en vue de
réussir un audit. Dans une élimination systématique du gaspillage, un Agiliste sera tenté de se délester de
certaines pratiques du CMMi qui n'apportent pas de valeur au client final. Cela mettra en péril son niveau de
certification. Le problème se complique si ce certificat de maturité lui apporte de la valeur ...
« Mais alors, pourquoi? »
Cela n'engage que moi, mais je pense que l'on adopte une démarche Agile pour s'améliorer sensiblement en minimisant les gaspillages et on vise un niveau du CMMi parce qu'on y est contraint par ses clients ou parce
qu'on recherche le prestige d'une certification.
En tout cas, le sujet est d'actualité puisque traité par de nombreux livres, articles et blogs. Aussi, concilier
ces deux démarches représente un marché intéressant pour des consultants auprès de grosses entreprises
prêtes à consacrer de beaux budgets dans les chantiers d'amélioration continue du moment.
Auteur : Emmanuel CHENU
|