Skip to content

[Docs Rewrite] Discussion: Docs writing guidelines and issue templates #3609

Open
@markerikson

Description

@markerikson

As a preface to actually fleshing out the docs writing tasks, I've been doing research on how to actually write good documentation. I wanted to write down some notes on what I've learned, and discuss how we can help make sure that the new docs content tries to conform to those approaches.

Docs Writing Resources

I specifically recommend that people should read through What Nobody Tells You About Documentation. It's a great post that gives excellent advice about the main categories of tech docs, and the type of content that should go in each category. The HN discussion thread on this post may be useful as well.

Additional resources worth reading:

Goals

I'd like us to have some kind of consistent set of questions that we would try to answer / use as guidelines when we work on a doc section, along the lines of:

  • What content category is this page? (tutorial, how-to, explanation, reference)
  • Who is the intended target audience?
  • What knowledge are we assuming they should have?
  • What are the intended results or takeaways from reading this page?
  • What is the most critical info they should learn?

I'd actually like to somewhat codify this in the form of an issue / PR template specifically for new and updated docs content. (It might also be nice to have templates for small docs updates like typos and such.)

Questions for Discussion

  • Any other good docs writing resources we should be learning from?
  • Similarly, what other good docs sites can we learn from (like Vue and NgRx)? What takeaways and examples from those?
  • Are those guidelines sufficient? What other things should be included?

Tasks

  • Finalize docs writing guidelines
  • Create new issue and PR templates for new docs content and small docs tweaks

Notes and Takeaways

Some summaries and key points from those posts:

  • What nobody tells you about documentation - Blog - Divio
    • Four categories: tutorials, how-to guides, explanation, tech reference
    • Summaries:
      • Tutorials:
        • Learning-oriented
        • Allows the newcomer to get started
        • Is a lesson
      • How-to guides
        • Goal-oriented
        • Shows how to solve a specific problem
        • Is a series of steps
      • Explanation
        • Is understanding-oriented
        • Explains
        • Provides background and context
      • Reference guide
        • Information-oriented
        • Describes the machinery
        • Is accurate and complete
    • Details:
      • Tutorials:
        • Need to be meaningful, achievable, useful to a beginner, easy to follow
        • Learn by doing
        • Get the user started, even if it's not the "correct" way
        • Make sure it works
        • Ensure they see results immediately
        • Tutorial must be repeatable
        • Focus on concrete steps, not abstract concepts
        • Provide minimum necessary explanation, and focus on only steps they need now
      • How-to guides:
        • Recipes to achieve a specific end
        • Answer questions that a beginner might not formulate
        • Can assume some understanding of the basics
        • Provide a series of steps
        • Focus on results
        • Solve a specific problem
        • Don't explain concepts
        • Give some flexibility / ways to adapt
        • Leave things out - keep it practical, not complete
        • Name it well
      • Reference guides:
        • Only describe
        • Code / information oriented
        • Austere and to the point
        • Structure around the code
        • Be consistent and accurate
      • Explanation:
        • Clarify and broaden coverage of a topic
        • Provide background and context ("how X works with Y", "why a design decision", etc)
        • Discuss alternatives and opinions
        • Don't give instruction or technical reference
  • Writing Good Documentation for Your Open-Source Library - Blog Brainhub.eu
    • Sections: README, Reference, Guide Cookbook, Blog post
    • README:
      • Brief sales pitch
      • What problem does your lib solve and how does it help the user?
    • Guide:
      • Helps users navigate through features
      • Start a guide page by outlining scope and establishing what prior knowledge the user should have
  • Writing Documentation When You Aren't a Technical Writer | Hacker News
    • Know your audience and write for them
      • What knowledge are they bringing in (so you don't have to cover it)?
      • What knowledge are you assuming they know?
      • Given that audience, what is the most critical information they should take away?
  • Writing Documentation When You Aren't A Technical Writer — Part Two | Stoplight API Corner
  • What to write | Jacob Kaplan-Moss
    • Tutorials
      • Be quick (new user should experience success in 30 minutes)
      • Demonstrate how the project "feels"
    • Topical guides
      • Should be comprehensive
      • Come away knowing the vast majority of possible options, and understand how concepts fit together
  • Writing great documentation - Taylor Singletary - Medium
    • Highlight key points (bold, italic, underline, font size)
    • Tell stories
    • Outline and tell stories with the headlines
    • Anticipate ways a question could be asked, and route variants to a canonical FAQ answer
    • Listen to devs. Figure out what's needed in docs based on common pitfalls or misunderstandings.
  • GitHub - jamiebuilds/documentation-handbook: How to write high-quality friendly documentation that people want to read.
    • Use shorter / easier words and avoid idioms
    • Link to other docs but only as reference. Inline explanations.
    • Reuse the same examples and keep expanding them.
  • Dan Abramov on Twitter: "Top two mistakes in documentation: • Assuming people know everything • Assuming people are stupid"

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions