THE ART OF
DOCUMENTATION AND
THE README.md
@Ben_Hall
Ben@BenHall.me.uk
O’Reilly Media
The Open Source Survey is an open data project
by GitHub and collaborators from
academia, industry, and the broader open source community
@Ben_Hall / Ben@BenHall.me.uk
Founder of Katacoda.com
Acquired by O’Reilly Media in November
2019
WHO
AM
I?
Learn via Interactive Browser-Based Labs
Agenda?
1. User’s journey with Open Source
Projects
2. Documentation required to support
Users
3. Examples/Inspiration of documentation
Documentation
Potential Users
Implementers
Contributors
Maintainers
Documentation
Potential Users
Implementers
Contributors
Maintainers
Documentation
Potential Users
Implementers
Contributors
Maintainers
Documentation
Potential Users
Implementers
Contributors
Maintainers
Documentation
Potential Users
Implementers
Contributors
Maintainers
Janet has joined a new team! New ideas, new concepts.
New open source projects
Potential New User
No-One Reads
No-One Writes
Everyone Wants Docs
https://www.nngroup.com/articles/f-shaped-pattern-reading-
web-content/
Reading Large Blocks
Of Text is difficult
Writing Large Blocks
Of Text is painful
Commitment pattern (rare)
Consists of fixating on almost everything on the
page.
Layer-cake pattern
Occurs when the eyes scan headings and
subheadings and skip the normal text below
Spotted pattern
Consists of skipping big chunks of text and scanning
as if looking for something specific, such as
a link, digits, a particular word.
"It deosn't mttaer in waht oredr the ltteers in a wrod
are, the olny iprmoetnt tihng is taht the frist and lsat
ltteer be at the rghit pclae. The rset can be a toatl
mses and you can sitll raed it wouthit porbelm. Tihs
is bcuseae the huamn mnid deos not raed ervey
lteter by istlef, but the wrod as a wlohe."
https://www.mnn.com/lifestyle/arts-culture/stories/why-your-
brain-can-read-jumbled-letters
https://www.quora.com/Why-do-I-see-words-that-arent-there-
when-I-am-reading
https://www.quora.com/Why-do-I-see-words-that-arent-there-
when-I-am-reading
Think of target audience
Remember Janet!
Does this project
solve my problem?
Will the project help
my career?
Readme.md will likely be the
first experience for many
users
“Download 10GB VM”
“Just deploy using
Cloud Formation”
Aim:
How can you showcase the
value without large
commitment from the user?
Short Videos / Gifs
Examples!
Empower people to feel
confident and build trust
Isn’t this fundamentally the aim of documentation?
Competitive Advantage
Help users get started
with examples!
Let them explore and experiment!
Be careful of
assuming
prior knowledge
https://beta.developer.spotify.com/documentation/web-playback-sdk/quick-start/#initializing-the-sdk
Not everyone’s first language is English
Inclusive Languages
“Just”, “Easy”, “Simple”, “Anyone can do it!”
“He”, “Him”
😡
https://alexjs.com/
Catch insensitive, inconsiderate writing
$ alex example.md
example.md
1:5-1:14 warning `boogeyman` may be insensitive, use `boogey` instead boogeyman-boogeywoman
1:42-1:48 warning `master` / `slaves` may be insensitive, use `primary` / `replica`
instead master-slave
2:52-2:54 warning `he` may be insensitive, use `they`, `it` instead he-she
2:61-2:68 warning `cripple` may be insensitive, use `person with a limp` instead cripple
⚠ 4 warnings
https://github.com/theashraf/alex-action
Janet loves your project! It solves their problems!
Active User!
Documentation
Requirements Change
1| SOLVE MY OTHER
PROBLEMS 🤔
2| OH NO! IT’S BROKEN 🔥
What else is possible?
Asking questions about implementation
How do I solve particular problems?
Very similar to exploration
when getting started.
Can assume prior knowledge
🙀🔥😿
Something has gone wrong!
What documentation do you need when everything is on fire?
Remember the
user’s emotions
at this point
StackOverflow?
Github Issues?
The best documentation is
the one you don’t have to
write
The 🔥 is out
Janet has new experiences
to share
Potential New Contributor 🙌
Community and
Contributor guidelines
Mozilla Wrangling Web Contributions:
How to Build a CONTRIBUTING.md
• Welcome
• Table of Contents:
• Short Links to Important
Resources:
• docs
• bugs
• comms
• Testing
• How to submit changes
• How to report a bug
• Templates
• First bugs for
Contributors
• How to request an
"enhancement"
• Style Guide / Coding
conventions
• Code of Conduct
• Recognition model
• Who is involved?
• Where can I ask for help?
Code of Conduct
License
Longer form content!
Design Docs, Reference API
Janet has made a impact
to the community.
Ready to become a
maintainer!
Potential New Maintainer 🙌
Real World Examples
What difference does it make?
This is where you
can have a huge
Impact on OSS!
WHAT IS THE ART OF
DOCUMENTATION??
3 key points
1| Developers Experiment 🐶
Your documentation should
support this mindset
2| Users get into trouble 🔥
Where might users become
struck?
3| Encourage Contributors 🙌
Everyone has a story to tell.
Thank you!
This was “The Art of Documentation”
@Ben_Hall
Ben@BenHall.me.uk
Thank you!
This was “The Art of Documentation”
@Ben_Hall
Ben@BenHall.me.uk
Simpsons s19e01

The Art Of Documentation - NDC Porto 2022

Editor's Notes

  • #112 Documentation should help users get out of trouble. Ideally, the product should.
  • #113 Docs are a great starting place for new contributors to a project.