Cómo yo, una desarrolladora principiante, leo el tutorial que tú (desarrollador) escribiste para mí
(anniemueller.com)- Un texto que retrata con humor la confusión y las barreras que enfrenta una principiante al leer tutoriales técnicos escritos por desarrolladores
- Los términos especializados y abreviaturas que los desarrolladores usan con frecuencia suenan para una principiante como un “idioma alienígena” completamente fuera de contexto
- Los pasos de instalación, rutas de archivos y comandos de terminal suelen ser demasiado complejos o estar omitidos, lo que dificulta entenderlos
- La autora señala que explicaciones que parecen obvias desde la perspectiva de un desarrollador se convierten, para una principiante, en obstáculos que requieren horas de búsqueda y prueba y error
- Este texto les recuerda a quienes escriben tutoriales que deben explicar de forma más amable y clara desde la perspectiva de quien recién empieza
Contexto del texto y planteamiento del problema
- La autora describe su experiencia, como principiante y no desarrolladora, al leer tutoriales escritos por desarrolladores
- Satiriza la situación en la que los términos técnicos y nombres de herramientas que aparecen en un tutorial no le dicen absolutamente nada a una persona principiante
- Ejemplo: usa nombres técnicos ficticios como Hoobijag, Snarfus y Shamrock portal para enfatizar que, desde los ojos de una principiante, todo se ve complicado
Traducción del texto original
“¡Hola! Soy desarrolladora. Mi experiencia relevante es esta: programo con Hoobijag y a veces también uso jabbernocks, y por supuesto hago ABCDE++++ (pero nunca ABCDE+/^+, eso sería absurdo, ¿no? ¡jaja!) y me gusta trabajar con Shoobababoo y de vez en cuando también lidio con kleptomitrons. Terminé haciendo código relacionado con Shoobaboo en Company[1], y eso me llevó a Snarfus. ¡Bueno, empecemos!
Sobre este tutorial
Empecé haciendo una cosa muy simple[2] con Snarfus por primera vez, pero mientras más lo usaba, más le veía el potencial. chromus está algo enredado, pero en realidad es muy versátil. Así que empecé a argylar pintafore con quagmire en lugar de hoobastank. Lo sé, una locura. Pero en cierto modo funcionó y, de hecho, fue bastante divertido… hasta que me topé con una gran barrera: ¡fisterfunk no se comunicaba para nada con shamrock portal, ni tampoco enviaba beep-boops a Snarfus! Claro, ya sabes lo que eso significa[3]: ahora todo el hoob-túnel quedó bloqueado por gramelions. Inaceptable.
Estuve a punto de rendirme, pero entonces me di cuenta: si conectas el backside Snarfus stagnator al backside shamrock Klingon troglodyte emulater, ¡todo bien! Todo empezó a hacer beep-boops y ding-dongs, y por fin llegué al tema real del tutorial. ¡Y ya pude hacer esa cosa muy simple de la manera en que quería! Bastante genial[4].
Así es como se configura:
- En la terminal, escribe ajkl;gawgor;iqeg;iJLkqen. wl;R aw;oeiga 4648664 arjarwgj;llj;ja fadgfgajkljl; wlj;sdjk;lfas
- Ahora ve a folder/hidden/deep/in/the/file/system/surprise!.file y copia el contenido del archivo. Si no está ahí, podría estar en library/library/library/llibrary/liiiiiibrarrrary/llllliiiiibrary/hidden/hidden/hiding/you can’t find me/hidden/nope/never/hahahahereiam.file
- Regresa a la terminal, pega el contenido del archivo y escribe 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]
- Abre Snarfus y sube el archivo que acabas de crear
- Solo por diversión, si quieres deshamear la chronostatiomatrix, también puedes ejecutar —()()(]]asdg a=-do —cd go cd stay —sususudododo baby shark—][]. Es opcional
- ¡Listo!
Cuéntame cómo te va. También me da curiosidad si alguien usa este método con GewGawGamma o con ometer2.7.”
Explicación de las notas al pie
- Parece ser una empresa famosa, pero yo no la conozco
- No era nada simple
- No sé qué significa
- Sí, suena genial, pero no entendí nada. Aun así, me alegra que tú sí puedas hacerlo
- Los primeros 3 pasos probablemente requerirán unas 7 horas y 193 búsquedas. Pero cuando llegas a ¡Boop!, se siente increíble
Cierre
- “Esto fue escrito solo por diversión. Mi agradecimiento más sincero a todas las personas que comparten conocimiento y escriben tutoriales.”
1 comentarios
Comentarios de Hacker News
Recomiendo mucho el enfoque de poner a alguien con conocimientos mínimos a seguir la documentación y observarlo en silencio al lado. En ese momento no hay que ayudar en absoluto, solo observar. En ese proceso puedes descubrir muchos problemas: en qué parte se atasca el usuario, cosas que el autor da por obvias por estar demasiado familiarizado, configuraciones faltantes, etc. Si el usuario logra el objetivo sin demasiado estrés, la documentación aprobó. Si no, hay que registrar sin omitir nada cada punto donde falló, mejorar cada uno y volver a probar con una persona nueva. He usado documentación de grandes empresas como FAANG que no pasa esta prueba. Agradezco mucho que nuestra organización tenga estándares altos. Cuando se crea documentación así, se reducen las reuniones repetitivas, las solicitudes de soporte y las videollamadas, y además los usuarios pueden resolver problemas por su cuenta
El título del post del blog era "Yo, que no soy desarrollador, leo el tutorial que tú, desarrollador, escribiste", pero en HN lo cambiaron a "Yo, desarrollador principiante...". Una persona no desarrolladora y una desarrolladora principiante no son lo mismo. Por ejemplo, para alguien de RR. HH. o completamente ajeno al área, incluso la jerga interna o los conceptos pueden ser totalmente desconocidos. En ese caso, si un desarrollador escribió una explicación completamente desconectada, merece la crítica. En cambio, una persona desarrolladora principiante, aunque le cueste, puede investigar por su cuenta términos o conceptos nuevos y, con el tiempo, hasta actualizar la documentación para quienes lleguen después
cd ~/.snarfus(si la carpeta no existe, créala). A mí también, cuando instalé Debian hace años, una pequeña aclaración me ayudó muchísimoLa mayoría de los tutoriales no están hechos para personas no desarrolladoras, sino que se parecen más a un intercambio de información entre colegas desarrolladores, una posición similar a la de artículos académicos dirigidos a una comunidad específica de conocimiento. Y eso tampoco está mal. De hecho, hasta mis propias notas antiguas me resulta útil volver a consultarlas. Por eso existen cursos y materiales aparte para principiantes. Si cada tutorial tuviera que empezar siempre con 30 mil caracteres de contexto y explicación básica, nadie lo terminaría de leer. Y al mismo tiempo, incluso si agregas más contexto, a alguien igual le puede seguir pareciendo insuficiente
Muchos technical writers no son realmente conscientes de la "maldición del conocimiento". Antes tuve la experiencia de dirigir un guild de WoW (World of Warcraft). Cuarenta personas se reunían al mismo tiempo para entrar a una mazmorra y cooperar contra varios jefes, y un error mínimo podía matar a todo el grupo. Por eso todos se reunían en Teamspeak y explicábamos suficientemente la estrategia de antemano. La lección más grande de eso fue: "asume que la otra persona no sabe de qué estás hablando" y "repite incluso lo que ya dijiste una vez". La mayoría no interrumpe para hacer preguntas aunque no entienda, así que desarrollar el hábito de preguntarte constantemente "¿qué término estoy usando?" y "¿es posible que no conozcan este concepto?" mientras agregas explicaciones tuvo un efecto enorme. Ese tipo de experiencia de comunicación se aplica tal cual a la comunicación técnica, y si incorporas el esfuerzo de superar la "maldición del conocimiento", puedes mejorar mucho la comprensión de los demás
Muchas páginas principales de proyectos o README de GitHub están escritos con una actitud de "quien lee esto ya lo sabe todo". Cuando reviso documentación, me gustaría que tuviera más cuidado en explicar "por qué se necesita esta herramienta", "qué problema resuelve", "en qué se diferencia de otras herramientas parecidas", "si todavía se usa activamente" y si da suficientes elementos para que una persona pueda juzgar por sí misma las ventajas y desventajas. Con invertir solo cinco minutos en pensar "aunque sea principiante, ¿qué querría saber?" y escribir eso, la accesibilidad mejora muchísimo. Incluso si es un proyecto construido durante años, da mucha pena que se repita la situación de que el usuario se rinda por fastidio sin que el creador siquiera note que lo encontró. Y también es importante entender bien el rol de cada tipo de documentación. https://diataxis.fr/ es un muy buen punto de partida
Lo más importante al escribir documentación es definir con claridad el nivel de conocimiento del público objetivo. No importa si fijas la línea base alta o baja, pero si te desvías demasiado de esa base, necesariamente habrá lectores inconformes. En esa situación puedes elegir excusarte o buscar una solución. La verdad es que hoy en día, con IA, Google, libros y demás, prácticamente cualquier cosa se puede buscar al instante. Si te preguntas "qué es Shoobababoo" o "por qué usar quagmire", puedes buscarlo. Claro que lo ideal es que la documentación sea lo más autosuficiente posible y no dependa de información externa, pero el mundo no siempre ofrece ese nivel de amabilidad
Un principio que he enfatizado durante mucho tiempo al hacer mentoría es que "lo mejor es compartir lo que sabes". Si sabes algo, explícalo. Si se lo dices a alguien que ya lo sabía, solo le diste más seguridad; si no lo sabía, le ayudaste mucho. A veces hay quejas de que uno es demasiado verboso, pero cuando respondo "esto era por si acaso lo ve una persona nueva, un cliente o un manager", por lo general lo entienden. Este principio aplica en desarrollo, reportes, gestión de personas y en todas las áreas
Hace poco intenté desplegar una app en DigitalOcean Kubernetes desde Gitlab, y tuve que implementar 3 o 4 herramientas de terceros sin ninguna explicación de qué hacían, además de tener que averiguar por mi cuenta qué nombres o rutas poner en la línea de comandos. No explicaban cuál era el criterio ni qué debía hacer coincidir. Aunque tengo bastante experiencia con Docker, la documentación de esas herramientas era tan poco amable que casi habría sido mejor que no existiera
La razón principal por la que dejé de escribir libros y creé un sitio web de tutoriales fue que así podía hacer los tutoriales más accesibles con ayuda de distintas herramientas interactivas (como elementos
<abbr>). Aun así, me frustra que el contenido web actual siga estancado en la funcionalidad del libro en papel. Existen clics, hover, secciones plegables, video, respuestas del usuario y muchas otras capacidades, pero seguimos inundados de muros de texto larguísimos. Incluso el propio OP usa un sistema donde al hacer clic en una nota al pie te manda a hacer scroll hasta el fondo de la página, y eso me da la sensación de que no está aprovechando bien el potencial de la webEn realidad, la mayoría de los tutoriales terminan siendo "texto largo innecesario" que no es ni para no desarrolladores ni para desarrolladores, y aun así se saltan uno o dos pasos importantes. Creo que la causa principal es que escribir como si realmente se lo explicaras a otra persona es difícil. Si no sacas por escrito lo que solo estaba en tu cabeza, el lector nunca va a poder saberlo. En lugar de pensar en "tutoriales", habría que escribir más al estilo de un "cookbook", para que sirvan en la práctica y no queden inútiles después de una actualización de versión