Méthode d'analyse des besoins, après wireframes

Bonjour à tous,

Je développe actuellement en agile avec un client, et serais curieux de savoir s’il existe des bonnes pratiques pour l’analyse des besoins.

EDIT: Il s’agit d’un site de e-commerce complexe car il permet de louer des marchandises suggérées de manière régulière (modèle d’abonnement à plusieurs niveaux tarifaires), et est donc soumis à de nombreuses règles et contraintes opérationnelles. (ex: stock, livraison, re-conditionnement, commandes combinées, etc…)

Mon client a fait appel à un designer UX pour produire des wireframes de chaque écran de sa future app web responsive dont le développement me revient. Le client a ensuite annoté les wireframes sous forme de user stories (plus ou moins), afin que je puisse lister les taches de dev correspondantes sur cette base.

Ma question porte donc sur la transition entre cette “specification” (wireframes + user stories fournies par client) et la liste des taches (avec chiffrage estimé) que je vais proposer pour mon sprint.

Connaissez-vous un moyen d’identifier efficacement (en temps et en couverture) les éventuels “points flous” (entre autres questions à poser) qui pourraient causer des pertes de temps plus tard pendant le développement, afin de les régler au plus tôt et être surs d’être sur la même longueur d’ondes ?

Je suis preneur de toutes bonnes pratiques, et suggestions que vous auriez sur le sujet !

Au plaisir de vous lire !

Bonjour,

J’avoue que je préfère éviter de partir sur des wireframes durant la phases d’identification des besoins, car je trouve qu’il est plus facile d’oublier des besoins réels, car on réfléchit à des solutions et non plus aux besoins.
C’est pourquoi je te conseillerai de faire la liste des besoins du client, sans proposer de solution. Si c’est déjà fait, oublie.

Ensuite, ça dépend du changement que ça va apporter dans l’entreprise. Si c’est l’automatisation d’un processus, refaire le schéma du processus actuel et voir si l’ensemble des solutions traitent le processus entier. Si c’est un système de catalogue (fiche client, inventaire, etc.), voir si toutes les entités ont bien été représentées.

De manière générale, j’ai envie de dire qu’il est intéressant de se tourner vers les « serious games ». Des brainstormings, mind mapping, et dérivés pourront surement faire sortir des idées (il y a plein d’articles sur le sujet). Ces « jeux » peuvent être faits avec le client et les utilisateurs et/ou avec l’équipe projet. C’est (les idées de l’équipe et du client/des utilisateurs) à mon sens le meilleur moyen de trouver les points faibles dans un projet.
Ne pas oublier le rapport coût/qualité/délai pour réaliser ces jeux. Il est inutile de perdre trop de temps (charge j/h) pour peu de risques.

Peut-être si tu peux nous dire le type de projet que tu fais, on pourra t’aider plus précisément dans ce cas.

En espérant t’aider et les autres,
Gaëtan

Bonsoir Gaëtan,

Merci pour ta réponse !

Je ne suis pas sur de comprendre ta vision de discuter besoins seulement entre développeur et client sans faire de wireframes… Les wireframes permettent de discuter de manière plus concrète car ils permettent à la fois au client de matérialiser/visualiser la vision de son produit, et au développeur d’identifier les “noeuds” liés à sa modélisation et son usage. De plus, pour un projet web grand public, il me semble que la participation d’un designer d’experience utilisateur est devenue indispensable, car les internautes sont de plus en plus exigeants et impatients, et que les défauts coutent vite cher.

Ceci étant dit, je suis d’accord sur l’idée que ça dépend du type de projet. Aussi, je viens d’ajouter dans ma question la nature du projet sur lequel je travaille: Il s’agit d’un site de e-commerce complexe car il permet de louer des marchandises suggérées de manière régulière (modèle d’abonnement à plusieurs niveaux tarifaires), et est donc soumis à de nombreuses règles et contraintes opérationnelles. (ex: stock, livraison, re-conditionnement, commandes combinées, etc…)

Par ailleurs, je n’ai pas connaissance de tels serious games, mais cette idée me rend très curieux ! Peux-tu citer quelques exemples de serious games utiles pour les développeurs freelance ?

Rebonjour,

En relisant mon message, en effet, je ne suis pas forcément clair dans ma démarche. Ce que je voulais dire, c’est que le processus que j’utilise est celui ci-dessous. J’en profite pour ajouter des serious games en exemple, des liens externes seront présents en fin de message.

Remarque initiale: tout ce qui est dit dans le reste de la réponse est un modèle générique, à adapter selon les situations et dont plusieurs « parties » peuvent être regroupées. Si je sépare ainsi, c’est pour expliquer une démarche itérative et les questions à se poser.

Pour les fainéants, vous pouvez lire les gros titres, puis vous arrêter uniquement là où ça vous intéresse. ;)

Processus générique

Rechercher LE besoin principal (le « pourquoi » du projet)

L’objectif de cette première approche est de savoir ce qu’il veut faire du nouveau système.

  • Est-ce que c’est changer un processus (ou ensemble de processus) de son entreprise ?
  • Est-ce que c’est enregistrer les informations dans son système (catalogue) ?
  • Est-ce que c’est un système e-commerce ?
  • Autre ?

Souvent, cette première partie, le client connait déjà la réponse, mais parfois, il est nécessaire de le confirmer (exemple: j’aimerai un site vitrine pour afficher les produits que je vends. => site vitrine ou site e-commerce ?).

A ce niveau, on est dans la discussion simple, rapide.

Serious game: mind mapping, brainstorming, QQOQCCP

Itérer pour définir les grands besoins (les « quoi »)

Cette partie permet de trouver les grandes parties de la solution (pas forcément des modules, mais des fonctions ou branches métier). Cette partie va permettre d’identifier les vrais besoins (et envies) du client et définir le périmètre du projet.

  • Quels sont les éléments à prendre en compte (les « catalogues » existants et à implémenter) ?
  • Qu’est-ce qui ne va pas dans le fonctionnement actuel ?
  • Qu’est-ce qu’on aimerai pouvoir faire (le « quoi », pas le « comment ») ?

A ce niveau, on utilise des serious games pour trouver les besoins de toutes les parties prenantes (si possible de faire toutes).

Je parle d’itération, car il peut être nécessaire de réaliser plusieurs fois l’opération pour faire le tour, selon la taille du projet, la liste des parties prenantes à prendre en compte, etc.

Les informations issues de cette partie sont :

  • Les fonctions principales ;
  • Les contraintes fortes ;
  • Les processus actuels et futurs.

Les données nécessaires au macro-chiffrage sont alors présentes.

Serious game: mind mapping, brainstorming, speed boat, rebondissement d’idée, dessins, recherche des dépendances (pour faire ça, qu’est-ce qu’il faut faire ?)…

Itérer pour définir des solutions (les « comment »)

Enfin cette partie va permettre de trouver la liste des fonctionnalités et transformer les besoins en solutions. C’est à ce niveau que les wireframes peuvent intervenir, car on sait tout ce que l’on veut.

  • Comment on gère ces données ?
  • Comment est-ce qu’on réalise cette fonction ?
  • Quelles sont les contraintes ?

A ce niveau, on peut encore utiliser des serious games pour tenter de trouver des moyens sur comment on peut réaliser la fonction, avec le client, l’équipe (ou partie) et les utilisateurs (ou partie). Ainsi, les idées vont se confronter et on pourra trouver des solutions simples à mettre en place et utiliser.

Je parle d’itération, car à ce niveau, on est vraiment dans le comment. On va essayer de trouver des idées sur comment réaliser l’application petit à petit en fonction de ce qu’il est déjà développé (du moins, dans un projet itératif). Ainsi, si on a une idée en milieu de projet, on peut l’inclure dans les développements futurs, sans devoir modifier tous les wireframes.

serious games: ceux de la partie précédente à un niveau plus concret…

Remarques supplémentaires

Comme dit précédemment, ce processus est générique et ne s’adapte pas à tous les projets et personnes.

Dans ton cas, tu me demandais pourquoi ne pas utiliser des wireframes dès le début. La réponse est tout simplement car cela met des œillères pour trouver les vrais besoins ou besoins dépendants, car une fonction peut être logique pour le client et non pour le développeur et que l’absence du wireframe ne va pas le lui faire penser.
Par exemple pour un site e-commerce (pour rester dans le thème), tu fais un wireframe pour la liste des produits possibles, modifiable, avec les prix, les réductions, la durée de livraison. C’est bon, il y a tout ! Sauf qu’ici, on a oublié la gestion de l’inventaire et savoir si le produit est en stock, disponible chez le fournisseur, quand il sera livrable, etc.

De même, ne faire aucun wireframe n’est pas forcément une solution. La preuve est que je parle de dessins (le wireframe en est un) comme idée de serious games. Il faut juste savoir ne pas se focaliser dessus pour prendre de la hauteur et se poser des questions sur « Qu’est-ce qu’on oublie ».

Enfin, le processus décrit ci-dessus n’est pas en cascade pur, il peut être plus souple et faire des allers-retours entre les phases 2 et 3, mais attention à ne pas dépasser le périmètre.

Pour ton cas

Pour ton cas, je te conseille de créer tous les processus utilisateurs du site et fonctionnels de l’entreprise (impactant le site), les dépendances entre chaque fonction (mind mapping). Ça pourra peut-être montrer des parties non prises en compte dans la solution.

Sinon, je laisse la communauté parler. :)

Désolé pour le pavé, mais j’espère qu’il en aidera plus d’un.

Liens externes

2 « J'aime »

Merci infiniment pour avoir partagé ce process, Gaëtan !

J’ai découvert énormément de choses en te lisant !

Pour commencer, je prends conscience que j’ai en fait délégué implicitement la partie d’analyse des besoins au designer UX qui a été intégré au projet suite à ma suggestion. Mes doutes sur la couverture des user stories s’appuie sur le fait que seuls des wireframes ont été fournis par le designer, alors que j’espérais probablement des documents montrant une analyse des besoins plus poussés, afin que je puisse au plus vite faire ce que je fais de mieux: implémenter.

Te lire m’a donc permis de mieux comprendre la séparation entre les phases d’analyse du besoin et de proposition de solutions.

Par ailleurs, le seul serious game que je connaissais était le planning poker. Ceci dit, je ne suis pas encore sur d’avoir besoin de telles méthodes pour l’instant, sachant que je suis le seul développeur à travailler sur ce projet.

Ce qui m’amène à deux autres questions pour mes confrères développeurs freelance bossant en agile en solo:

  • Comment adaptez-vous ce process pour des projets de développement de sites/apps pour startup ?
  • Demandez-vous à faire intervenir d’autres personnes que vous-même pour assurer la bonne réalisation du projet ? Si oui, sur quelle expertise (design, coach agile…) ? Et comment l’intégrez-vous dans le projet ? (à quelle(s) phase(s))
Human Coders - Le centre de formation recommandé par les développeur·se·s pour les développeur·se·s