L’objectif de cet article est de montrer quelques mesures qui permettent de faire un état des lieux de l’adéquation fonctionnelle d’une application. On verra aussi des exemples de solutions qui peuvent l’améliorer.
Cet article ne se veut pas exhaustif mais a pour objectif de donner des exemples d’indicateurs et d’actions à mettre en place.
Définition
Comme nous l’avons vu dans l’article d’introduction à la qualité logicielle, l’adéquation fonctionnelle comprend 3 sous-critères d’après la norme ISO 25 010 :
– Complétude fonctionnelle : capacité d’un logiciel à répondre à toutes les spécifications fonctionnelles et les besoins de l’utilisateur.-
– Exactitude fonctionnelle : capacité d’un logiciel à donner le résultat correct avec le degré de précision attendu.
– Pertinence fonctionnelle : capacité d’un logiciel à faciliter l’accomplissement des tâches spécifiées et des objectifs.
💡 En d’autres mots, l’adéquation fonctionnelle permet d’évaluer si la solution présentée est conforme aux attentes implicites et explicites de l’utilisateur.
Les attentes explicites sont les spécifications décrites sur un ticket.
Exemple: “En tant qu’utilisateur, je dois pouvoir ajouter un article dans mon panier afin d’effectuer une commande par la suite.”
Les attentes implicites de l’utilisateur sont tout ce que le client pense ne pas avoir besoin de spécifier. Dans notre cas présent, on peut imaginer que notre client souhaite que l’ajout d’éléments soit simple et rapide.
💡 Un système d’ajout de produits qui prendrait plus de 10 min pour ajouter un article au panier satisferait donc les attentes explicites mais pas implicites du client.
Enjeux de l’adéquation fonctionnelle
Une mauvaise adéquation fonctionnelle coûte très cher à corriger car l’erreur a pour origine la phase de spécification (plus une erreur est introduite tôt dans le processus de développement, plus elle coûte cher à corriger). Ces erreurs sont préjudiciables financièrement mais également dans la relation avec le client.
C’est également une des causes principales d’échec des projets d’après le Chaos Report. (cf : https://www.projectsmart.co.uk/white-papers/chaos-report.pdf)
Quelles mesures utiliser ?
Il est difficile de mesurer en interne avec des indicateurs l’adéquation fonctionnelle du produit dans la mesure où c’est le client qui la définit et qui la valide.
Les demandes d’évolution
On peut utiliser le nombre de demandes d’évolution pour une fonctionnalité effectuées par le client. En effet, une fonctionnalité qui a subi de nombreuses modifications sans que le besoin client ne change avait une faible adéquation fonctionnelle à sa création. A l’inverse, une fonctionnalité disponible et utilisée régulièrement par les utilisateurs et qui n’a jamais eu de demande d’évolution indique que celle-ci est probablement en adéquation avec le besoin du client.
Le taux de réussite des tests systèmes
On peut aussi mesurer le taux de réussite des tests systèmes. L’objectif est de vérifier si les fonctionnalités spécifiées sont bien présentes mais cela n’exclut pas les fonctionnalités mal-réalisées car mal comprises. Le taux de réussite de ces tests ne constitue donc pas un indicateur fiable de l’adéquation fonctionnelle du produit (ils sont néanmoins un indicateur fiable du processus de développement).
Les tests d’acceptation
Le plus efficace pour valider le fait qu’un produit correspond bien aux attentes client est de lui faire tester le produit. La phase de recette fonctionnelle est une étape durant laquelle le client va utiliser l’application pour s’assurer que le produit réponde bien à ses attentes.
Ces tests sont appelés tests d’acceptation.
Lors de l’échec d’un de ces tests, cela montre de façon objective qu’une fonctionnalité attendue par le client n’est pas présente ou ne correspond pas à ses attentes. Le taux de succès des tests de validation du client est donc une mesure cruciale. L’objectif de ces tests est la validation fonctionnelle et non la détection d’erreurs.
Si vous êtes confus par les différents tests évoqués dans cet article, je vous propose d’aller faire un tour sur cet article très bien écrit: https://latavernedutesteur.fr/2017/11/03/les-niveaux-de-test/
De manière plus générale, si vous êtes intéressés par les tests, ce blog est top 🙂
Pour résumer :
L’adéquation fonctionnelle, c’est la capacité d’un système à remplir les attentes explicites et implicites des utilisateurs.
Pour savoir si le logiciel répond aux attentes explicites des utilisateurs, on peut voir le taux de tests systèmes positifs ( mais c’est à prendre avec des pincettes pour les raisons évoquées plus haut).
Pour savoir si le logiciel répond aux attentes explicites et implicites des utilisateurs, il n’y a qu’un seul moyen réellement efficace: il faut le faire tester par des utilisateurs et analyser leurs retours.
Vous avez maintenant des idées de mesures, on va voir dans l’article suivant quelques actions possibles pour améliorer l’adéquation fonctionnelle d’une application ! 🙂