writing great documentation - codeconf 2011

61
Writing Great Documentation jacob@jacobian.org

Upload: jacob-kaplan-moss

Post on 15-Jan-2015

6.237 views

Category:

Technology


2 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Writing great documentation - CodeConf 2011

Writing Great Documentation

[email protected]

Page 2: Writing great documentation - CodeConf 2011
Page 3: Writing great documentation - CodeConf 2011

66,000 lines of Python75,000 lines of English

Page 4: Writing great documentation - CodeConf 2011

In Search of Lost Time 1,500,000

Infinite Jest 484,000

Django 360,000

New Testament 180,000

Your first manuscript 60,000

Page 5: Writing great documentation - CodeConf 2011

“The documentation and community are second to none.”

“[W]e’ve found that people …can get up-to-speed relatively quickly thanks to the excellent documentation…”

“Django … provides an excellent developer experience, with great documentation and tutorials…”

“Our initial choice … was based on the strength of the Django community and documentation…”

“Productive development, good documentation, flexibility, and it just works.”

http://j.mp/hnOsVl

Page 6: Writing great documentation - CodeConf 2011

My goal:Documentation

Culture.

Page 7: Writing great documentation - CodeConf 2011

Why do people read documentation?

Who should write documentation?

What should we document?

Which tools should we use?

Page 8: Writing great documentation - CodeConf 2011

Why do people read documentation?

Who should write documentation?

What should we document?

Which tools should we use?

Page 9: Writing great documentation - CodeConf 2011
Page 10: Writing great documentation - CodeConf 2011

First contact - new users.

Page 11: Writing great documentation - CodeConf 2011

First contact - new users.

Education - new & existing users.

Page 12: Writing great documentation - CodeConf 2011

First contact - new users.

Education - new & existing users.

Support - experienced users.

Page 13: Writing great documentation - CodeConf 2011

First contact - new users.

Education - new & existing users.

Support - experienced users.

Troubleshooting - annoyed users.

Page 14: Writing great documentation - CodeConf 2011

First contact - new users.

Education - new & existing users.

Support - experienced users.

Troubleshooting - annoyed users.

Internals - your fellow developers.

Page 15: Writing great documentation - CodeConf 2011

First contact - new users.

Education - new & existing users.

Support - experienced users.

Troubleshooting - annoyed users.

Internals - your fellow developers.

Reference - everyone.

Page 16: Writing great documentation - CodeConf 2011

Documentation is Communication.

Page 17: Writing great documentation - CodeConf 2011

☆Great documentation has to serve multiple, conflicting masters.

Page 18: Writing great documentation - CodeConf 2011

Why do people read documentation?

Who should write documentation?

What should we document?

Which tools should we use?

Page 19: Writing great documentation - CodeConf 2011

Anyone!

Page 20: Writing great documentation - CodeConf 2011

Anyone!

But...

Page 21: Writing great documentation - CodeConf 2011

“A great way for new contributors to get started with our project is to contribute documentation.”

Page 22: Writing great documentation - CodeConf 2011

1. Use a wiki.

2. ...?

3. Great documentation!

Page 23: Writing great documentation - CodeConf 2011

A wiki tells me that you don’t really care about your documentation.

So why should I care about your software?

Page 24: Writing great documentation - CodeConf 2011

☆Great documentationis written by

great developers.

Page 25: Writing great documentation - CodeConf 2011

“The code required to fix a problem… is an essential part of a patch, but it is not the only part. A good patch should also include a regression test to validate the behavior that has been fixed.”

Page 26: Writing great documentation - CodeConf 2011

“If the… patch adds a new feature, or modifies behavior of an existing feature, the patch should also contain documentation.”

Page 27: Writing great documentation - CodeConf 2011

DocumentationDrivenDevelopment?

Page 28: Writing great documentation - CodeConf 2011

Why do people read documentation?

Who should write documentation?

What should we document?

Which tools should we use?

Page 29: Writing great documentation - CodeConf 2011

Tutorials

Topic guides

Reference

Troubleshooting

Page 30: Writing great documentation - CodeConf 2011

Quick - a new user should experience success within 30 minutes.

Easy - help users feel epic win.

Not too easy - don’t sugar-coat the truth.

Show off how the project feels.

Tutorials

Page 31: Writing great documentation - CodeConf 2011

Topic guides

Conceptual - foster understanding, not parroting.

Comprehensive - explain in detail.

Tell me the why of the topic.

Page 32: Writing great documentation - CodeConf 2011

Complete. Docs or it doesn’t exist.

Designed for experienced users.

Give me the how of the topic.

Reference

Page 33: Writing great documentation - CodeConf 2011

Auto-generated reference documentation is almost worthless.

Page 34: Writing great documentation - CodeConf 2011

☆There’s no substitute for documentation

written, organized, and edited by people.

Page 35: Writing great documentation - CodeConf 2011

Troubleshooting

Answers to questions asked in anger.

FAQs are great as long as the Qs are really FA’d.

Page 36: Writing great documentation - CodeConf 2011

☆Great documentation is fractal

Page 37: Writing great documentation - CodeConf 2011

Tutorials

Topic guides

Reference

Troubleshooting

Page 38: Writing great documentation - CodeConf 2011

Project:

Tutorials, getting started.

Topic guides, How-to guides.

Reference material, APIs, indexes, search.

Troubleshooting guides, FAQs, KBs.

Page 39: Writing great documentation - CodeConf 2011

Document:

Introduction.

Overview guide.

Details, cross-references, next steps.

Notes, warnings.

Page 40: Writing great documentation - CodeConf 2011

Section:

Overview.

Tasks & examples.

Detailed descriptions.

Common pitfalls, warnings.

Page 41: Writing great documentation - CodeConf 2011

Element:

Examples.

Detailed instructions.

API documentation.

“If it didn’t work….”

Page 42: Writing great documentation - CodeConf 2011

☆Documentation is fractal

Tutorials Topic guides Reference Trouble-

shooting

ProjectTutorials,Getting started

Guides,How-tos

APIs,indexes,search

FAQs,KB

Document Introductory material

How-to guides

See also,next steps

Notes, warnings

Section Overview Tasks, examples

Cross-ref - other topics

Common pitfalls

Element Examples Detailed instructions

Cross-ref - API docs

“If it didn’t work…”

Inspiration: Jeff Osier-Mixon, Effectively Managing Documentation for Open Source Projects. http://bit.ly/g0PLFB

Page 43: Writing great documentation - CodeConf 2011

Why do people read documentation?

Who should write documentation?

What should we document?

Which tools should we use?

Page 44: Writing great documentation - CodeConf 2011

☆Tools don’t matter.

Page 45: Writing great documentation - CodeConf 2011

☆Tools don’t matter.

(For the most part.)

Page 46: Writing great documentation - CodeConf 2011

Text is best.

Aesthetics are important.

Discoverability is vital.

Page 47: Writing great documentation - CodeConf 2011

http://sphinx.pocoo.org/

Page 48: Writing great documentation - CodeConf 2011
Page 49: Writing great documentation - CodeConf 2011
Page 50: Writing great documentation - CodeConf 2011
Page 51: Writing great documentation - CodeConf 2011

Read the DocsRead the DocsCreate, host, and browse documentation.Create, host, and browse documentation.

Sign upSign up

or Log inLog in

Let's do this.Let's do this.

What is this place?What is this place?

Read the Docs hosts documentation, making it fully searchable and easy to find. You can import your docsusing any major version control system, including Mercurial, Git, Subversion, and Bazaar. It also supportswebhooks so your docs get built when you commit code. There's also support for versioning so you can builddocs from tagged versions of your code in your repository. You can even create docs on the site. It's free andsimple. Read Getting Started and find out how to host your docs on Read the Docs!

Find a projectFind a project

Featured ProjectsFeatured Projects

Celery (asksol) View Docs

Read the Docshttp://readthedocs.org/

Page 52: Writing great documentation - CodeConf 2011

DoccoPyccoRocco

Shocco

Page 53: Writing great documentation - CodeConf 2011
Page 54: Writing great documentation - CodeConf 2011
Page 55: Writing great documentation - CodeConf 2011

Why do people read documentation?

Who should write documentation?

What should we document?

Which tools should we use?

Page 56: Writing great documentation - CodeConf 2011

Who should write documentation?

What should we document?

Which tools should we use?

Everyone reads documentation.

Page 57: Writing great documentation - CodeConf 2011

What should we document?

Which tools should we use?

Everyone reads documentation.

Developers write great documentation.

Page 58: Writing great documentation - CodeConf 2011

Which tools should we use?

Everyone reads documentation.

Developers write great documentation.

Great documentation is fractal.

Page 59: Writing great documentation - CodeConf 2011

Everyone reads documentation.

Developers write great documentation.

Great documentation is fractal.

Tools don’t matter. But use good ones!

Page 60: Writing great documentation - CodeConf 2011

My goal:Documentation

Culture.

Page 61: Writing great documentation - CodeConf 2011

Go.Write.

[email protected]