blog2geek.com
SlyAvatar de Sly

245 billets | Profil

Recherche Google

ce blog tous
Derniers billets Connexion
Archives

yay

22/05/2007

[WEB] Ergonomie - solution 'scénario'

Ce post fait partie d'une série de quatre, relatifs au même problème.
Introduction - l'ergonomie : ni une science ni un art, mais une méthodologie.
Présentation - le problème concret
Solution 1 - une solution pratique et rapide
Solution 2 - la vraie méthode propre (si applicable)
-------------------------------------------------------------------------------------------

Voici la fin de notre série hautement philosophique : le problème de l'ergonomie d'une liaison N-N dans une web application.

 

DEUXIEME METHODE : SCENARIO

La deuxième solution maintenant : je l'ai faite au boulot et je suis en cours d'implémenter la première, parce que c'est bien voire nécessaire de pouvoir faire les deux.

Il faut considérer comment ce choix de liaison N-N se place dans les étapes d'utilisation de l'application. Les professionnels appellent cela les 'user persona' et le scénario.

C'est pas facile de tout prévoir mais nous sommes des développeurs Agiles que diable ! On a bien un contact avec le client, ou le feedback des utilisateurs si le déploiement aussi se fait de manière incrémentale, ou encore des bêta-testeurs si l'entreprise y a pensé (ça doit être rare mais pourquoi pas).

Alors profitons-en (en plus, ça fait sérieux ^^) !

 

Si on se rend compte par bonheur que toute étape de choix est précédée par la consultation d'une fiche du client, de la saisie de son numéro, ou ce genre de trucs, on peut stocker ça dans la session (attention aux perfs) ou les params (attention aux accès directs à la page) pour que le champ soit pré-saisi à l'avance.

Par exemple, en haut de chacun de mes fiches client, il y a un lien vers chaque 'objet associé' (compte rendu de RDV, alerte dans son calendrier perso, liste de ses comptes...). Il suffit de rajouter 'créer un compte' sur cette barre et voila !

On peut aussi stocker dans la session le dernier compte actif, pour pouvoir suivre encore mieux le déroulement et proposer un accès rapide de plus. Pour ce genre de choses, le plugin acts_as_toucher m'a l'air très prometteur [voir en bas de page]

Bref, en stockant tout cela, on peut ajouter un lien très explicite : "Lier le compte numéro 424242 avec Monsieur Alfred Dupont".

 

Certes, avec ma méthode actuelle, quand tu créera un compte à partir d'une fiche client, il ne pourra y avoir qu'un seul client pré-rempli, et ca ne fait que déplacer le problème pour le moment où on aura besoin de lier deux clients.

Mais c'est peut-être déjà pas mal : puisque que les comptes joints ne sont pas excessivement fréquents, on apprécie quand même d'avoir la vie facilitée dans la plupart des cas.

Hé oui, hormis la volonté de faire tout à la perfection, nous sommes dans la vraie vie et on ne va pas perdre temps, argent et peut-être performance pour un cas rarissime.

 

[Note sur le plugin Acts as Toucher]

Je devrais bientôt le mettre en place au boulot et je contacterai peut-être le développeur pour ajouter une propriété 'action effectuée'. Car savoir que l'enregistrement a été "touché" c'est bien, mais savoir pour quoi (lecture/écriture) c'est mieux. Je n'ai pas bien regardé le code ceci dit, et une combinaison subtile de ce plugin et de created_at / updated_on pourrait peut-être bien déjà faire l'affaire.

 

Merci de m'avoir lu jusque là :)

> Rédiger un commentaire

15:09 25/05/2007 - johan

De rien ;)
Effectivement, je m'étais déjà rendu compte de cet inconvénient de vouloir potentiellement créer en même temps des comptes et des clients qui soient lié entre eux.
Je pense qu'une solution serait de pouvoir garder en mémoire quelque part (session, params, cookie, ou autre) les informations déjà rentré pour un compte ou un client.
Ainsi, si tu es entrain de créer un compte et que tu veux lui rajouter un client qui n'existe pas : tu stockes les infos déjà rentré sur le compte et tu amènes l'utilisateur sur le formulaire de création d'un client. Inversement, tu es entrain de créer un client et tu veux lui rajouter un  compte, idem, tu stockes les infos du client entrain d'être créé, et tu renvoie l'utilisateur sur la création d'un compte. Et une fois que tu as créé le compte, puis le client. Hop tu mets à jour le compte pour qu'il sache à quel client il appartient.
Arf, je viens de me rendre compte que l'inconvénient de mon idée c'est de tolérer à la fois qu'un client n'a pas de compte (la encore c'est pas genant), mais aussi qu'un compte n'a pas de proprietaire (la c'est plus genant). Une astuce serait de tolerer que seul un compte non actif est le droit de ne pas avoir de proprio.
Bon, après je te dis juste ce qui me passe par la tête... Bon courage ;)
Une bonne application est une application qui permet à tout utilisateur de faire ce qu'il a envie de faire de maniere intuitive pour lui... comme l'intuition est une notion subjective... Une bonne appli est une appli permettant de faire chaque tache d'une multitude de manieres differentes ;) 

> Rédiger un commentaire