Comment moi, développeuse débutante, je lis le tutoriel que vous (développeurs) avez écrit pour moi
(anniemueller.com)- Un texte qui décrit avec humour la confusion et les barrières que rencontrent les débutants lorsqu’ils lisent des tutoriels techniques écrits par des développeurs
- Les termes spécialisés et abréviations couramment utilisés par les développeurs sonnent pour les débutants comme une véritable « langue extraterrestre », sans aucun contexte
- Les étapes d’installation, chemins de fichiers et commandes terminal sont souvent trop complexes ou trop elliptiques pour être faciles à comprendre
- L’autrice souligne que des explications évidentes du point de vue d’un développeur deviennent pour un débutant des obstacles exigeant des heures de recherche et de tâtonnements
- Ce texte rappelle aux développeurs qui rédigent des tutoriels qu’ils devraient expliquer les choses avec plus de clarté et de bienveillance du point de vue d’un débutant
Contexte du texte et problème soulevé
- L’autrice raconte son expérience de débutante non développeuse lisant des tutoriels écrits par des développeurs
- Elle tourne en dérision le fait de n’avoir absolument aucune idée de ce que signifient les termes techniques et noms d’outils qui apparaissent dans ces tutoriels
- Ex. : en utilisant des noms techniques fictifs comme Hoobijag, Snarfus ou Shamrock portal, elle souligne qu’aux yeux d’un débutant, tout paraît inutilement compliqué
Traduction du texte original
« Salut ! Je suis développeuse. Voici mon expérience pertinente : je code avec Hoobijag et parfois j’utilise aussi des jabbernocks, et bien sûr je fais aussi de l’ABCDE++++ (mais jamais de l’ABCDE+/^+, ça serait absurde, non ? haha !) et j’aime travailler avec Shoobababoo, en m’occupant parfois aussi de kleptomitrons. J’ai fini par travailler sur du code lié à Shoobaboo chez Company[1], ce qui m’a menée à Snarfus. Bon, commençons !
À propos de ce tutoriel
J’ai commencé à faire quelque chose de très simple[2] avec Snarfus, et plus je l’utilisais, plus j’en voyais le potentiel ! Le chromus est un peu emmêlé, mais en réalité c’est extrêmement polyvalent. Alors j’ai commencé à argyliser du pintafore avec quagmire au lieu de hoobastank ! Oui, je sais, c’est dingue. Mais ça marchait plus ou moins, et c’était même plutôt amusant… jusqu’à ce que je tombe sur un gros obstacle : fisterfunk ne parlait absolument pas avec shamrock portal, et n’envoyait même pas les beep-boops à Snarfus ! Bien sûr, vous savez ce que ça veut dire[3] — maintenant tout le hoob-tunnel est bouché par des gramelions. Inacceptable.
J’étais à deux doigts d’abandonner, puis j’ai réalisé : si on connecte le backside Snarfus stagnator au backside shamrock Klingon troglodyte emulater, ça marche ! Tout s’est mis à faire beep-boop et ding-dong, et j’ai enfin pu en venir au vrai sujet du tutoriel. Et j’ai pu faire quelque chose de très simple exactement comme je le voulais ! Plutôt cool[4].
Voici donc comment le configurer :
- Dans le terminal, tapez ajkl;gawgor;iqeg;iJLkqen. wl;R aw;oeiga 4648664 arjarwgj;llj;ja fadgfgajkljl; wlj;sdjk;lfas
- Allez maintenant dans folder/hidden/deep/in/the/file/system/surprise!.file et copiez le contenu du fichier. S’il n’est pas là, il est peut-être dans library/library/library/llibrary/liiiiiibrarrrary/llllliiiiibrary/hidden/hidden/hiding/you can’t find me/hidden/nope/never/hahahahereiam.file
- Revenez dans le terminal, collez le contenu du fichier, puis tapez 64A786AGR45JAR; rdja;jg [[]][[]][[]][[]]][()()()()()()()(){{}{}{}|{}{|}{}{|}{ ////////////////!! !!!! !! //// !!! agjlkargji;lwej;OI [ASRGASG[]ASGDASG[]EAEadgasg[]EAGE[edaga][]ahgr-0-0=-0-=0-=0=0-0=-0-=0=-0-=0=-0=-0!!!
- Boop![5]
- Ouvrez Snarfus et téléversez le fichier que vous venez de créer
- Juste pour le fun, si vous voulez aussi désactiver le sham du chronostatiomatrix —()()(]]asdg a=-do —cd go cd stay —sususudododo baby shark—][] peut être exécuté. C’est optionnel
- C’est fini !
Dites-moi comment ça se passe. Je me demande aussi si quelqu’un utilise cette méthode avec GewGawGamma ou ometer2.7. »
Explication des notes
- Ça a l’air d’être une entreprise connue, mais moi je ne la connais pas
- Ce n’est absolument pas simple
- Je n’ai aucune idée de ce que ça veut dire
- C’est cool, mais je n’ai toujours rien compris. Cela dit, tant mieux si vous, vous y arrivez
- Les trois premières étapes demanderont probablement environ 7 heures et 193 recherches. Mais une fois arrivé à Boop!, c’est extrêmement grisant
Conclusion
- « Ce texte a été écrit juste pour le plaisir. Merci sincèrement à toutes celles et tous ceux qui partagent leurs connaissances et prennent le temps de rédiger des tutoriels. »
1 commentaires
Commentaire Hacker News
Je recommande vivement de faire suivre la documentation à quelqu’un qui n’a qu’un minimum de connaissances, puis de rester à côté en observant sans rien dire. Il ne faut pas aider du tout, seulement observer. Cela permet d’identifier toutes sortes de problèmes : les endroits où l’utilisateur bloque, les points que l’auteur connaît tellement bien qu’il n’y pense plus, ou encore des réglages omis. Si l’utilisateur atteint l’objectif sans stress particulier, la documentation est validée. Sinon, il faut noter sans rien oublier chaque point de blocage, améliorer chacun d’eux, puis refaire le test avec une autre personne. J’ai vu des documentations de grandes entreprises comme celles des FAANG qui ne passeraient pas ce critère. Je suis vraiment reconnaissant que notre organisation ait fixé un niveau d’exigence élevé. Rédiger la documentation de cette façon réduit les réunions répétitives, les demandes de support et les appels vidéo, et permet aux utilisateurs de résoudre eux-mêmes leurs problèmes
Le titre du billet de blog était « Moi, non-développeur, lis le tutoriel que vous, développeur, avez écrit », mais le titre sur HN a été changé en « Moi, développeur débutant... ». Un non-développeur et un développeur débutant, ce n’est pas du tout la même chose. Par exemple, pour les RH ou quelqu’un totalement hors du domaine, même le vocabulaire interne ou les concepts de base peuvent être entièrement inconnus. Dans ce cas, si un développeur écrit des explications complètement déconnectées, il mérite d’être critiqué. En revanche, un développeur débutant, même s’il trouve cela difficile, peut chercher lui-même les nouveaux termes ou concepts, puis plus tard mettre à jour la documentation pour les prochains débutants
La plupart des tutoriels ne sont pas vraiment destinés aux non-développeurs, mais ressemblent plutôt à un échange d’informations entre développeurs pairs, un peu comme des articles académiques destinés à un groupe disposant déjà d’un certain bagage. Et cette approche n’est pas mauvaise en soi. Elle me permet même de retrouver facilement des notes que j’avais prises autrefois. C’est aussi pour cela qu’il existe des cours et des manuels destinés aux débutants. Si un tutoriel devait à chaque fois commencer par 30 000 caractères de contexte général, personne n’irait au bout. À l’inverse, même avec davantage de contexte, quelqu’un pourra toujours trouver que ce n’est pas encore suffisant
Beaucoup de technical writers n’ont pas vraiment conscience de la « malédiction du savoir ». J’ai autrefois dirigé une guilde sur WoW (World of Warcraft). Quarante personnes entraient ensemble dans un donjon et devaient coopérer contre plusieurs boss, où la moindre petite erreur pouvait provoquer un wipe général. Nous nous retrouvions donc tous sur Teamspeak pour expliquer la stratégie en détail à l’avance. La plus grande leçon que j’en ai tirée, c’est : « pars du principe que l’autre ne sait pas de quoi tu parles » et « répète même ce que tu as déjà dit une fois ». La plupart des gens n’interrompent pas pour poser des questions quand ils ne savent pas, donc prendre l’habitude de se demander en permanence « quel terme suis-je en train d’utiliser ? » ou « cette personne ne connaît peut-être pas ce concept » et d’ajouter une explication a eu un effet énorme. Cette expérience de communication s’applique telle quelle à la communication technique, et si l’on s’entraîne à dépasser la « malédiction du savoir », on améliore vraiment la compréhension des autres
Beaucoup de pages d’accueil de projets ou de README GitHub sont rédigés comme si « la personne qui lit sait déjà tout ». Quand je consulte une documentation, j’aimerais qu’elle apporte davantage d’attention à des points comme : pourquoi cet outil est nécessaire, quel problème il résout, en quoi il diffère d’autres outils similaires, s’il est encore réellement utilisé aujourd’hui, et si elle donne assez d’éléments pour permettre au lecteur de juger lui-même des avantages et des inconvénients. Il suffit parfois de consacrer cinq minutes à se demander « même un grand débutant, qu’est-ce qu’il voudra savoir ? » et de l’écrire pour rendre la documentation bien plus accessible. Même quand un projet a demandé des années de travail, il est vraiment dommage que les utilisateurs abandonnent sans même que l’auteur s’en rende compte, juste parce que cela leur a paru trop pénible. Et il est aussi important de bien comprendre le rôle de chaque type de documentation. https://diataxis.fr/ est un très bon point de départ
Le plus important, quand on rédige une documentation, est de définir clairement le niveau de connaissance du lectorat visé. Peu importe qu’on place la ligne de base haut ou bas ; si l’on s’en écarte trop, une partie des lecteurs sera forcément mécontente. Dans ce genre de situation, on peut choisir l’excuse ou chercher une solution. En réalité, aujourd’hui, avec l’IA, Google, les livres, etc., on peut trouver immédiatement presque n’importe quoi. Si l’on se demande ce qu’est « Shoobababoo » ou pourquoi on utilise « quagmire », il suffit de chercher. Bien sûr, dans l’idéal, une documentation devrait être aussi autonome que possible et dépendre le moins possible d’informations externes, mais le monde ne fournit pas toujours ce niveau de bienveillance
Le principe que j’ai longtemps mis en avant dans le mentorat, c’est : « le mieux, c’est de partager ce que l’on sait ». Si vous savez quelque chose, expliquez-le. Si la personne le savait déjà, vous lui aurez simplement apporté de la confirmation ; si elle ne le savait pas, cela lui aura été très utile. Il y a parfois des plaintes disant que c’est trop verbeux, mais quand je réponds « c’était au cas où un junior, un client ou un manager tomberait dessus », la plupart des gens comprennent. Ce principe vaut dans tous les domaines : développement, reporting, gestion des personnes, etc.
Récemment, en essayant de déployer une application depuis Gitlab vers DigitalOcean Kubernetes, j’ai dû mettre en œuvre trois ou quatre outils tiers sans aucune explication sur leur rôle, et il fallait aussi deviner soi-même quels noms ou chemins saisir en ligne de commande. Aucune explication sur ce qui servait de référence ni sur ce qu’il fallait faire correspondre. Pourtant, j’ai un assez bon niveau sur Docker, mais la documentation de ces outils était à ce point peu accueillante qu’elle aurait presque mieux fait de ne pas exister
La raison principale pour laquelle j’ai arrêté d’écrire des livres pour créer un site de tutoriels, c’est que les tutoriels peuvent devenir bien plus accessibles grâce à divers outils interactifs (
<abbr>et autres). Malgré cela, je trouve frustrant que le contenu web d’aujourd’hui reste encore au niveau fonctionnel du livre papier. On dispose pourtant de clics, de survol, de sections repliables, de vidéo, de retour utilisateur et d’innombrables possibilités, mais on voit toujours surtout d’interminables murs de texte. Même l’OP, par exemple, utilise des notes de bas de page qui font défiler jusqu’en bas de page quand on clique dessus ; cela donne l’impression de ne pas exploiter pleinement le potentiel du webEn réalité, la plupart des tutoriels ne sont adaptés ni aux non-développeurs ni aux développeurs : ce sont surtout de longs textes inutiles qui finissent quand même par omettre une ou deux étapes cruciales. À mon avis, la cause principale est que rédiger comme si l’on expliquait quelque chose à quelqu’un d’autre est difficile. Si l’on n’explicite pas par écrit ce que l’on ne connaissait jusque-là que dans sa propre tête, le lecteur ne pourra jamais le deviner. Au lieu d’écrire un « tutoriel », il vaudrait mieux adopter une forme de « cookbook », plus pratique à l’usage réel et moins susceptible de devenir inutile après une montée de version