Il  existe bien entendu de nombreuses bonnes pratiques en informatique dont  ITIL, CMMI ou le CFTL. Qui n’a pas entendu parler de démarche d’amélioration continue, de maturité des processus, de gestion des services, des bonnes pratiques de développement (métriques de code), d’alignement de l’informatique sur les processus métier…

Qu’est ce qui se cache derrière ces notions qui pour certains sont encore bien absconses ou hermétiques ?  Tout d’abord un point commun : L’amélioration continue.

Economiquement parlant, derrière elles se cachent des profits pour certains et des économies pour d’autres. Coté profit les SSII qui vendent leurs services pour les mettre en place, coté économies les clients qui en bénéficient. Le retour sur investissement est proportionnel à la population d’une entreprise étant intégré dans cette démarche.

Faut-il mettre en place toutes ces pratiques pour espérer améliorer la qualité de l’informatique d’une entreprise ?, la qualité des logiciels d’un éditeur ? Combien de personnes doivent-elles être formées ?

Derrière le phénomène de mode, tout n’est pas au même niveau. Il faut donc bien comprendre de quoi on parle. Le niveau de détails entre ces référentiels n’est pas le même. Certains référentiels se complètent, d’autres se chevauchent, certains sont organisationnels c’est-à-dire visent à structurer l’entreprise ou l’organisation, d’autres visent à être appliqués directement à moindre coût.

CMMI

CMMI vise à améliorer les processus, au niveau de la conception logicielle même si CMMI Services et Acquisitions existent. CMMI est un cadre de bonnes pratiques basé à l’origine sur des statistiques de projets qui ont bien fonctionné. Leurs auteurs les ont comparés et ont en ressorti certains points communs. Puis sur ces points communs, ils ont ajouté une démarche d’amélioration mesurable.

L’idée est qu’à partir d’un niveau de base, l’entreprise mette en place ces bonnes pratiques puis les affinent par niveau. Dans le premier niveau, se côtoient l’identification du besoin du client, la gestion de projet, la gestion des fournisseurs, la gestion de configuration, quelques mesures et analyses…

Un centre de développement ayant mis en place ces pratiques  voudra passer au niveau 3. Les phases de vérification et de validation, donc les tests, ou l’intégration des produits seront mesurées. Qui dit tests, dit souvent incidents. L’amélioration continue entre le niveau 2 et le niveau 3 montre également que le centre de développement fait bénéficier tous ses projets des meilleures pratiques détectées au niveau précédent.  Plutôt que gérée par chaque projet, la gestion de configuration logicielle sera gérée par un processus transversal utilisé par tous les projets. Plus le centre de développement devient mature, plus des pratiques comme l’analyse des causes racines des anomalies sera mise en place. Donc CMMI est une démarche globale nécessitant du temps pour être implémentée. Le coût n’est pas non plus négligeable et il est souvent judicieux  de faire appel à des consultants spécialisés CMMI.

ITIL

ITIL fait également référence à la gestion des incidents, des problèmes, de la configuration. Le CFTL également. ITIL parle de « services », d’accord entre services. Son origine provient de l’exploitation informatique puisque la V1 parlait en 1989 de Service Management puis du Help Desk. Il y eu une version 2 avec de nouveaux livres et versions. ITIL permet d’organiser les activités de l’exploitation informatique. Aujourd’hui avec la version 3, ITIL se veut aligner stratégiquement les services informatiques aux besoins métiers de l’entreprise. ITIL préconise dans « Transition de services »  (c’est-à-dire la construction, les tests, le déploiement) d’orienter les tests « vers la manière dont les utilisateurs travaillent aujourd’hui plutôt que sur la manière d’utiliser le service imaginée par les concepteurs ». Les tests arrivant après la phase de construction, les tests ne sont donc pas une préoccupation majeure d’ITIL. ITIL proposera par contre d’effectuer des tests de pré-production afin de s’assurer qu’une nouvelle application s’installe correctement et ne perturbe pas les systèmes. ITIL ne permet donc pas d’anticiper les tests contrairement au CFTL qui le propose. Là également, il sera nécessaire de faire appel à l’aide extérieure ayant une vision globale pour mettre en place les services.

ISTQB

Lorsqu’un bug survient dans une application, la réaction immédiate est de dire « Il faut renforcer les tests ». Le CFTL et l’ISTQB ont réfléchi comment concentrer les bonnes pratiques diffuses dans un référentiel comme CMMI sur les projets de test. L’utilisation de normes industrielles IEEE ou British Standard permet au CFTL d’adopter une approche pragmatique et de se concentrer sur comment assurer la qualité logicielle tout en diminuant les coûts de maintenance. Il n’est pas besoin d’entamer une démarche CMMI pour assurer la qualité logicielle et d’un autre coté le CMMI n’évalue pas si les tests sont efficients. Egalement le CFTL fournit un glossaire international sur les termes utilisés dans les activités de testing. Les tests sont découpés selon ISO9126 ou ISO25000, fonctionnels et non fonctionnels (performance, ergonomie, maintenabilité, portabilité…).

Les revues, comme les revues d’exigences, de spécifications, les audits de code, de spécifications de tests sont considérées elles mêmes comme étant des tests car par leur approche proactive, elles préviennent les défauts, pour aujourd’hui et pour demain. En suivant le modèle en V, les tests sont exécutés au plus tôt en respectant une logique de priorisation en fonction des risques. Et oui, au bac, nous avons fait l’impasse sur la révision de certaines matières. C’est la même chose dans la vie. Qu’est-il est important de tester, et comment le faire pour minimiser les risques de panne ?

Le CFTL précise les bonnes pratiques de tests et délivre une certification métier. Un testeur certifié CFTL a une vision globale et très précise des tests. Il est aguerri sur les activités du test, leur planification, les techniques à utiliser, les revues, la psychologie des tests. Coté amélioration continue, le CFTL propose différentes méthodes, soit par comparaisons avec les pratiques de la profession, soit par amélioration interne.
Donc les référentiels ont des objectifs différents et ne sont donc pas polyvalents.

De même, les modes d’évaluation, certification sont différents.  CMMI permet d’évaluer la maturité d’un ensemble de processus d’un bureau d’études, centre de développement logiciel, en évaluant 3 projets critiques et 3 ordinaires. Il ne s’agit pas d’une certification. Le coût est d’environ 25000€ pour un audit. ITIL permet de certifier une personne quant à ses connaissances sur ITIL et cela sur plusieurs niveaux de connaissance, « Fondation », « Practitioners », « Managers».  ISO 2000 permet  de certifier les services informatiques d’une organisation. Le CFTL certifie pour 250€ une personne sur plusieurs niveaux d’expertise, « fondation », « testeur fonctionnel niveau avancé »,  « testeur technique niveau avancé », et « testeur expert » prochainement.

Figure 1: Vison COBIT du cycle de vie du SI

Finalement, mettons chaque chose à sa place. L’informatique est un secteur très vaste et les problématiques de production informatique, les centres de développement ne concernent pas tout le monde, la gouvernance des systèmes informatiques non plus.  Si vous en avez besoin, mettez en place CMMI, des services ITIL, ISO20000, COBIT. Cela structurera votre organisation. Nous pourrons vous accompagner si vous le souhaitez. Mais si vous avez seulement besoin d’améliorer à moindre coût la qualité de vos applications et de vos activités de tests, choisissez le CFTL et les normes IEEE qu’il plébiscite. Vous serez directement opérationnel, sans l’angoisse de la page blanche. A un niveau de détail plus fin, automatisez les tests avec des outils comme CAST pour la qualimétrie de code, ou HP, IBM, Borland pour leur gestion et l’automatisation de la non régression. Comme dans l’industrie ou la pharmacie, tester restera toujours une activité essentielle de la qualité logicielle et ce lors de la phase de fabrication logicielle, en acceptation métier ou opérationnelle par la production.

Autant qu’elle soit réalisée et pensée par des gens formés et spécialisés et qui parlent le même langage.

Références: ITIL France, Syllabus avancé CFTL.