Première rédaction de cet article le 30 mai 2011
Il existe déjà plusieurs documents expliquant comment poser intelligemment une question sur un forum ou une liste de diffusion. Je ne vais pas prétendre les concurrencer, juste mettre en avant quelques points que je trouve particulièrement importants. Il m'est arrivé de voir une question mal posée, et de ne pas réagir parce que je n'avais pas le courage de rédiger une critique argumentée. Désormais, je n'aurai qu'à donner l'URL de ce document. Les exemples sont presque tous tirés du monde TCP/IP et visent particulièrement les gens qui configurent des services Internet.
Le texte de référence est évidemment celui d'Eric Raymond, « How To Ask Questions The Smart Way » (qui dispose d'une bonne traduction en français). (Et je suis sûr que mes lecteurs vont suggérer d'autres textes.) Vous avez tout intérêt à lire le texte de Raymond à la place du mien. Si vous insistez, voici les conseils qui me semblent à la fois particulièrement importants et particulièrement souvent violés.
Donnez les vraies informations. Il n'existe pas de raison impérative de dissimuler les noms et les adresses IP utilisées. Au contraire, si vous indiquez les vraies adresses, les lecteurs pourront les essayer plus facilement. Une des particularités de l'Internet est son ouverture : tout le monde voit la même chose et peut donc tester pour les autres. Si vous donnez les vrais noms, les lecteurs du forum ou de la liste pourront tester avec dig sur leur machine, et résoudre ainsi vos problèmes DNS. Si vous donnez les vraies adresses IP, les lecteurs pourront déboguer votre problème de routage avec traceroute et avec les looking glasses. Autre raison d'utiliser les vrais identificateurs : vous risquez moins de vous tromper (combien de fois ai-je vu des descriptions du problème où deux machines ont la même adresse IP...) Quels sont les cas où il est acceptable de ne pas donner les vraies noms ou adresses ?
toto.fr
existe vraiment) ou bien des adresses IP privées, tirées du RFC 1918. Dans les deux cas, il vaut mieux utiliser
les identificateurs conçus pour cela : les noms d'exemples du RFC 2606 (example.org
,
toto.example
, etc), et les adresses IP de
documentation des RFC 5737 et RFC 3849 (192.0.2.0/24
,
198.51.100.0/24
,
203.0.113.0/24
et
2001:db8::/32
). Vous évitez ainsi toute confusion
avec des identificateurs réels.example.com
». Dans un tel cas, une bonne
solution est de dupliquer la configuration du domaine en cause vers un
domaine bidon, ne servant qu'aux tests.Donnez le maximum de détails sur votre environnement : système d'exploitation utilisé, version, type de réseau (Ethernet ? 3G ?). N'oubliez pas que vos lecteurs ne sont pas dans votre tête : pour vous, il est évident que votre machine 192.0.2.34
est un routeur Extreme mais les autres ne le savent pas.
Faites des schémas. Un bon croquis vaut souvent mieux que bien des
discours. Comme il n'existe pas de norme largement répandue pour
transmettre des dessins (les faire sur sa machine est les distribuer
avec un service d'hébergement d'images ?), le mieux est d'utiliser l'art ASCII. Avec le mode picture
de l'éditeur Emacs, c'est assez facile. En voici un exemple, avec indication des noms des routeurs (ce qui facilite beaucoup les discussions ultérieures) et des interfaces :
TO THE INTERNET +--------------------+ Management network 198.51.173.0/28 |SuperNet | +------------- |(upstream provider) | | +--------------------+ | | | | Serial0 | eth1 (.1) +---------------+ +----------------+ | nelson | | steve | |(cisco router) | | (linux router) | +---------------+ +----------------+ / | | Ethernet0 (.65) | eth0 (.68) / | +---------------------------------------------- / | Backbone 198.51.173.64/26 PtP links to customers 198.51.173.32/27
Voir aussi mon article « Faire des schémas avec un langage et pas avec la souris ».
Soyez factuel : donnez les commandes exactes que vous avez
utilisées, les résultats exacts de ces commandes. Faites du
copier/coller, pas de la traduction ou du résumé. Rien de plus
frustrant que de passer dix minutes à chercher à comprendre un message
d'erreur, avant de se rendre compte qu'il s'agissait simplement d'une
mauvaise traduction faite par le demandeur. Quant aux résumés, ils
sont en général encore pires car ils reflètent les suppositions
(souvent erronées) du demandeur, pas les faits précis. Donc, dites
« Je tape ping www.toto.example
et j'ai une
réponse ping: unknown host www.toto.example
» et
surtout pas « Je pingue la machine mais il ne veut pas » (oui, ça fait
rire mais tous les jours, sur les forums et les listes de diffusion,
on voit des messages à peine meilleurs). Et si le message est trop
long (certaines commandes peuvent être très bavardes) ? Utilisez alors
un pastebin. En tout
cas, ne faites surtout pas de copie
d'écran : elles sont difficiles à lire, on ne peut pas
copier/coller ce qui y est
affiché, elles ne sont pas indexées par les moteurs de recherche, donc d'autres personnes
ne pourront pas tomber sur votre rapport. Et votre fond d'écran n'intéresse que vous.
Version PDF de cette page (mais vous pouvez aussi imprimer depuis votre navigateur, il y a une feuille de style prévue pour cela)
Source XML de cette page (cette page est distribuée sous les termes de la licence GFDL)