Le développement logiciel vise généralement à aligner les spécifications avec l'implémentation.
Pour cette raison, nous concevons le logiciel pour qu'il réponde aux spécifications, puis nous l'implémentons sur la base de cette conception. Nous utilisons ensuite des tests pour confirmer que l'implémentation respecte les spécifications, corrigeant l'implémentation en cas d'écarts, ou clarifiant les spécifications si elles sont ambiguës.
Cela peut être qualifié d'ingénierie basée sur les spécifications et l'implémentation.
En revanche, lorsque l'on discute de logiciels aujourd'hui, l'expérience utilisateur prend une importance croissante.
De plus, c'est le comportement du logiciel, et non son implémentation, qui façonne réellement l'expérience utilisateur.
Par conséquent, en dehors du cadre des spécifications et de l'implémentation, existent l'expérience et le comportement.
En conséquence, je crois qu'il est pertinent d'explorer le concept d'Ingénierie de l'Expérience et du Comportement, qui est basée sur l'expérience et le comportement.
Liquidware
L'ingénierie de l'Expérience et du Comportement est une approche irréaliste avec les méthodes de développement logiciel traditionnelles.
Ceci est dû au fait qu'elle exige d'améliorer l'expérience utilisateur sans frontières strictes ni divisions fonctionnelles dans les spécifications. Une demande occasionnelle d'un utilisateur pour améliorer son expérience pourrait même nécessiter de rejeter tous les logiciels précédemment développés.
D'autre part, si un jour l'automatisation du développement logiciel basée sur des agents utilisant l'IA générative devient monnaie courante, la refonte de systèmes logiciels entiers sera acceptable.
De plus, à une telle époque, en dotant les logiciels publiés d'un chatbot ingénieur IA, il est concevable que nous entrions dans une ère de "liquidware", où l'interface utilisateur pourra être modifiée pour s'adapter aux préférences de chaque utilisateur.
Liquidware désigne un logiciel plus flexible que les logiciels traditionnels, s'adaptant parfaitement à chaque utilisateur individuel.
Lorsque cette ère de développement automatisé et de liquidware arrivera, le paradigme d'ingénierie basé sur les spécifications et l'implémentation deviendra obsolète.
Au lieu de cela, nous passerons à un paradigme d'Ingénierie de l'Expérience et du Comportement.
Qu'est-ce que le comportement ?
En termes simples, le comportement est un état qui évolue dans le temps.
Et tester le comportement n'est rien de moins que tester cet état variant dans le temps.
De plus, tester le comportement ne consiste pas à confirmer une conformité avec une spécification qui définit la manière dont les états transitionnent. Au lieu de cela, le comportement est testé en fonction de la qualité de l'expérience utilisateur.
Bien sûr, s'il y a des bogues qui entraînent le système à effectuer des opérations non intentionnelles par l'utilisateur ou le développeur, ceux-ci nuisent également considérablement à l'expérience utilisateur. Par conséquent, les tests de comportement incluent la vérification de la conformité fonctionnelle et de la validité fonctionnelle.
Une fois ces exigences fonctionnelles de base satisfaites, l'accent est mis sur le test d'un comportement de haute qualité du point de vue de l'expérience utilisateur.
L'Expérience Ultime
Pour les êtres humains, l'expérience utilisateur ultime est le contrôle de son propre corps lorsque l'on est en bonne santé.
Considérez ceci : chaque jour, nous contrôlons un corps pesant des dizaines de kilogrammes, complexe, mais hautement contraint et limité, et nous l'utilisons pour des activités ciblées.
Si l'on tentait de contrôler un système aussi lourd, complexe et fortement contraint pour effectuer les activités désirées, l'expérience serait généralement assez médiocre.
Cependant, tant que nous ne nous sentons pas malades, nous déplaçons ce corps lourd, complexe et fortement contraint comme s'il était en apesanteur, nous le manipulons aussi facilement qu'un mécanisme simple, et nous ne prêtons aucune attention à ses limitations et contraintes comme si elles n'existaient pas.
C'est l'expérience ultime.
En recherchant un comportement de haute qualité, il pourrait devenir possible d'offrir une expérience comparable à celle du contrôle de son propre corps.
En d'autres termes, même si un système est lent à traiter, complexe en termes de fonctionnalités, et présente de nombreuses limitations et contraintes, une expérience "liquidware" totalement sans stress pourrait être réalisée.
En Conclusion
Le liquidware ultime offrira une expérience semblable à celle de notre propre corps.
Un tel liquidware deviendra pour nous quelque chose comme un corps.
Chaque fois que le liquidware ultime se propagera ou que ses fonctions seront améliorées, nous aurons l'impression que nos propres corps s'étendent.