Jeu d’introduction à la qualité logicielle

La qualité logicielle est un sujet qui peut paraître aride au premier abord. Voire, osons le dire, carrément fade.

Si vous travaillez dans le domaine, vous savez qu’il n’en est rien, et qu’il suffit d’y plonger un orteil pour découvrir un monde passionnant. Mais le plus dur, c’est de plonger ce premier orteil !

Voici donc un jeu qui vous aidera à sensibiliser un public néophyte aux enjeux de la qualité logicielle. Ce jeu se base sur la norme ISO 25010.

Durée

Entre 15 et 30 minutes (plus il y a de personnes, plus il faut s’attendre à des questions, reformulations, temps morts, blagounettes, quintes de toux, etc).

Nombre de personnes

De 1 à… beaucoup ! À partir de 4 personnes, faites des équipes de 2, 3 ou 4 personnes, c’est plus sympa.

Matériel

  • Post-its (un paquet de ~20 par personne ou par groupe de personnes)
  • Feutres (1 par personne ou par groupe de personnes)
  • Dessin de montagnes russes (faites-le vous-même, ne soyez pas timide !)
  • Si possible : tableau blanc et aimants
Du grand art

Phase 0 : préparation

Préparez le matériel.

Sur un tableau blanc, si vous en avez, dessinez un mystérieux tableau à larges colonnes.

C Pe Fi Fo S M U Po

Plus tard, vous compléterez le tableau en mettant le nom des 8 facettes de la qualité logicielle définies par la norme ISO 25010 :

Compatibilité Performance Fiabilité Fonctionnalité Sécurité Maintenabilité Utilisabilité Portabilité

Révisez donc bien ces 8 facettes ! Vous pouvez par exemple consulter la série d’articles qui existe sur le sujet dans le blog la Taverne du Testeur.

Phase 1 : brainstorming

Présentez le dessin de montagnes russes à votre auditoire. Puis, demandez-lui tout ce qui pourrait mal se passer dans ces montagnes russes, ou aux alentours.

Pendant un laps de temps donné (5 minutes peuvent faire l’affaire), chaque personne ou groupe de personnes écrit une idée par post-it. L’objectif de cette phase est de générer un maximum d’idées. Si vous sentez qu’une personne ou qu’un groupe se retrouve à court d’idée, vous pouvez lancer quelques pistes :

  1. Ça peut être de gros problèmes, qui se soldent par des articles de journaux, ou bien des petits problèmes, qui vont faire passer un moment un peu agaçant à une ou plusieurs personnes.
  2. Ça peut être des problèmes liés à l’expérience vécue sur les montagnes russes, ou des problèmes qui peuvent avoir lieu avant ou après.
  3. Ça peut être des problèmes qui ne surviennent que dans certaines circonstances. Par exemple, des problèmes qui ont lieu lorsque le parc d’attraction est plein à craquer. Ou quand une personne effectue une action inattendue.
  4. Ça peut être des problèmes qui ont lieu pendant l’installation, ou pendant des réparations, ou encore pendant le démontage une fois que les montagnes russes sont vétustes et doivent être remplacées.
  5. Ça peut être des problèmes liés au lieu où se situe ce manège. Par exemple, quels sont les bâtiments qui existent déjà autour ?
  6. Ça peut être lié au climat, à la météo…

Proposition de speech à adapter

Bonjour, c’est un plaisir d’être avec vous aujourd’hui pour parler de qualité logicielle.

Qui se sent déborder d’enthousiasme à l’idée de lire la norme ISO 25010, une des normes les plus connues dans le domaine de la qualité logicielle ? Personne ? Je comprends bien. Les normes en général ça sonne comme quelque chose d’assez ennuyeux.

Alors au lieu de parler de cette norme, on va plutôt la réécrire nous-mêmes, au moins dans ses grandes lignes.

Juste, avant de commencer, est-ce que par hasard il y a des personnes parmi vous qui ont déjà entendu parler de la norme ISO 25010 ?

  • OUI tout le monde -> Super, ça va être l’occasion de la revisiter !
  • OUI certaines personnes -> Est-ce que tu voudras/vous voudrez bien m’aider à un moment ?
  • NON tout le monde -> C’est bien, personne ne va s’ennuyer !

Et puisque j’ai la chance présentement de ne pas avoir d’écran sous les yeux, je vous propose également d’oublier les logiciels pour quelques instants, et de parler d’autre chose.

Est-ce que quelqu’un comprend ce que j’ai dessiné ?

Bien, et effectivement on ne va pas parler de qualité logicielle, on va parler de qualité de montagnes russes. Qui parmi vous a déjà osé monter dans des montagnes russes ? (Note de l’autrice : pas moi.)

Le système dessiné ici avec un grand talent est constitué des montagnes russes elles-mêmes, des petits chariots, du poste de contrôle, et du guichet qui permet d’acheter ses tickets.

Je vais maintenant faire appel à la facette la plus malicieuse de votre personnalité, et je vais vous inviter à imaginer TOUT ce qui pourrait mal se passer dans ce système. Vous pouvez réfléchir (par groupes de 2 ou 4, le cas échéant), en notant vos idées sur ces post-its. Vous avez 5 minutes, c’est parti !

Phase 2 : restitution de l’exercice et complétion

Une fois que le temps est écoulé, c’est le moment de la restitution !

Chaque groupe présente maintenant les idées générées au cours du brainstorming. Attendez-vous à des moments de rigolade ! Mais vous, conservez bien votre concentration ; il vous faut classer chaque idée dans le tableau. Attention, à ce stade, les noms des 8 facettes ne sont pas encore visibles.

Quelques exemples de réponses auxquelles vous pouvez vous attendre :

Facette de la qualité logicielle Exemple lié aux montagnes russes
Compatibilité Ce système posera problème s’il est installé à côté d’une église, parce que les cris des personnes peuvent indisposer les gens qui cherchent à se recueillir. De même si les montagnes russes sont installées à côté d’un hôpital, les malades pourraient avoir du mal à dormir, ou ressentir de la frustration à ne pas pouvoir être de la partie.
Performance Ce système posera problème s’il tombe en panne quand il y a plus de 10 personnes dans les chariots.
Fiabilité Ce système posera problème si le démarrage échoue 1 fois sur 2. (Ou même, une fois sur 50.)
Fonctionnalité Ce système posera problème si les animations (par exemple les jets d’eau ou la musique) se déclenchent en décalage avec le passage des chariots.
Sécurité Ce système posera problème si les barrières sont trop espacées et que les personnes risquent de tomber.
Maintenabilité Ce système posera problème s’il est livré sans mode d’emploi pour les réparations, si son fonctionnement requiert une formation très complexe et spécifique, ou encore si les pièces de rechange sont introuvables dans le pays d’installation.
Utilisabilité Ce système posera problème si les chariots sont conçus pour avancer très lentement et que personne ne s’amuse, ou que les chariots ne sont pas adaptés aux personnes de grande taille.
Portabilité Ce système peut ne pas être adapté à tous les climats, par exemple si le métal de la structure est sensible à l’air marin.

Une fois que toutes les idées ont été classées, vous pouvez maintenant donner un sens au mystérieux tableau dessiné tout à l’heure, en le complétant. Le cas échéant, vous pouvez solliciter les personnes qui ont déclaré connaître la norme ISO 25010, pour qu’elles vous aident à compléter le tableau.

Compatibilité Performance Fiabilité Fonctionnalité Sécurité Maintenabilité Utilisabilité Portabilité

Vous pouvez à présent raccrocher les wagons de la qualité logicielle ! Donnez du sens à ce tableau en demandant à votre auditoire de faire le lien entre le monde des logiciels et les 8 facettes.

Vous aboutirez probablement à des réponses similaires à celles ci-dessous :

Facette de la qualité logicielle Exemple lié aux logiciels
Compatibilité Un logiciel doit pouvoir coexister avec d’autres logiciels dans un même système.
Performance Un logiciel doit pouvoir s’exécuter rapidement, même si plusieurs personnes l’utilisent en même temps.
Fiabilité Un logiciel doit être disponible avec un minimum d’interruptions.
Fonctionnalité Un logiciel doit pouvoir réaliser les actions qui lui ont été spécifiées. Cette facette accapare, en général, la plupart des efforts concernant la qualité logicielle.
Sécurité Un logiciel doit sécuriser les personnes qui l’utilisent ainsi que leur matériel et, ce qui est le plus connu, leurs données.
Maintenabilité Un logiciel doit pouvoir être maintenu au fil du temps, et bien souvent par d’autres personnes que celles qui l’ont initialement développé.
Utilisabilité Un logiciel doit être agréable à utiliser et compréhensible par un maximum de personnes parmi celles ciblées.
Portabilité Un logiciel doit pouvoir s’installer dans un maximum d’environnements parmi ceux ciblés.

Voilà, votre petit groupe a maintenant une idée un peu moins floue de ce qu’on veut dire quand on parle de qualité logicielle ! En complément, vous pouvez leur montrer les 8 facettes développées (merci à la Taverne du Testeur pour ce schéma).

Pour aider à mémoriser les 8 facettes, vous pouvez donner ce moyen mnémotechnique :

« Les ComPères dans leur Fiat Font Sécher leurs Mains en Utilisant les Portes. »

Vous pouvez également leur conseiller cet article sur les tests non-fonctionnels. Il est plus complet que ce que vous aurez le temps de détailler à l’oral !

Fin de l’atelier

Éventuellement, pour clôturer l’atelier vous pouvez ouvrir sur d’autres perspectives :

Maintenant qu’on a ça en tête, c’est très bien, et on va pouvoir s’en servir au moment où on prévoit d’évaluer la qualité des logiciels et d’imaginer des tests. Ça fournit un cadre de pensée. Mais on peut ne pas s’arrêter là.

George Box disait « Tous les modèles sont faux, mais certains sont utiles ». La norme ISO 25010 est utile parce qu’elle permet d’avoir en tête pas mal de critères de qualité, mais elle est fausse dans le sens où elle ne prend pas en charge l’intégralité de l’expérience qu’on peut avoir de la qualité, ou des exigences qualité qui peuvent exister. Est-ce que vous voyez d’autres choses qui pourraient être ajoutées ?

(Réponse typique : qualité environnementale, mais il pourrait y en avoir d’autres !)

Conclusion

Cet exercice permet non seulement de comprendre que la qualité logicielle a plusieurs facettes, mais aussi que c’est un sujet qui nous fait poser beaucoup de questions, et que, même s’il existe une norme pour essayer d’organiser ces questions, celles-ci vont toujours au-delà.

Nourrissez votre réflexion de toutes les remarques qui proviendront de votre audience : vous découvrirez peut-être de nouveaux angles d’approche !

______________

Cet article a été écrit en langage épicène. Si vous voulez en savoir davantage, regardez notre vidéo sur le sujet !