Voici un point de vue d’Emmanuel Chenu, expert en Lean Software Development, mis en avant sur le blog de l’institut Lean IT
L’objet de ce point de vue est de comparer deux méthodologies de développement logiciel, qui peuvent sembler de prime abord assez proches : CMMI et le Lean Software Development.
En effet les 2 méthodes affichent comme l’un de leurs objectifs principaux « l’atteinte de la perfection » dans le développement logiciel. Si CMMI est un référentiel reconnu et répandu dans de nombreuses SSII, le Lean Software Development ou méthode Agile sont encore peu mis en place.
Alors quelles sont les différences / similitudes entre ces 2 méthodes ? Sont-elles compatibles ?
Morceaux choisis :
L’équipe dont je fais partie développe des logiciels dans une démarche Agile. Poussés par nos clients, notre organisation est certifiée CMMi niveau 3. Ces deux démarches d’amélioration continue sont-elles compatibles ou sommes-nous schizophrènes ?
En quelques années, depuis l’adoption de la démarche Agile, nous avons progressivement et continuellement amélioré nos logiciels et la manière de les développer. De plus, les équipes impliquées ont eu du plaisir à travailler ensemble sur ces projets.
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 ?
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.
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 ?
Un des objectifs du CMMi est d’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.
Le travail est divisé en tâches et les travailleurs sont spécialisés par tâche.
Dans cet esprit, le CMMi s’aligne clairement sur la philosophie de la production de masse.
Alors y a t-il quelque chose qui rapproche CMMI de la philosophie 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.
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.
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.
Conclusion
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…
Ce point de vue est intéressant car il compare d’un côté CMMI un référentiel répandu, encadré par des organismes de certification, et présentant des processus types à mettre en place et à contrôler, et de l’autre une méthode Lean qui propose des outils tout en se focalisant sur une « philosophie » tournée vers la valeur ajoutée pour le client.
Les 2 méthodes affichent effectivement l’objectif d’atteindre la perfection. CMMI propose un cadre pour contrôler la « perfection de la réalisation », mais ne se penche pas sur l’utilité et la valeur finale de ce qui est réalisé. Le Lean se préoccupe davantage de la « perfection du produit fini » en supprimant toute forme de gaspillage.
Retrouvez l’intégralité du point de vue : http://manu40k.free.fr/articleCMMi.pdf
Cet article contient quelques inexactitudes. L’article que référence Emmanuel se réfère lui-même à un des modèles dont le CMMI est une évolution, le SW CMM qui n’est plus utilisé depuis de nombreuses années. En particulier, la note sur les exigences ‘le CMMi ne se préoccupe pas de s’assurer que l’on gère les bonnes exigences’ n’est plus valable avec le CMMI.
De même, le CMMI n’est pas toujours utilisé dans un objectif de conformité. De nombreuses entreprises, notamment en France, se lancent dans des démarches CMMI pour améliorer leurs performances. Avec succès.
Cela n’enlève pas que sur le fond, le propos d’Emmanuel est pertinent. On peut se demander si une bonne approche Agile (j’insiste sur le ‘bonne’ !) a besoin d’être complétée par des pratiques CMMI.
Ce qui parait pertinent, c’est d’utiliser une ou plusieurs méthodes Agile pour les développements de certains composants logiciels et d’appliquer des pratiques CMMI pour les composants qui ne s’y prêtent pas (d’autres développements logiciels ou des développements HW par exemple) et pour les systèmes (le CMMI a un domaine d’application plus large que le logiciel seulement).
Nathalie, merci pour ces précisions sur l’évolution de CMMI.
Nous sommes d’accord, il ne faut pas appliquer mécaniquement un référentiel à la lettre, mais l’utiliser en en comprenant l’esprit, et de ce fait, en y piochant ce qui est utile dans un contexte particulier.