Slide 1

Slide 1 text

Eric Holscher PDX Node Nov ‘13 Documentation Journey

Slide 2

Slide 2 text

What This Talk Is • High level overview of how to think about documentation • Why documentation matters • Overview of my thoughts on doing docs well • Discussion around Node community documentation

Slide 3

Slide 3 text

What this talk isn’t • Telling you how to write docs • User/Product documentation

Slide 4

Slide 4 text

Disclaimer • I don’t know a lot about Node

Slide 5

Slide 5 text

Who am I • Maintainer of Read the Docs • Co-Organizer of Write the Docs

Slide 6

Slide 6 text

Why Write Docs

Slide 7

Slide 7 text

You will be using your code in 6 months

Slide 8

Slide 8 text

You want people to use your code

Slide 9

Slide 9 text

You want people to help out

Slide 10

Slide 10 text

It makes your code better

Slide 11

Slide 11 text

You want a (better) community

Slide 12

Slide 12 text

You want to be a better writer

Slide 13

Slide 13 text

Documentation as Empathy

Slide 14

Slide 14 text

outreach • We want more people to code • How do I become a programmer? • Having good documentation allows people to learn how to program

Slide 15

Slide 15 text

Internationalization • Documentation is much more accessible for non-native speakers • Text is most easily translated into other languages

Slide 16

Slide 16 text

Other Audiences • Each tool is unique • People want to use your code, so make it easy for them, whoever they are.

Slide 17

Slide 17 text

Good Documentation

Slide 18

Slide 18 text

Types of Documentation • Tutorials • Overviews and Topical Guides • Reference Material

Slide 19

Slide 19 text

Tutorials • Be quick • Be easy (but not too easy) • Give a “feel” for your project

Slide 20

Slide 20 text

Tutorials • Great for people who are new to your project • Should aim to delight or scare

Slide 21

Slide 21 text

Topical Guides • High level concepts • Vertical component • Comprehensive

Slide 22

Slide 22 text

Topical Guides • Great for people who don’t know your project space well • Give you the “why” • The “meat” of your docs

Slide 23

Slide 23 text

Reference • Provide lists of classes and modules • Organize by hand, generate to keep up to date

Slide 24

Slide 24 text

Reference • Great for users who already use your so ware • Give you the “how”

Slide 25

Slide 25 text

Official • Good documentation comes from the project • Must be constantly updated with code changes • Put process in place

Slide 26

Slide 26 text

If you only have reference docs, your docs are broken

Slide 27

Slide 27 text

Current Tools

Slide 28

Slide 28 text

README’s • Great for small projects • Provide a very specific thing • Basically a “getting started” doc

Slide 29

Slide 29 text

Blog Posts • Quickly goes out of date • Stack Overflow solves this problem better • Good for Topical Guides

Slide 30

Slide 30 text

Wiki’s • No ownership • Lower quality based on “someone will fix it later”

Slide 31

Slide 31 text

Books • Free projects should have free documentation • Books are effectively always out of date

Slide 32

Slide 32 text

Reference • Generally provided by automated tools • http://jsdoc.info/

Slide 33

Slide 33 text

State of the Art • Folder Full of Markdown • Served on GitHub • “Website”

Slide 34

Slide 34 text

Missing bits

Slide 35

Slide 35 text

Missing Bits • Overview of ecosystem/project • Central Repository for Prose Documentation • Standard Tools

Slide 36

Slide 36 text

Standard Tooling • Need a common format • Where you go a er a folder full of markdown • Not “build a custom website”

Slide 37

Slide 37 text

Documentation Focused • Not a website builder • Needs primitives specific to documentation

Slide 38

Slide 38 text

Tooling Benefits • Search • Discovery • Design • Interoperability • Platform (API)

Slide 39

Slide 39 text

Easy and Obvious • New users need an easy way to get started • There needs to be an obvious path towards a good solution

Slide 40

Slide 40 text

Path Forward

Slide 41

Slide 41 text

Community • Docs are a community problem • You need to expect them and complain if they don’t exist

Slide 42

Slide 42 text

Young • You can help shape what the world looks like • Derived projects will follow your lead

Slide 43

Slide 43 text

Conclusion • Good documentation is hard work • Documentation acts as outreach • Work to improve tools, to make writing documentation easier

Slide 44

Slide 44 text

Reference Links • jacobian.org/writing/great- documentation/ • docs.writethedocs.org/en/latest/ writing/beginners-guide-to-docs/

Slide 45

Slide 45 text

Thanks • @ericholscher • eric@ericholscher.com • Questions?