User Tools

Site Tools


en:en:en:en:en:en:en:en:en:en:en:en:en:fr:x-and-y-problem

Pré-mots

Quelqu'un vous a dit qu'il est possible que vous ne parliez pas de la question originale, alors lisez attentivement ce qui suit.

Wikipédia

Le problème XY est un problème de communication rencontré dans les services d'assistance et les situations similaires dans lesquelles la personne qui demande de l'aide occulte le véritable problème, X, parce qu'au lieu de poser directement des questions sur le problème X, elle demande comment résoudre un problème secondaire, Y, qui, selon elle, lui permettra de résoudre le problème X. Cependant, la résolution du problème Y ne résout souvent pas le problème X, ou est une mauvaise façon de le résoudre, et l'occultation du véritable problème et l'introduction d'un problème secondaire potentiellement étrange peuvent conduire la personne qui essaie d'aider à avoir des difficultés de communication inutiles et/ou à offrir de mauvaises solutions.

Le problème XY est fréquemment rencontré dans les environnements d'assistance technique ou de service à la clientèle, lorsque l'utilisateur final a tenté de résoudre le problème par ses propres moyens et qu'il ne comprend pas la véritable nature du problème, croyant que son vrai problème X a déjà été résolu, à l'exception d'un petit détail Y dans sa solution. L'incapacité du personnel d'assistance à résoudre son vrai problème ou à comprendre la nature de sa demande peut provoquer la frustration de l'utilisateur final. La situation peut devenir évidente si l'utilisateur final pose des questions sur un détail apparemment insignifiant qui n'a rien à voir avec un objectif final utile. La solution pour le personnel d'assistance consiste à poser des questions approfondies sur la raison pour laquelle l'information est nécessaire, afin d'identifier le problème de fond et de détourner l'utilisateur final d'un chemin de recherche improductif.


Stack Exchange

Qu'est-ce que c'est ?
Le problème XY porte sur votre tentative de solution plutôt que sur votre problème réel.

En d'autres termes, vous essayez de résoudre le problème X et vous pensez que la solution Y fonctionnerait, mais au lieu de poser des questions sur X lorsque vous rencontrez des difficultés, vous posez des questions sur Y.

====== Le problème ======

Cela peut entraîner la frustration des personnes qui tentent de vous aider à résoudre le problème, car lorsque vous posez la question, la solution pour laquelle vous avez besoin d'aide n'a peut-être pas de lien évident avec le problème que vous essayez de résoudre.

Comment l'éviter ? Pour éviter de tomber dans ce piège, accompagnez toujours toute tentative de solution d'informations sur une situation plus large. Si quelqu'un demande plus d'informations, ou surtout une question plus spécifique, donnez des détails. Si vous pensez que d'autres solutions seront proposées et que vous les avez déjà exclues, n'essayez pas d'éviter d'y revenir - indiquez plutôt pourquoi vous les avez exclues, car cela donne plus d'informations sur vos besoins et aide les autres à fournir de meilleures réponses.

Un exemple

Une conversation IRC récente à titre d'illustration :

Q : Existe-t-il une fonction permettant de renvoyer une chaîne de caractères entre deux délimiteurs ?
B : Je ne comprends pas ce que vous voulez dire, mais je doute qu'il existe déjà une fonction.
C : Séparer et découper
D : Partition aussi
Q : J'ai essayé la partition
Q : J'ai essayé d'utiliser des composants pour obtenir le nombre entre quelque chose comme ceci dans une chaîne “attribut1 : 50.223, attribut2 : 442.1”
D : Pourquoi ne pas analyser simplement la chaîne de caractères ?
Q : Je pensais qu'il existait des fonctions d'analyse intégrées.
D : paires = [x.strip() for x in s.split(“,”)] ; attributs = {k : v for x in pairs for k, v in [x.split(“ : ”)]}
D : Il existe quelques bibliothèques, mais les formats simplistes sont assez simples – si vous ne vous souciez pas de la gestion des erreurs.
D : Changer la source pour utiliser un format bien connu, par exemple json ou yaml, est préférable lorsque c'est possible
Q : Ce code provient en fait de HTML
Q : Mais je ne sais pas comment analyser Javascript avec HTMLParser ou quel que soit son nom.
D : Ce code est-il simplement intégré au HTML, ou s'agit-il d'une version altérée du HTML ?
Q : Il est intégré dans le HTML.
D : S'il s'agit de JavaScript (et c'est le cas, à l'exception des accolades extérieures manquantes), JSON peut probablement l'analyser.
Q : Merci.
D : Je ne l'ai pas dit explicitement : JSON n'analyse que les structures de données, pas le code JS.
Q : Tout ce dont j'ai besoin, c'est d'une structure de données.

Le problème est vraiment sur la façon d'analyser les structures de données JavaScript, et non de trouver “une chaîne entre deux délimiteurs”, mais il faut beaucoup de temps et d'intuition pour arriver au vrai problème.

C'est plus facile à faire dans un chat entièrement interactif (quel que soit le mode), mais sur un site SE, où vous peaufinez un message, le publiez et disposez ensuite de 5 à 30 minutes, voire plus, avant de recevoir un retour d'information, il est vraiment utile de s'orienter dans la bonne direction dès le départ.


XYProblem.info

Le problème XY consiste à poser des questions sur votre tentative de solution plutôt que sur votre problème réel. Cela entraîne une énorme perte de temps et d'énergie, tant de la part des personnes qui demandent de l'aide que de celles qui en fournissent.


L'utilisateur veut faire X.
L'utilisateur ne sait pas comment faire X, mais pense pouvoir trouver une solution à tâtons s'il parvient à faire Y.
L'utilisateur ne sait pas non plus comment faire Y.
L'utilisateur demande de l'aide pour Y.
D'autres personnes essaient d'aider l'utilisateur avec Y, mais sont déconcertées parce que Y semble être un problème étrange à résoudre.
Après de nombreuses interactions et une perte de temps, il devient finalement clair que l'utilisateur veut vraiment de l'aide pour X, et que Y n'était même pas une solution appropriée pour X.
Le problème survient lorsque les gens s'accrochent à ce qu'ils croient être la solution et sont incapables de prendre du recul et d'expliquer le problème dans son intégralité.


Que faire ?

Il convient de toujours inclure des informations sur une situation plus large dans toute tentative de solution.
Si quelqu'un demande plus d'informations, donnez des détails.
S'il existe d'autres solutions que vous avez déjà écartées, expliquez pourquoi vous les avez écartées. Vous obtiendrez ainsi plus d'informations sur vos besoins.
N'oubliez pas que si vos théories de diagnostic étaient exactes, vous ne demanderiez pas d'aide, n'est-ce pas ?

# Exemples Exemple 1 n00b ne veut pas vraiment les 3 derniers caractères d'un nom de fichier, il veut les extensions, alors pourquoi demander les 3 derniers caractères ?


<n00b> Comment faire apparaître les trois derniers caractères d'un nom de fichier ?
<feline> S'ils sont dans une variable : echo ${foo : -3}
<feline> Pourquoi 3 caractères ? Que voulez-vous VRAIMENT ?
<feline> Voulez-vous l'extension ?
<n00b> Oui.
<feline> Il n'est pas garanti que chaque nom de fichier ait une extension de trois lettres,
<feline> donc le fait de saisir aveuglément trois caractères ne résout pas le problème.
<feline> echo ${foo##*.}

Exemple 2

Si Angela avait commencé par expliquer qu'elle voulait empêcher les autres de détecter son OS, la discussion aurait pu être beaucoup plus courte et plus productive.


Angela : 'nmap -O -A 127.0.0.1' renvoie des lignes commençant par 'OS:'. Comment les modifier ?
Obama : Regardez le code source de nmap, trouvez comment il calcule la partie Linux, puis réécrivez votre pile TCP/IP pour qu'elle ne fonctionne pas d'une manière que nmap peut détecter.
Angela : Oui, mais je ne connais pas du tout l'interface utilisateur du système Linux.
Obama : L'empreinte digitale de nmap est basée sur la façon dont la pile TCP/IP fonctionne, il n'y a pas d'autre moyen que de réécrire les parties appropriées de cette pile.
Angela : J'ai vraiment besoin d'éviter ces messages. Est-ce qu'iptables peut faire ce travail ?
Obama : Eh bien, n'utilisez pas la détection du système d'exploitation ou l'analyse de la version.
Angela : Je veux empêcher les autres de connaître le type de mon système d'exploitation.


Conclusions

Le problème des X et Y peut être résolu de cette manière, en expliquant complètement ce que l'on veut faire et ce que l'on a essayé.

en/en/en/en/en/en/en/en/en/en/en/en/en/fr/x-and-y-problem.txt · Last modified: 2024/02/05 10:10 by 127.0.0.1