Capturer les besoins des utilisateurs et les retranscrire en spécifications a toujours soulevé des interrogations. Cette démarche est aussi vraie dans les services pour les particuliers et aux entreprises, que pour la fabrication de produits comme ceux du bâtiment, la production de petites séries pour des produits manufacturés spécifiques à des clients, et les produits logiciels.
L’industrie des produits manufacturés a développé au fil du temps des méthodologies destinées à définir le besoin des utilisateurs et à écrire les spécifications. L’analyse fonctionnelle en fait partie.
Les informaticiens se sont à leur tour confrontés à cette problématique majeure puisque l’objectif principal d’un produit est de satisfaire ses utilisateurs. Pour preuve, il existe aujourd’hui des formations spécifiques liées à des certifications concernant l’élicitation des besoins et l’ingénierie des exigences logicielles. Ce domaine est en effet reconnu comme générant près de 50% des causes de non satisfaction des utilisateurs.
Le point commun entre les logiciels et les produits manufacturés est qu’ils ont des caractéristiques fonctionnelles et non fonctionnelles. Ces caractéristiques doivent être décrites, validées, ont une valeur, une criticité liée à des modes de défaillance (analyse dysfonctionnelle), doivent être vérifiées.
Le fonctionnel est ce que fait le produit, le non-fonctionnel comment il le fait.
Par exemple l’ergonomie, la facilité d’utilisation, la performance sont des facteurs essentiels de satisfaction des utilisateurs. A cela il faut également ajouter le facteur nouveauté excitante.
Tout comme un pont doit être « beau » et s’intégrer au paysage, le logiciel doit avoir une interface attirante, et s’intégrer au système dans le lequel il est, système d’information ou embarqué comme un réfrigérateur.
D’autre part, il faut prendre en compte que le logiciel est aujourd’hui intégré à presque tous les produits et les exigences et spécifications le concernant sont intégrées au produit.
Le terme « exigence » pourrait être remplacé par le terme « nécessité » car en Français son sens est très fort et prête à confusion.
Le point est donc de considérer comment l’industrie analyse et décrit les besoins et voir si ces modèles ne sont pas transposables aux logiciels.
Comme méthodologie d’analyse fonctionnelle et d’analyse de la valeur, la méthodologie APTE ou MISME mérite d’être considérée. Son raisonnement est orienté fonctions et services à l’utilisateur ou au client Elle est conforme aux normes NF X50-151 à 153. Cette méthode est enseignée dans certaines écoles d’ingénieurs et comprend des artéfacts comme la bête à corne ou la pieuvre.
APTE considère l’ensemble des composants du système avec leurs interactions, ainsi que les milieux environnants. Elle favorise la créativité en raisonnant par rapport aux finalités exprimées indépendamment des solutions. Elle est « Lean » car établit une distinction entre ce qui est « utile » ou « inutile ».
Le premier outil de la méthode est la bête à corne.
Ensuite inventorier les interacteurs des fonctions et les contraintes pour les différentes situations de vie du produit.
Le deuxième outil de la méthode est la pieuvre qui représente le produit, les interacteurs, les Fonctions Principales ou de transfert et les Fonctions Contraintes pour les différentes situations de vie. Pour chacune, des critères d’acceptation sont définis des niveaux de flexibilité ainsi que la criticité de la fonction. On arrive ainsi à définir un cahier des charges, ou une expression des besoins qui respectera le critère INVEST des User Story Agile ou les critères Qualité des exigences logicielles tels que présentés dans le standard IEE830.
Une grande partie des méthodes dites Agile viennent de, intentionnellement ou pas ou rejoignent l’expérience acquise dans l’industrie.
D’autres méthodes sont également à considérer comme l’analyse du besoin avec le modèles de Kana et ses questions fonctionnelles et dysfonctionnelles et les CTQ (Critical To Quality).
Regarder ce qui est fait dans l’industrie permet d’aller plus vite dans ce qui est appelé « Ingénierie des exigences » et « Définition du besoin » propres au métier d’Analyste Métier et ainsi de satisfaire les utilisateurs.
Le monde logiciel va devenir leader dans les méthodes industrielles et il conviendrait aux informaticiens d’intégrer ces méthodes comme base du futur.