web-dev-qa-db-fra.com

Penser en héritage vs éditer plusieurs valeurs différentes

Lorsqu'il est présenté avec plusieurs modules similaires, contenant tous le même ensemble de paramètres définissables par l'utilisateur, quel modèle est le mieux adapté au plus large éventail d'attentes des utilisateurs?

Héritage:

En utilisant un exemple simple, un module racine peut être "cloné" et toutes les valeurs sont héritées de ces nouveaux enfants. Les valeurs chez les enfants peuvent être mises à jour comme on pourrait s'y attendre.

enter image description here

Étant donné que les valeurs sont héritées du parent, une mise à jour du parent est récupérée par tous les enfants. Cela permet à un utilisateur de modifier rapidement les valeurs d'un grand nombre de modules.

enter image description here

L'exception à cela est si un enfant a déjà modifié la valeur. Cela commence à devenir un problème, ainsi que d'autres, lorsque la structure de l'héritage devient plus complexe.

Ces problèmes (exprimés dans l'image ci-dessous) peuvent être résumés avec: (1) les valeurs ne changent pas lorsque l'utilisateur s'y attendait, et (2) les valeurs changent lorsque l'utilisateur ne s'y attendait pas.

Dans cette situation - la racine (module le plus à gauche) a 3 enfants (modules centraux), chacun ayant plusieurs enfants (puces à droite) qui pourraient également avoir des enfants (par indentation).

enter image description here

Cette inattendue pourrait être surmontée/limitée par le processus; où les utilisateurs sont invités (par la direction) à ne pas hériter au-delà d'un certain niveau et/ou à ne pas modifier les valeurs enfants à un certain niveau. Mais le processus complexe devient un problème à un moment donné.

Édition de valeurs dissemblables multiples:

Dans ce scénario, chaque module serait découplé et l'utilisateur devrait mettre à jour chaque valeur individuellement. Un modèle de sélection multiple peut être configuré pour faciliter la modification de la même valeur sur plusieurs modules:

enter image description here

Ce modèle se trouve dans de nombreuses applications grand public, iTunes étant un exemple où je peux modifier les informations de plusieurs pistes musicales à la fois. Dans certains cas, les valeurs ne peuvent pas être mises à jour lorsque plusieurs pistes sont sélectionnées et une erreur est présentée lorsque cela est modifié.

La relation enfant-parent ne serait que lors de la création dans ce cas. Un nouvel élément créé pourrait hériter d'un parent, mais deviendrait sa propre entité lors de sa création. Toute autre action sur le parent ou l'enfant n'affecterait que cet objet spécifique.

Le problème ici est que nous avons un seul ensemble de paramètres représentant plusieurs modules avec des valeurs (probablement) différentes, ce qui peut créer une confusion pour déterminer les valeurs d'origine.

Compte tenu de ces ...

Quel modèle est le mieux adapté au plus large éventail d'attentes des utilisateurs, ou existe-t-il une autre alternative (qui capture un public plus large) qui n'est pas explorée ici?

5

Votre question est celle qu'Intuit a consacré beaucoup de temps et d'efforts à mettre en pratique avec son interface TurboTax, où les activités parentales sont effectuées en premier, et les formulaires enfants s'occupent du reste. Toute la procédure du travail nécessaire a été (pour autant que je sache sans être impliqué dans sa conception) commandée du parent à l'enfant. Comme vous vous en rendez peut-être compte, les enfants peuvent aussi être des parents, donc ce n'est pas un ordre dualiste, mais un ordre arborescent d'actions.

Et puis il y a des exceptions à tout ce qui peut être pris en charge. Si l'étape 15 affecte nécessairement l'étape 9, alors une retouche devra être effectuée par le système, et les modifications seront explicitement communiquées à l'utilisateur. Mais c'est une expérience acceptable et attendue. En tant qu'utilisateur, je me rendrai probablement compte que mon action peut affecter quelque chose que j'ai fait auparavant, donc je m'attendrai à ce que le système sache la même chose.

Donc, à mon avis, les valeurs héritées sont l'option préférée par l'utilisateur et moins taxante (sans jeu de mots), en particulier SI le but de votre interface est d'obtenir l'utilisateur à travers le travail avec précision et sans activité redondante.

Votre question générale, j'en suis sûr, s'applique à un ensemble très précis de circonstances. La détermination du "plus large éventail d'attentes des utilisateurs" peut être effectuée par le biais d'un travail personnel et de tests.

1
Evan Lange