SlideShare una empresa de Scribd logo
1 de 63
Descargar para leer sin conexión
THINGS I WISH PEOPLE TOLD
ME ABOUT WRITING DOCS
@taylor_atx
Community Engineer at Keen IO
taylor@keen.io
@taylor_atx
TAYLOR BARNETT
HOW DO PEOPLE
ACTUALLY READ DOCS?
@taylor_atx
@taylor_atx
https://www.nngroup.com/articles/f-shaped-pattern-reading-web-content
IMPLICATIONS OF F SHAPE
• First two paragraphs must state the most important
information
• Further, the first 3-5 words are very important
• Start headers, paragraphs, and bullet points with information-
carrying words
• Variations in typeface (text size, links, bold, etc)
@taylor_atx
STRUCTURE
• Prevent search failure - what the users wants doesn’t stand
out
• One idea per paragraph, if there’s more than one, split the
paragraphs
• Users skip over things that look like ads
• Aim for 65-90 characters in width
@taylor_atx
USABILITY VARIES: PARAGRAPH VS BULLETS
@taylor_atx
USABILITY VARIES: PARAGRAPH VS BULLETS
Event collections can have
almost any name, but there
are a few rules to follow: The
name must be 64 characters
or less. It must contain only
Ascii characters. It cannot be
a null value.

@taylor_atx
USABILITY VARIES: PARAGRAPH VS BULLETS
Event collections can have
almost any name, but there
are a few rules to follow: The
name must be 64 characters
or less. It must contain only
Ascii characters. It cannot be
a null value.

Event collections can have
almost any name, but there
are a few rules to follow:
• The name must be 64
characters or less.
• It must contain only Ascii
characters.
• It cannot be a null value.
@taylor_atx
USERS ACTUALLY READ
CODE SNIPPETS
@taylor_atx
var client = new Keen({
  projectId: "your_project_id",
  writeKey: "your_write_key"
});
var ticketPurchase = {
  price: 50.00,
  user: {
    id: "020939382",
    age: 28
  },
  artist: {
    id: "19039",
    name: "Tycho"
  }
}
client.addEvent("ticket_purchases", ticketPurchase);
WHAT IS THIS CODE SNIPPET MISSING?
🤔
@taylor_atx
var client = new Keen({
  projectId: "your_project_id",
  writeKey: "your_write_key"
});
var ticketPurchase = {
  price: 50.00,
  user: {
    id: "020939382",
    age: 28
  },
  artist: {
    id: "19039",
    name: "Tycho"
  }
}
client.addEvent("ticket_purchases", ticketPurchase);
WHAT IS THIS CODE SNIPPET MISSING?
• First, how do I even run this?
"
@taylor_atx
var client = new Keen({
  projectId: "your_project_id",
  writeKey: "your_write_key"
});
var ticketPurchase = {
  price: 50.00,
  user: {
    id: "020939382",
    age: 28
  },
  artist: {
    id: "19039",
    name: "Tycho"
  }
}
client.addEvent("ticket_purchases", ticketPurchase);
WHAT IS THIS CODE SNIPPET MISSING?
• First, how do I even run this?
• “ReferenceError: Keen is not defined”
"
@taylor_atx
var client = new Keen({
  projectId: "your_project_id",
  writeKey: "your_write_key"
});
var ticketPurchase = {
  price: 50.00,
  user: {
    id: "020939382",
    age: 28
  },
  artist: {
    id: "19039",
    name: "Tycho"
  }
}
client.addEvent("ticket_purchases", ticketPurchase);
WHAT IS THIS CODE SNIPPET MISSING?
• First, how do I even run this?
• “ReferenceError: Keen is not defined”
• Didn’t set the Project ID and Write Key
"
@taylor_atx
What will this return?
# Copy and paste the following command
$ gem install rails
PREVENT COPY AND PASTE BUGS
🤔
@taylor_atx
What will this return?
# Copy and paste the following command
$ gem install rails
PREVENT COPY AND PASTE BUGS
😔
# Returns “bash: command not found: $”
@taylor_atx
TWILIO
@taylor_atx
WHAT DO I MEAN BY “DOCS?”
API REFERENCES
GUIDES
TUTORIALS
BLOG POSTS*
@taylor_atx
GUIDES
• Somewhere between API references and tutorials
• Similar reference but with prose that explains how to use the
API
• Example: Authorization guide
@taylor_atx
TUTORIALS
• Teach specific things with an API, beginning to end, including
setup
• Tightly focused on a few pieces of functionality
• Includes working sample code
• Example: Getting Started or Hello World tutorial
@taylor_atx
SPRING FRAMEWORK
@taylor_atx
BLOG POSTS
• “Share Knowledge, Not Features” — Adam DuVander
• Features != Benefits
• A blog post should teach, inspire, and help
• Give a preview, then help navigate them to the full docs
@taylor_atx
@taylor_atx
DOCS NAVIGATION AND
UNIVERSAL PRINCIPLES OF
DESIGN
@taylor_atx
1. PROGRESSIVE
DISCLOSURE
@taylor_atx
1. NAVIGATE FROM DOC
SET TO DOC SET
@taylor_atx
DOCS PORTAL HOMEPAGE
PRODUCT HOMEPAGE
SECTION HOMEPAGE
PAGE
@taylor_atx
@taylor_atx
2. IMMERSION
@taylor_atx
2. ALLOW NAVIGATION
WITHIN CONTENT
@taylor_atx
BOTTOM-UP NAVIGATION
• If you tell me I can do something, link to how to do that
something.
• If you tell me I can use something, link to a description of
that something.
• If you mention a concept or an idea, link to a description of
that concept or idea.
— Mark Baker from “Every Page is Page One”
@taylor_atx
@taylor_atx
3. MODULARITY
@taylor_atx
3. REDUCE INFORMATION
FRAGMENTATION
@taylor_atx
@taylor_atx
😨
😨
@taylor_atx
LIBRARIES
SDKS
WRAPPERS
CLIENTS
@taylor_atx
WHY DO BAD NAMES PERSIST?
• Because we don’t realize that the name is bad
• Or we do, but can’t or won’t justify fixing it because we…
• Are tied to it
• Can’t justify the time
• Don’t know the value
• Don’t have the agency to fix it
@taylor_atx
EMPATHY FAILURE
BEGINNER’S MIND FAILURE
@taylor_atx
WORD CHOICE IS HARD
• Hard to give one framework to use, but you can…
• Talk to users, get feedback - ask someone to review it
• Refactor and rewrite
• Search existing names
@taylor_atx
@taylor_atx
ERROR MESSAGES
@taylor_atx
ERROR MESSAGES
ARE AN OPPORTUNITY
@taylor_atx
3 H’S OF GOOD ERROR MESSAGES:
HUMBLE
HUMAN
HELPFUL
@taylor_atx
HUMBLE
• Apologize even if it is not your fault
• Example:
• Sorry, we could not connect to ___. Please check your
network settings, connect to an available network, and try
again.
@taylor_atx
HUMAN
• Speak in human terms
• Example:
• Your API Key is invalid, please try a different key.
@taylor_atx
HELPFUL
• Share what the users can expect or do to fix the problem
• Example:
• Sorry, the image you tried to upload is too big. Try again
with an image smaller than 4000px tall by 4000px wide.
@taylor_atx
WRITING ERROR MESSAGES
1. Acknowledge
2. Apologize
3. Explain
4. Help
@taylor_atx
WRITING ERROR MESSAGES
• Object first, action second
• What the users wants first, how to get there second
• If you can, put the input in the error string
@taylor_atx
ERROR MESSAGE SEO
• If users get an error message often, put the exact text in your
docs
• You can also edit StackOverflow posts
@taylor_atx
HOW DO I GET OTHER
TEAMMATES TO CONTRIBUTE
TO DOCS?
@taylor_atx
“I DON’T HAVE THE TIME”
“DOCS ARE HARD TO MAINTAIN”
“JUST READ THE SOURCE”
“DOCUMENTATION IS USELESS”
— Fred Hebert from “Don't be a Jerk: Write Documentation”
@taylor_atx
MAKE SURE CONTRIBUTORS
ARE VALUED & REWARDED
@taylor_atx
SHOW THE BENEFITS
@taylor_atx
GITHUB FOR DOCS
• Continuous integration and automated testing
• Issues
• Incremental changes
@taylor_atx
REVIEWS
• “Pair” on reviews
• Use reviews to coach contributors
• For small suggestions, fix it yourself and share before
merging
• If a review sounds harsh, reach out and let them know you
aim to instruct and appreciate them
@taylor_atx
STYLE GUIDES
• Frees your contributors to focus on what’s more valuable,
instead of grammar, consistency, or other issues
• Examples:
• Google Developer Documentation Style Guide
• 18F Content Guide
@taylor_atx
Community Engineer at Keen IO
taylor@keen.io
@taylor_atx
TAYLOR BARNETT
APPENDIX: LINKS
• How Users Read on the Web article: https://www.nngroup.com/articles/how-users-read-on-the-web/
• Articles: https://www.nngroup.com/topic/writing-web/
• How to Write Documentation for People that Don't Read talk: https://youtu.be/sQP_hUNCrcE
• Designing Great API Docs blog post: http://blog.parse.com/learn/engineering/designing-great-api-
docs/
• Blog plus much more: http://idratherbewriting.com/
• Building navigation for your doc site: 5 best practices talk: https://youtu.be/w-kEmsLwPDE
• Building navigation for your documentation site: 5 best practices in design blog post: http://
idratherbewriting.com/files/doc-navigation-wtd/design-principles-for-doc-navigation/
• Breaking Down Barriers to “Hello World” talk: https://www.slideshare.net/taylorsoitgoes/breaking-
down-barriers-to-hello-world-79181115
• Even Naming This Talk Is Hard talk: https://youtu.be/RFfpkrbkvxc
• Error Messages: Being Humble, Human, and Helpful talk: https://youtu.be/gBBZUATL7Qo
• Don't be a Jerk: Write Documentation blog post: https://ferd.ca/don-t-be-a-jerk-write-
documentation.html
• Docs like Code book: https://www.docslikecode.com/
APPENDIX: A NOTE ON OPENAPI
SPECIFICATION
• Spec output can provide a clear source for reference info
about endpoints, parameters, requests, and responses
• Auto generation is a starting point
• Still need more use cases, authorization, why API exists,
more samples, and tutorials
• Think of it as a compliment, a sandbox to play around with
• Two sites isn’t necessarily a bad thing
@taylor_atx

Más contenido relacionado

La actualidad más candente

Selfish Accessibility — WordCamp Europe 2017
Selfish Accessibility — WordCamp Europe 2017Selfish Accessibility — WordCamp Europe 2017
Selfish Accessibility — WordCamp Europe 2017Adrian Roselli
 
Week 6 - Interactive News Editing and Producing
Week 6 - Interactive News Editing and ProducingWeek 6 - Interactive News Editing and Producing
Week 6 - Interactive News Editing and Producingkurtgessler
 
SearchCon 2016 | Black Hat Tools for White Hat SEO with Jim Kreinbrink, Cade ...
SearchCon 2016 | Black Hat Tools for White Hat SEO with Jim Kreinbrink, Cade ...SearchCon 2016 | Black Hat Tools for White Hat SEO with Jim Kreinbrink, Cade ...
SearchCon 2016 | Black Hat Tools for White Hat SEO with Jim Kreinbrink, Cade ...SearchCon
 
ONA08 - Jesse Thomas
ONA08 - Jesse ThomasONA08 - Jesse Thomas
ONA08 - Jesse ThomasJesse Thomas
 
Selfish Accessibility: MinneWebCon 2017
Selfish Accessibility: MinneWebCon 2017Selfish Accessibility: MinneWebCon 2017
Selfish Accessibility: MinneWebCon 2017Adrian Roselli
 

La actualidad más candente (6)

Selfish Accessibility — WordCamp Europe 2017
Selfish Accessibility — WordCamp Europe 2017Selfish Accessibility — WordCamp Europe 2017
Selfish Accessibility — WordCamp Europe 2017
 
Week 6 - Interactive News Editing and Producing
Week 6 - Interactive News Editing and ProducingWeek 6 - Interactive News Editing and Producing
Week 6 - Interactive News Editing and Producing
 
Websites 201
Websites 201Websites 201
Websites 201
 
SearchCon 2016 | Black Hat Tools for White Hat SEO with Jim Kreinbrink, Cade ...
SearchCon 2016 | Black Hat Tools for White Hat SEO with Jim Kreinbrink, Cade ...SearchCon 2016 | Black Hat Tools for White Hat SEO with Jim Kreinbrink, Cade ...
SearchCon 2016 | Black Hat Tools for White Hat SEO with Jim Kreinbrink, Cade ...
 
ONA08 - Jesse Thomas
ONA08 - Jesse ThomasONA08 - Jesse Thomas
ONA08 - Jesse Thomas
 
Selfish Accessibility: MinneWebCon 2017
Selfish Accessibility: MinneWebCon 2017Selfish Accessibility: MinneWebCon 2017
Selfish Accessibility: MinneWebCon 2017
 

Similar a Things I Wish People Told Me About Writing Docs

Explode conftalk - v2 ppt
Explode conftalk  - v2 pptExplode conftalk  - v2 ppt
Explode conftalk - v2 pptEmily Wyss
 
How to Use Social Media for Recruiting
How to Use Social Media for RecruitingHow to Use Social Media for Recruiting
How to Use Social Media for RecruitingClaravon Group
 
Article Writing Tips
Article Writing TipsArticle Writing Tips
Article Writing TipsMd Ekram
 
Wordcamp St. Louis - Clean Coding
Wordcamp St. Louis - Clean CodingWordcamp St. Louis - Clean Coding
Wordcamp St. Louis - Clean Codinginspector_fegter
 
"How do I Architect?" - Quick Introduction to Architecture for Salesforce Ad...
"How do I Architect?"  - Quick Introduction to Architecture for Salesforce Ad..."How do I Architect?"  - Quick Introduction to Architecture for Salesforce Ad...
"How do I Architect?" - Quick Introduction to Architecture for Salesforce Ad...Steven Herod
 
Code Reviews @ Quatico
Code Reviews @ QuaticoCode Reviews @ Quatico
Code Reviews @ QuaticoJan Wloka
 
Site Crawling: What To Do & What To Look For
Site Crawling: What To Do & What To Look ForSite Crawling: What To Do & What To Look For
Site Crawling: What To Do & What To Look ForOutspoken Media
 
Agile Toronto 2018 - Sharpen Your Agile Ax ... Story Splitting Time
Agile Toronto 2018 - Sharpen Your Agile Ax ... Story Splitting TimeAgile Toronto 2018 - Sharpen Your Agile Ax ... Story Splitting Time
Agile Toronto 2018 - Sharpen Your Agile Ax ... Story Splitting TimeBrian Sjoberg
 
Content Structure Workshop - Content Marketing World 2019
Content Structure Workshop - Content Marketing World 2019Content Structure Workshop - Content Marketing World 2019
Content Structure Workshop - Content Marketing World 2019Laura Creekmore
 
2015 rubyconf - 百大媒體網站從 Wordpress 到 Rails 的大小事
2015 rubyconf - 百大媒體網站從 Wordpress 到 Rails 的大小事2015 rubyconf - 百大媒體網站從 Wordpress 到 Rails 的大小事
2015 rubyconf - 百大媒體網站從 Wordpress 到 Rails 的大小事Ronald Hsu
 
WordPress 4.4 and Beyond
WordPress 4.4 and BeyondWordPress 4.4 and Beyond
WordPress 4.4 and BeyondScott Taylor
 
Content design for communicators and publishers- IntraTeam 2020
Content design for communicators and publishers- IntraTeam 2020Content design for communicators and publishers- IntraTeam 2020
Content design for communicators and publishers- IntraTeam 2020Intranet Now
 
A crash course into SEO and what moves the needle with scalable processes
A crash course into SEO and what moves the needle with scalable processesA crash course into SEO and what moves the needle with scalable processes
A crash course into SEO and what moves the needle with scalable processespatrickstox
 
Content Publishing
Content PublishingContent Publishing
Content PublishingAutodesk
 
Writing code for others
Writing code for othersWriting code for others
Writing code for othersAmol Pujari
 
Lavacon preso-2015-miranda-meyers
Lavacon preso-2015-miranda-meyersLavacon preso-2015-miranda-meyers
Lavacon preso-2015-miranda-meyersJoe Meyers
 
GDD Moscow - Open Social
GDD Moscow - Open SocialGDD Moscow - Open Social
GDD Moscow - Open SocialChris Chabot
 
Creating More Engaging Content For Social
Creating More Engaging Content For SocialCreating More Engaging Content For Social
Creating More Engaging Content For SocialEric T. Tung
 
Life cycle of user story: Outside-in agile product management & testing, or...
Life cycle of user story: Outside-in agile product management & testing, or...Life cycle of user story: Outside-in agile product management & testing, or...
Life cycle of user story: Outside-in agile product management & testing, or...Ravi Tadwalkar
 
Netflix OSS and HATEOAS deployed on production - JavaLand
Netflix OSS and HATEOAS deployed on production - JavaLandNetflix OSS and HATEOAS deployed on production - JavaLand
Netflix OSS and HATEOAS deployed on production - JavaLandJWORKS powered by Ordina
 

Similar a Things I Wish People Told Me About Writing Docs (20)

Explode conftalk - v2 ppt
Explode conftalk  - v2 pptExplode conftalk  - v2 ppt
Explode conftalk - v2 ppt
 
How to Use Social Media for Recruiting
How to Use Social Media for RecruitingHow to Use Social Media for Recruiting
How to Use Social Media for Recruiting
 
Article Writing Tips
Article Writing TipsArticle Writing Tips
Article Writing Tips
 
Wordcamp St. Louis - Clean Coding
Wordcamp St. Louis - Clean CodingWordcamp St. Louis - Clean Coding
Wordcamp St. Louis - Clean Coding
 
"How do I Architect?" - Quick Introduction to Architecture for Salesforce Ad...
"How do I Architect?"  - Quick Introduction to Architecture for Salesforce Ad..."How do I Architect?"  - Quick Introduction to Architecture for Salesforce Ad...
"How do I Architect?" - Quick Introduction to Architecture for Salesforce Ad...
 
Code Reviews @ Quatico
Code Reviews @ QuaticoCode Reviews @ Quatico
Code Reviews @ Quatico
 
Site Crawling: What To Do & What To Look For
Site Crawling: What To Do & What To Look ForSite Crawling: What To Do & What To Look For
Site Crawling: What To Do & What To Look For
 
Agile Toronto 2018 - Sharpen Your Agile Ax ... Story Splitting Time
Agile Toronto 2018 - Sharpen Your Agile Ax ... Story Splitting TimeAgile Toronto 2018 - Sharpen Your Agile Ax ... Story Splitting Time
Agile Toronto 2018 - Sharpen Your Agile Ax ... Story Splitting Time
 
Content Structure Workshop - Content Marketing World 2019
Content Structure Workshop - Content Marketing World 2019Content Structure Workshop - Content Marketing World 2019
Content Structure Workshop - Content Marketing World 2019
 
2015 rubyconf - 百大媒體網站從 Wordpress 到 Rails 的大小事
2015 rubyconf - 百大媒體網站從 Wordpress 到 Rails 的大小事2015 rubyconf - 百大媒體網站從 Wordpress 到 Rails 的大小事
2015 rubyconf - 百大媒體網站從 Wordpress 到 Rails 的大小事
 
WordPress 4.4 and Beyond
WordPress 4.4 and BeyondWordPress 4.4 and Beyond
WordPress 4.4 and Beyond
 
Content design for communicators and publishers- IntraTeam 2020
Content design for communicators and publishers- IntraTeam 2020Content design for communicators and publishers- IntraTeam 2020
Content design for communicators and publishers- IntraTeam 2020
 
A crash course into SEO and what moves the needle with scalable processes
A crash course into SEO and what moves the needle with scalable processesA crash course into SEO and what moves the needle with scalable processes
A crash course into SEO and what moves the needle with scalable processes
 
Content Publishing
Content PublishingContent Publishing
Content Publishing
 
Writing code for others
Writing code for othersWriting code for others
Writing code for others
 
Lavacon preso-2015-miranda-meyers
Lavacon preso-2015-miranda-meyersLavacon preso-2015-miranda-meyers
Lavacon preso-2015-miranda-meyers
 
GDD Moscow - Open Social
GDD Moscow - Open SocialGDD Moscow - Open Social
GDD Moscow - Open Social
 
Creating More Engaging Content For Social
Creating More Engaging Content For SocialCreating More Engaging Content For Social
Creating More Engaging Content For Social
 
Life cycle of user story: Outside-in agile product management & testing, or...
Life cycle of user story: Outside-in agile product management & testing, or...Life cycle of user story: Outside-in agile product management & testing, or...
Life cycle of user story: Outside-in agile product management & testing, or...
 
Netflix OSS and HATEOAS deployed on production - JavaLand
Netflix OSS and HATEOAS deployed on production - JavaLandNetflix OSS and HATEOAS deployed on production - JavaLand
Netflix OSS and HATEOAS deployed on production - JavaLand
 

Más de Taylor Barnett

Going to Infinity and Beyond Documentation with OpenAPI
Going to Infinity and Beyond Documentation with OpenAPIGoing to Infinity and Beyond Documentation with OpenAPI
Going to Infinity and Beyond Documentation with OpenAPITaylor Barnett
 
Creating a Great Developer Experience Through SDKs
Creating a Great Developer Experience Through SDKsCreating a Great Developer Experience Through SDKs
Creating a Great Developer Experience Through SDKsTaylor Barnett
 
Exploring Privilege in Open Source Communities
Exploring Privilege in Open Source CommunitiesExploring Privilege in Open Source Communities
Exploring Privilege in Open Source CommunitiesTaylor Barnett
 
How to Promote Your Event
How to Promote Your EventHow to Promote Your Event
How to Promote Your EventTaylor Barnett
 
Building Community with Developer Love
Building Community with Developer LoveBuilding Community with Developer Love
Building Community with Developer LoveTaylor Barnett
 

Más de Taylor Barnett (6)

Going to Infinity and Beyond Documentation with OpenAPI
Going to Infinity and Beyond Documentation with OpenAPIGoing to Infinity and Beyond Documentation with OpenAPI
Going to Infinity and Beyond Documentation with OpenAPI
 
Creating a Great Developer Experience Through SDKs
Creating a Great Developer Experience Through SDKsCreating a Great Developer Experience Through SDKs
Creating a Great Developer Experience Through SDKs
 
Exploring Privilege in Open Source Communities
Exploring Privilege in Open Source CommunitiesExploring Privilege in Open Source Communities
Exploring Privilege in Open Source Communities
 
How to Promote Your Event
How to Promote Your EventHow to Promote Your Event
How to Promote Your Event
 
Stuff You Don't Need
Stuff You Don't NeedStuff You Don't Need
Stuff You Don't Need
 
Building Community with Developer Love
Building Community with Developer LoveBuilding Community with Developer Love
Building Community with Developer Love
 

Último

Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...Arindam Chakraborty, Ph.D., P.E. (CA, TX)
 
data_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfdata_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfJiananWang21
 
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance Bookingroncy bisnoi
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...Call Girls in Nagpur High Profile
 
notes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.pptnotes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.pptMsecMca
 
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Bookingdharasingh5698
 
Online banking management system project.pdf
Online banking management system project.pdfOnline banking management system project.pdf
Online banking management system project.pdfKamal Acharya
 
Top Rated Call Girls In chittoor 📱 {7001035870} VIP Escorts chittoor
Top Rated Call Girls In chittoor 📱 {7001035870} VIP Escorts chittoorTop Rated Call Girls In chittoor 📱 {7001035870} VIP Escorts chittoor
Top Rated Call Girls In chittoor 📱 {7001035870} VIP Escorts chittoordharasingh5698
 
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfKamal Acharya
 
Design For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the startDesign For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the startQuintin Balsdon
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Call Girls in Nagpur High Profile
 
Bhosari ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For ...
Bhosari ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For ...Bhosari ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For ...
Bhosari ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For ...tanu pandey
 
Thermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - VThermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - VDineshKumar4165
 
Block diagram reduction techniques in control systems.ppt
Block diagram reduction techniques in control systems.pptBlock diagram reduction techniques in control systems.ppt
Block diagram reduction techniques in control systems.pptNANDHAKUMARA10
 
University management System project report..pdf
University management System project report..pdfUniversity management System project report..pdf
University management System project report..pdfKamal Acharya
 
KubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlyKubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlysanyuktamishra911
 
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...SUHANI PANDEY
 

Último (20)

(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
 
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
 
data_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfdata_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdf
 
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
 
NFPA 5000 2024 standard .
NFPA 5000 2024 standard                                  .NFPA 5000 2024 standard                                  .
NFPA 5000 2024 standard .
 
notes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.pptnotes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.ppt
 
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
 
Online banking management system project.pdf
Online banking management system project.pdfOnline banking management system project.pdf
Online banking management system project.pdf
 
Top Rated Call Girls In chittoor 📱 {7001035870} VIP Escorts chittoor
Top Rated Call Girls In chittoor 📱 {7001035870} VIP Escorts chittoorTop Rated Call Girls In chittoor 📱 {7001035870} VIP Escorts chittoor
Top Rated Call Girls In chittoor 📱 {7001035870} VIP Escorts chittoor
 
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
 
Design For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the startDesign For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the start
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
 
Bhosari ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For ...
Bhosari ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For ...Bhosari ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For ...
Bhosari ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For ...
 
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced LoadsFEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
 
Thermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - VThermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - V
 
Block diagram reduction techniques in control systems.ppt
Block diagram reduction techniques in control systems.pptBlock diagram reduction techniques in control systems.ppt
Block diagram reduction techniques in control systems.ppt
 
University management System project report..pdf
University management System project report..pdfUniversity management System project report..pdf
University management System project report..pdf
 
KubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlyKubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghly
 
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
 

Things I Wish People Told Me About Writing Docs

  • 1. THINGS I WISH PEOPLE TOLD ME ABOUT WRITING DOCS @taylor_atx
  • 2. Community Engineer at Keen IO taylor@keen.io @taylor_atx TAYLOR BARNETT
  • 3. HOW DO PEOPLE ACTUALLY READ DOCS? @taylor_atx
  • 6. IMPLICATIONS OF F SHAPE • First two paragraphs must state the most important information • Further, the first 3-5 words are very important • Start headers, paragraphs, and bullet points with information- carrying words • Variations in typeface (text size, links, bold, etc) @taylor_atx
  • 7. STRUCTURE • Prevent search failure - what the users wants doesn’t stand out • One idea per paragraph, if there’s more than one, split the paragraphs • Users skip over things that look like ads • Aim for 65-90 characters in width @taylor_atx
  • 8. USABILITY VARIES: PARAGRAPH VS BULLETS @taylor_atx
  • 9. USABILITY VARIES: PARAGRAPH VS BULLETS Event collections can have almost any name, but there are a few rules to follow: The name must be 64 characters or less. It must contain only Ascii characters. It cannot be a null value.
 @taylor_atx
  • 10. USABILITY VARIES: PARAGRAPH VS BULLETS Event collections can have almost any name, but there are a few rules to follow: The name must be 64 characters or less. It must contain only Ascii characters. It cannot be a null value.
 Event collections can have almost any name, but there are a few rules to follow: • The name must be 64 characters or less. • It must contain only Ascii characters. • It cannot be a null value. @taylor_atx
  • 11. USERS ACTUALLY READ CODE SNIPPETS @taylor_atx
  • 12. var client = new Keen({   projectId: "your_project_id",   writeKey: "your_write_key" }); var ticketPurchase = {   price: 50.00,   user: {     id: "020939382",     age: 28   },   artist: {     id: "19039",     name: "Tycho"   } } client.addEvent("ticket_purchases", ticketPurchase); WHAT IS THIS CODE SNIPPET MISSING? 🤔 @taylor_atx
  • 13. var client = new Keen({   projectId: "your_project_id",   writeKey: "your_write_key" }); var ticketPurchase = {   price: 50.00,   user: {     id: "020939382",     age: 28   },   artist: {     id: "19039",     name: "Tycho"   } } client.addEvent("ticket_purchases", ticketPurchase); WHAT IS THIS CODE SNIPPET MISSING? • First, how do I even run this? " @taylor_atx
  • 14. var client = new Keen({   projectId: "your_project_id",   writeKey: "your_write_key" }); var ticketPurchase = {   price: 50.00,   user: {     id: "020939382",     age: 28   },   artist: {     id: "19039",     name: "Tycho"   } } client.addEvent("ticket_purchases", ticketPurchase); WHAT IS THIS CODE SNIPPET MISSING? • First, how do I even run this? • “ReferenceError: Keen is not defined” " @taylor_atx
  • 15. var client = new Keen({   projectId: "your_project_id",   writeKey: "your_write_key" }); var ticketPurchase = {   price: 50.00,   user: {     id: "020939382",     age: 28   },   artist: {     id: "19039",     name: "Tycho"   } } client.addEvent("ticket_purchases", ticketPurchase); WHAT IS THIS CODE SNIPPET MISSING? • First, how do I even run this? • “ReferenceError: Keen is not defined” • Didn’t set the Project ID and Write Key " @taylor_atx
  • 16. What will this return? # Copy and paste the following command $ gem install rails PREVENT COPY AND PASTE BUGS 🤔 @taylor_atx
  • 17. What will this return? # Copy and paste the following command $ gem install rails PREVENT COPY AND PASTE BUGS 😔 # Returns “bash: command not found: $” @taylor_atx
  • 19. WHAT DO I MEAN BY “DOCS?” API REFERENCES GUIDES TUTORIALS BLOG POSTS* @taylor_atx
  • 20. GUIDES • Somewhere between API references and tutorials • Similar reference but with prose that explains how to use the API • Example: Authorization guide @taylor_atx
  • 21.
  • 22. TUTORIALS • Teach specific things with an API, beginning to end, including setup • Tightly focused on a few pieces of functionality • Includes working sample code • Example: Getting Started or Hello World tutorial @taylor_atx
  • 24. BLOG POSTS • “Share Knowledge, Not Features” — Adam DuVander • Features != Benefits • A blog post should teach, inspire, and help • Give a preview, then help navigate them to the full docs @taylor_atx
  • 26. DOCS NAVIGATION AND UNIVERSAL PRINCIPLES OF DESIGN @taylor_atx
  • 28. 1. NAVIGATE FROM DOC SET TO DOC SET @taylor_atx
  • 29. DOCS PORTAL HOMEPAGE PRODUCT HOMEPAGE SECTION HOMEPAGE PAGE @taylor_atx
  • 32. 2. ALLOW NAVIGATION WITHIN CONTENT @taylor_atx
  • 33. BOTTOM-UP NAVIGATION • If you tell me I can do something, link to how to do that something. • If you tell me I can use something, link to a description of that something. • If you mention a concept or an idea, link to a description of that concept or idea. — Mark Baker from “Every Page is Page One” @taylor_atx
  • 38.
  • 41. WHY DO BAD NAMES PERSIST? • Because we don’t realize that the name is bad • Or we do, but can’t or won’t justify fixing it because we… • Are tied to it • Can’t justify the time • Don’t know the value • Don’t have the agency to fix it @taylor_atx
  • 42. EMPATHY FAILURE BEGINNER’S MIND FAILURE @taylor_atx
  • 43. WORD CHOICE IS HARD • Hard to give one framework to use, but you can… • Talk to users, get feedback - ask someone to review it • Refactor and rewrite • Search existing names @taylor_atx
  • 46. ERROR MESSAGES ARE AN OPPORTUNITY @taylor_atx
  • 47. 3 H’S OF GOOD ERROR MESSAGES: HUMBLE HUMAN HELPFUL @taylor_atx
  • 48. HUMBLE • Apologize even if it is not your fault • Example: • Sorry, we could not connect to ___. Please check your network settings, connect to an available network, and try again. @taylor_atx
  • 49. HUMAN • Speak in human terms • Example: • Your API Key is invalid, please try a different key. @taylor_atx
  • 50. HELPFUL • Share what the users can expect or do to fix the problem • Example: • Sorry, the image you tried to upload is too big. Try again with an image smaller than 4000px tall by 4000px wide. @taylor_atx
  • 51. WRITING ERROR MESSAGES 1. Acknowledge 2. Apologize 3. Explain 4. Help @taylor_atx
  • 52. WRITING ERROR MESSAGES • Object first, action second • What the users wants first, how to get there second • If you can, put the input in the error string @taylor_atx
  • 53. ERROR MESSAGE SEO • If users get an error message often, put the exact text in your docs • You can also edit StackOverflow posts @taylor_atx
  • 54. HOW DO I GET OTHER TEAMMATES TO CONTRIBUTE TO DOCS? @taylor_atx
  • 55. “I DON’T HAVE THE TIME” “DOCS ARE HARD TO MAINTAIN” “JUST READ THE SOURCE” “DOCUMENTATION IS USELESS” — Fred Hebert from “Don't be a Jerk: Write Documentation” @taylor_atx
  • 56. MAKE SURE CONTRIBUTORS ARE VALUED & REWARDED @taylor_atx
  • 58. GITHUB FOR DOCS • Continuous integration and automated testing • Issues • Incremental changes @taylor_atx
  • 59. REVIEWS • “Pair” on reviews • Use reviews to coach contributors • For small suggestions, fix it yourself and share before merging • If a review sounds harsh, reach out and let them know you aim to instruct and appreciate them @taylor_atx
  • 60. STYLE GUIDES • Frees your contributors to focus on what’s more valuable, instead of grammar, consistency, or other issues • Examples: • Google Developer Documentation Style Guide • 18F Content Guide @taylor_atx
  • 61. Community Engineer at Keen IO taylor@keen.io @taylor_atx TAYLOR BARNETT
  • 62. APPENDIX: LINKS • How Users Read on the Web article: https://www.nngroup.com/articles/how-users-read-on-the-web/ • Articles: https://www.nngroup.com/topic/writing-web/ • How to Write Documentation for People that Don't Read talk: https://youtu.be/sQP_hUNCrcE • Designing Great API Docs blog post: http://blog.parse.com/learn/engineering/designing-great-api- docs/ • Blog plus much more: http://idratherbewriting.com/ • Building navigation for your doc site: 5 best practices talk: https://youtu.be/w-kEmsLwPDE • Building navigation for your documentation site: 5 best practices in design blog post: http:// idratherbewriting.com/files/doc-navigation-wtd/design-principles-for-doc-navigation/ • Breaking Down Barriers to “Hello World” talk: https://www.slideshare.net/taylorsoitgoes/breaking- down-barriers-to-hello-world-79181115 • Even Naming This Talk Is Hard talk: https://youtu.be/RFfpkrbkvxc • Error Messages: Being Humble, Human, and Helpful talk: https://youtu.be/gBBZUATL7Qo • Don't be a Jerk: Write Documentation blog post: https://ferd.ca/don-t-be-a-jerk-write- documentation.html • Docs like Code book: https://www.docslikecode.com/
  • 63. APPENDIX: A NOTE ON OPENAPI SPECIFICATION • Spec output can provide a clear source for reference info about endpoints, parameters, requests, and responses • Auto generation is a starting point • Still need more use cases, authorization, why API exists, more samples, and tutorials • Think of it as a compliment, a sandbox to play around with • Two sites isn’t necessarily a bad thing @taylor_atx