La qualité extrinsèque

J’aimerais commencer par rappeler que notre métier en tant que développeur n’est pas de produire du code, mais de créer un logiciel qui doit résoudre un problème.

C’est donc l’utilisateur final qui doit guider le développement du produit : la première des qualités dans un logiciel est la qualité que l’utilisateur va percevoir à l’usage du produit : la qualité extrinsèque de celui-ci.

Sans faire de hiérarchie, celle-ci se construit autour de 4 notions complémentaires :

L’absence de dysfonctionnement : un logiciel qui ne marche pas ou qui « bug » régulièrement n’a aucune chance de donner satisfaction à un utilisateur. Les dysfonctionnements peuvent aussi être indirects comme l’absence de sauvegarde en cas de perte de données, ou d’importants problèmes de sécurité.

: un logiciel qui ne marche pas ou qui « bug » régulièrement n’a aucune chance de donner satisfaction à un utilisateur. Les dysfonctionnements peuvent aussi être indirects comme l’absence de sauvegarde en cas de perte de données, ou d’importants problèmes de sécurité. L’adéquation entre le besoin et la façon dont le logiciel répond à celui-ci : avoir un logiciel qui marche c’est bien, encore faut-il que celui-ci serve à quelque chose. Et malheureusement, il n’est pas rare de voir des logiciels développés qui ne seront jamais utilisés, car ne répondant pas du tout aux problématiques des utilisateurs.

: avoir un logiciel qui marche c’est bien, encore faut-il que celui-ci serve à quelque chose. Et malheureusement, il n’est pas rare de voir des logiciels développés qui ne seront jamais utilisés, car ne répondant pas du tout aux problématiques des utilisateurs. L’usage naturel : ici l’on entre dans des notions d’ergonomie et d’expérience utilisateur, il faut que le logiciel puisse être utilisé sans avoir besoin d’un manuel de 500 pages ouvert à côté pour comprendre comment réaliser telle action.

: ici l’on entre dans des notions d’ergonomie et d’expérience utilisateur, il faut que le logiciel puisse être utilisé sans avoir besoin d’un manuel de 500 pages ouvert à côté pour comprendre comment réaliser telle action. La transparence de fonctionnement : il n’y a rien de plus frustrant pour un utilisateur que de ne pas comprendre pourquoi un logiciel donne un certain résultat ou refuse d’effectuer une certaine action. Le système doit fournir à l’utilisateur toutes les informations nécessaires pour expliciter une décision qu’il aurait prise.

L’on remarque que les deux premiers points (absence de dysfonctionnement et adéquation entre besoins et solution) font plutôt partie des domaines liés à l’ingénierie, quand les deux derniers (usage naturel & transparence de fonctionnement) font partie d’éléments qui sont plus liés par nature aux notions d’expérience utilisateur et de design.

Garder à l’esprit que ces objectifs de qualités sont prioritaires et extrêmement important pour décider des pratiques de développement à mettre en œuvre, et ce sont ces valeurs qui nous guident au quotidien dans nos développements.



Nb : je n’évoque pas la définition du besoin client en tant que tel. Mais il est évident que sans une bonne définition du besoin, votre logiciel ne pourra de toute façon pas répondre de façon correcte à celui-ci.

Je ne discute pas ici de la qualité intrinsèque d’un produit où l’on retrouve les notions plus connues de dette technique, complexité accidentelle et suringénierie, ces notions pourrons faire l’objet d’un article ultérieur.