Travailler avec des clients qui ne savent pas ce qu'ils veulent

19

J'ai récemment commencé un travail qui me fait travailler sur un système existant. Il nécessite des ajustements et des mises à jour ainsi qu'un nouveau code. J'ai fait plusieurs projets de maintenance / ajout de fonctionnalités maintenant, et plusieurs d'entre eux ont fini par être très différents de ce qui était réellement demandé. J'ai donc dû programmer l'article plusieurs fois pour l'amener là où le demandeur le voulait.

Maintenant, cela ne me dérange pas de reprogrammer la fonctionnalité si c'est ce qui doit être fait. Cependant, je voudrais réduire le délai d'exécution de mes projets. Le goulot d'étranglement semble résider dans la perception du demandeur de ce qui doit être fait. Avez-vous des idées sur ce que je pourrais faire pour comprendre ce dont le demandeur a besoin plus rapidement?

Michael K
la source
1
Cela doit être meilleur que l'inverse, des clients qui savent ce qu'ils veulent mais pas ce dont ils ont besoin.
Craig
2
Les clients savent-ils ce qu'ils veulent?
Dominique McDonnell
6
"Le client ne sait pas ce qu'il veut jusqu'à ce que vous lui donniez ce qu'il a demandé"
Benjol
Il y a longtemps, j'ai commencé à rêver d'embaucher des analystes des exigences du crime organisé. "Est-ce que tu vas me dire ce qui se passe quand un client n'est pas dans une base de données, ou dois-je devenir dur?"
David Thornley
Veuillez suivre cette proposition pour ce type de question: Aspects organisationnels
Maniero

Réponses:

20

Quelques conseils:

  • Écoutez les problèmes, pas les solutions . Beaucoup de clients aiment vous dire comment résoudre leurs problèmes. Ne les écoute pas. Vous êtes le programmeur et c'est votre travail de trouver des solutions aux problèmes. Écoutez plutôt les problèmes rencontrés par les clients et trouvez la meilleure façon de les résoudre. comme d'autres l'ont dit, les clients ne savent pas vraiment ce qu'ils veulent, parfois vous devez d'abord le leur montrer.

  • Posez des questions . Lorsque vous avez terminé de poser des questions, posez-en plus. Les clients communiquent rarement des détails, car ils n'y pensent pas vraiment. La seule façon d'obtenir les informations dont vous avez besoin est de les extraire.

  • Obtenez les choses par écrit Selon la situation avec le client, cela peut être très important plus tard quand il commence à se plaindre du fait que ce que vous avez livré "n'est pas ce qu'il a demandé". et à tout le moins, la rédaction de spécifications détaillées peut vous aider à vous assurer que vous disposez de toutes les informations dont vous avez besoin et à lever les ambiguïtés entre vous et le client.

  • La communication est la clé . ne vous contentez pas de parler au client, d'obtenir des informations, de supprimer du code et de ne pas lui parler tant que ce n'est pas fait. Restez toujours en contact avec le client. Posez des questions tout au long du processus. montrez-leur les progrès que vous avez réalisés et obtenez des commentaires. Cela facilitera la vie de chacun à long terme.

GSto
la source
2
Excellente liste, en particulier le point 1. Beaucoup de clients demanderont "pouvez-vous ajouter ici un bouton qui fait X" ... mais si vous demandez plus en détail pourquoi ils veulent le bouton, vous le découvrirez parce qu'ils essaient de résoudre certains problème qu'ils ont avec une fonctionnalité complètement différente.
GrandmasterB
2
Un léger ajout au premier point - s'ils ont besoin d'une fonctionnalité pour faciliter une tâche, demandez si vous pouvez regarder comment ils font la tâche maintenant. Cela peut permettre de voir plus facilement quel est le vrai problème et quels sont les pièges potentiels.
glenatron
@glenatron: C'est une très bonne idée, en particulier. car il m'est impossible d'apprendre tout le système.
Michael K
@ Gsto: Sur # 2, parlez-vous du programmeur écrivant la demande avec l'entrée du client, ou du client l'écrivant? L'un des problèmes que j'ai est que la demande écrite du client est inexacte.
Michael K
Je fais souvent prouver au client ou au demandeur que la fonctionnalité ou le changement est un besoin et améliorera les choses. Vous n'avez peut-être pas ce luxe, mais si vous pouvez faire en sorte que le client ou le demandeur vous montre qu'ils comprennent parfaitement pourquoi ils veulent le changement et comment cela profitera aux autres, vous pourrez peut-être offrir une alternative pour répondre à leurs besoins au lieu de leur vouloir.
Josaph
5

À peu près n'importe quel livre d'entraide que vous prenez sur la communication va vous donner quelques variantes de ceci:

  • Cherchez d'abord à comprendre, puis à être compris

Cela vient du livre des 7 habitudes, mais ce sont toutes des variantes de la méthode de "l' écoute active ". Le but n'est pas seulement de comprendre, mais de leur communiquer ce que vous avez compris.

Une fois que je pense avoir une bonne idée de ce dont ils ont besoin (éloignez-vous de ce qu'ils veulent en particulier s'ils commencent à décrire les détails de la mise en œuvre - c'est votre travail pas le leur), je leur donne des exemples d'histoires de différentes personnes utilisant le système, et voir si qui jive avec eux.

Ensuite, j'implémente cela, en espérant pleinement qu'une fois qu'ils verront la fonctionnalité, ils se rendront compte que ce n'est pas exactement ce qu'ils veulent. Gardez tout flexible. La seule constante est le changement. J'obtiens généralement la plupart des bords rugueux après la deuxième mise à jour rapide après la première, mais je trouve toujours que j'approche asymptotiquement d'un idéal que je ne pourrai jamais atteindre. Finalement, vous devez laisser aller les choses sans importance et passer à des cibles de plus grande valeur.

Scott Whitlock
la source
4

Je ressens ta douleur....

La mauvaise nouvelle est la suivante: selon le type de clients avec lesquels vous traitez, cela peut être normal.

Un problème général commun est essentiellement que les clients ne savent pas ce qu'ils veulent . Ils savent généralement ce qu'ils veulent réaliser, en termes d'objectif commercial, mais ils n'ont souvent aucune idée de ce à quoi cela devrait ressembler en termes de solution logicielle. Donc, dans de nombreux cas, vous vous retrouverez dans ce cycle itératif où un projet rebondit cinq fois plus longtemps que l'estimation initiale, car le client ne cesse de changer d'avis et souhaite que la solution soit modifiée et retravaillée. Et oui, il n'est pas inhabituel que le résultat final soit transformé en quelque chose de complètement différent de ce à quoi ressemblait l'objectif initial.

J'ai eu un exemple épique de cela il y a quelques années - un projet qui a initialement pris 10 semaines pour coder s'est transformé en un processus de réitération de 15 mois. Dans ce cas, c'était principalement parce que différents gestionnaires et départements de l'entreprise cliente voulaient des choses différentes, ils ont donc continué à renvoyer le travail, à le peaufiner et à le peaufiner (notre logiciel est basé sur un abonnement et c'était un client majeur, donc ce il n'y avait pas de peau financière dans notre dos - juste un gros ennui technique vraiment).

Donc, fondamentalement, mon conseil est le suivant:

Si tel est le cas de votre industrie et de ces clients (c'est un gros SI), alors habituez-vous. Considérez-le comme un travail agile et orienté vers la maintenance (c'est ainsi que se déroule mon concert actuel, plus ou moins). :)

Si ce n'est pas ainsi que les choses sont censées être faites, et que vous reprenez la responsabilité des longs délais, alors parlez à vos patrons. Expliquez-leur qu'il y a des problèmes de communication et que les spécifications qui vous parviennent des clients ne sont pas assez claires pour que vous puissiez mettre en œuvre la solution souhaitée. Vous ne voulez pas vous retrouver dans la situation où vous reprochez de ne pas donner aux clients ce qu'ils veulent, si vous n'obtenez pas toutes les informations nécessaires pour leur donner ce qu'ils veulent.

Tables Bobby
la source
1
C'est en fait assez normal ici, mais c'est quelque chose que j'aimerais changer au moins pour mes projets. Je pense que beaucoup de ces demandes pourraient être retournées beaucoup plus rapidement - une simple pourrait prendre 3-4 (ou plus) semaines selon.
Michael K
2

Tout d'abord, vous devez accepter le fait que les clients ne savent pas vraiment ce qu'ils recherchent jusqu'à ce qu'ils le voient. Ils pourraient vous dire en ce moment qu'ils ont besoin de la fonctionnalité X. Montrez-leur la fonctionnalité X, puis ils se rendront compte que ce dont ils ont vraiment besoin est la fonctionnalité Y ou une autre variante de la fonctionnalité X.

Un bon moyen de comprendre plus rapidement ce que le client veut vraiment est d'adopter et de suivre le Manifeste Agile , qui se concentre sur la communication et la collaboration client. Divisez le cycle de développement en itérations et montrez au client un prototype de la fonctionnalité à chaque fin de l'itération. De cette façon, vous obtiendrez une rétroaction immédiate et la modifiez, selon les commentaires du client, sans avoir à investir trop de ressources sur la fonctionnalité. De cette façon, vous et le client serez satisfaits du résultat du produit.

Je suis sûr que la transition sera difficile pour votre équipe ou votre entreprise, mais c'est l'un des meilleurs moyens de faire face à des exigences en évolution rapide.

Terence Ponce
la source
1
+1 pour "Tout d'abord, vous devez accepter le fait que les clients ne savent pas vraiment ce qu'ils recherchent jusqu'à ce qu'ils le voient.". Et ce n'est pas une mauvaise chose. Certains des pires projets sur lesquels j'ai travaillé sont ceux où ils ont dépensé pour toujours essayer de trouver ce qu'ils voulaient avant d'impliquer les développeurs. Croyez-le ou non, plusieurs itérations sont souvent plus rapides qu'une conception initiale massive.
Jon Hopkins
1

Beaucoup, et beaucoup d'histoires similaires peuvent être trouvées ici . Je n'ai jamais, même en travaillant comme sous-traitant pour une autre société de développement, trouvé un client qui savait exactement ce qu'il voulait.

Je suis assez heureux de travailler avec quelqu'un qui a une très bonne idée de ce qu'il NE VEUT PAS ou ne veut pas éviter. Je peux généralement travailler à partir de là vers quelque chose qui les satisfait.

Mon expérience concerne principalement le développement d'applications / de plateformes. Heureusement, je dois rarement faire face à des problèmes d'esthétique comme le font les concepteurs de sites Web.

Tim Post
la source
1

Après de nombreuses réécritures ennuyeuses, j'opère maintenant ce que j'appelle une divulgation complète.

Ainsi, après avoir discuté des exigences et des désirs des clients, je rédigerai toujours ce que je perçois comme ils veulent et comment je procéderai pour répondre à cette exigence. Je vais ensuite leur envoyer ce que j'ai écrit et attendre qu'ils répondent par l'affirmative avant de commencer le travail.

Si c'est un grand projet (plus que disons 5 jours de travail), je prototyperai aussi. Cela leur donne une chance de changer d'avis sans changements massifs de code de ma part.

Cela ne fonctionne pas toujours, mais au moins je suis dans une position où le client sait que ce sont eux qui changent d'avis et pas moi qui les mettent en œuvre de manière incorrecte.

Gruffputs
la source