372 views
 owned this note
# Le problème XY, qu'est-ce que c'est ? Le problème XY est un questionnement sur notre mauvaise habitude à orienter sa solution plutôt que d'exprimer le 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. 1. L'utilisateur veut faire X. 1. L'utilisateur ne sait pas comment faire X, mais il pense qu'il peut trouver une solution s'il arrive à faire Y. 1. L'utilisateur ne sait pas non plus comment faire Y. 1. L'utilisateur demande de l'aide pour faire Y. 1. D'autres essaient d'aider l'utilisateur avec Y, mais sont confus parce que Y semble être un problème étrange à vouloir résoudre. 1. Après beaucoup d'interaction et de temps perdu, il devient finalement clair que l'utilisateur veut vraiment de l'aide avec X, et que Y n'était même pas une solution appropriée pour X. Le problème survient lorsque les gens restent bloqués sur 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 ? > Toujours inclure des informations sur un tableau plus large avec 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 ? ## Exemple 1 n00b ne veut pas vraiment les 3 derniers caractères d'un nom de fichier, il veut l'extension du fichier, alors pourquoi demander les 3 derniers caractères ? ``` <n00b> Comment puis-je 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'y a aucune garantie que chaque nom de fichier aura une extension de trois lettres, <feline> donc saisir aveuglément trois caractères ne résout pas le problème. <feline> echo ${foo##*.} ``` ## Exemple 2 Si Angela avait juste commencé par expliquer qu'elle veut 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 quelques lignes commençant par "OS :". Comment le changer ? Obama : Regardez dans le code source de nmap, trouvez comment il comprend 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 sais rien du tout sur l'api du système Linux. Obama : Eh bien, l'empreinte digitale de nmap est basée sur la façon dont la pile TCP/IP fonctionne, il n'y a pas vraiment de moyen sauf de réécrire les parties appropriées de ladite pile. Angela : Je dois vraiment éviter ces messages. Est-ce que iptables peut faire ce travail ? Obama : Eh bien, n'utilisez pas la détection du système d'exploitation ou le scan de version Angela : Je veux empêcher les autres de connaître le type de mon système d'exploitation ``` --- Traduit avec www.DeepL.com/Translator (version gratuite) Source http://xyproblem.info/ découvert sur https://zincasso.wordpress.com/ressources-pour-linformatique/