Le problème XY (XY Problem) peut survenir lorsqu'une personne demande de l'aide pour la résolution d'une question à d'autres personnes.
C'est un blocage mental aboutissant généralement à de grosses pertes de temps et d'énergie que ce soit pour la personne demandant de l'aide ou pour ceux qui en proposent.
Généralement le schéma est le suivant :
- L'utilisateur veut faire X.
- L'utilisateur ne sait pas comment faire X mais pense qu'il pourra obtenir une solution s'il commence par faire Y.
- L'utilisateur ne sait pas faire Y également.
- L'utilisateur demande alors de l'aide pour faire Y.
- Les autres personnes essayent d'aider l'utilisateur à faire Y mais ces derniers ont des doutes sur la résolution de Y.
- Après plusieurs allers-retours et de temps perdu, les personnes se rendent compte que l'utilisateur voulait en fait de l'aide pour résoudre X et que Y n'était même pas une solution envisageable.
Que faire ?
- Toujours inclure des informations sur un spectre plus large avant de décrire toute tentative de solution.
- Si quelqu'un demande plus d'informations, fournissez des détails (copie écran, document, portion de code, etc).
- S'il y a d'autres solutions que vous avez déjà exclues, donnez les raisons pour lesquelles vous les avez écartées. Cela donne plus d'informations sur vos besoins.
Exemple concret
n0vice ne veut pas les 3 derniers caractères d'un fichier (Y), il veut extraire l'extension (X).
Alors pourquoi demande t-il les 3 derniers caractères ?
Dans un extrait de dialogue, il y a écrit :<n0vice> Comment peut-on récupérer les 3 derniers caractères d'un nom de fichier ?
<feline> S'ils sont dans une variable : echo ${foo: -3}
<feline> Pourquoi 3 caractères ? Qu'est-ce que tu veux vraiment faire ?
<feline> Ne chercherais-tu pas à obtenir l'extension d'un fichier ?
<n0vice> Oui.
<feline> Alors demande ce que tu veux vraiment !
<feline> Il n'y aucune garantie qu'une extension de fichier soit exactement sur 3 positions,
<feline> alors prendre bêtement les 3 derniers caractères ne résoudra pas ton problème.
<feline> echo ${foo##*.}
Allez plus loin en lisant également : l'art de poster