SlideShare a Scribd company logo
1 of 82
Documenting APIs
GlueCon 2015
with cats
Anya Stettler
Developer Relations
Avalara
anyarms
Why do we need good documentation?
What qualities distinguish “good”
documentation?
How can we communicate with
developers?
How can we improve existing
documentation?
Do we really need great docs?
YES!
products are
complicated
documentation
is an
afterthought
Good documentation is good
• Decreases barriers to entry
• Decreases support costs
• Works as a marketing tool
When evaluating an API…
http://www.programmableweb.com/news/api-consumers-want-reliability-
documentation-and-community/2013/01/07
zero to “Hello World”
https://developer.yahoo.com/weather/
https://developer.yahoo.com/yql/console/
Bad documentation makes
your users skeptical …
… or sad.
What is good documentation?
A comprehensive,
navigable
resource that
provides users the
information to build
a painless,
maintainable,
successful
integration to your
service.
What is good documentation?
A comprehensive,
navigable
resource that
provides users the
information to build
a painless,
maintainable,
successful
integration to your
service.
What is good documentation?
A comprehensive,
navigable
resource that
provides users the
information to build
a painless,
maintainable,
successful
integration to your
service.
What is good documentation?
A comprehensive,
navigable
resource that
provides users the
information to build
a painless,
maintainable,
successful
integration to your
service.
What is good documentation?
A comprehensive,
navigable
resource that
provides users the
information to build
a painless,
maintainable,
successful
integration to your
service.
What is good documentation?
A comprehensive,
navigable
resource that
provides users the
information to build
a painless,
maintainable,
successful
integration to your
service.
Types of Docs
• Technical Reference
• Sample Code/Code Snippets
• Tutorials (written, video,
interactive)
• Application Samples
• Q&A Resources
Technical Reference
• Describe everything in your
API
– Even things you don’t want
people to use
• Structure should follow the
structure of the API
– But can intentionally diverge
• Primarily values:
comprehensive, navigable
• Shortcuts: API design,
‘automatic’ documentation,
formatting
https://dev.twitter.com/rest/reference/get/search/tweets
Automatic
Documentation
• Less error-prone
• Takes less time
… but it’s only part of the
story!
• Documentation needs to
explain things to people
– Different writing skills
• Communication is too
important to play second
fiddle in comments
Code Snippets
• Allow users to learn by
example
• Demonstrate a single call
• Need to be able to
copy/paste content
– Must work!
• Primary values: painless
• Code should be simple,
readable (not clever)
• Example: Stripe, Twilio
https://stripe.com/docs/api
https://www.twilio.com/docs/api/rest/call
http://docs.themoviedb.apiary.io/
https://github.com/tripit/slate
Which Languages?
• At least three languages
• At least one raw call/response
sample
• Two additional samples implies
multi-language support
• Popularity
• Target audience
• The more the merrier
• as long as
they’re
maintainable
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
IEEE Spectrum:
Top Programming Languages (web)
http://spectrum.ieee.org/static/interactive-the-top-programming-languages#index
Fancy Code Snippets
via interactive console
• Allows users to
play with data
• Real calls to API
• User credentials,
parameters
• Tools:
- Mashery I/O Docs
- Apigee
- 3scale
http://developer.klout.com/io-docs
https://dev.twitter.com/rest/tools/console
http://petstore.swagger.io/
Tutorials
• Your product probably
has some subtlety
– Authorization
– Security concerns
– Expected workflow
• Can take many formats
– Step-by-step articles
– Videos/screencasts
– Interactive
• Key Values:
successful, painless
https://stripe.com/docs/tutorials/charges
https://www.stellar.org/developers/
Application Samples
• More fully-fledged
“learning by example”
• Full integration within an
application context
• Larger samples
• More like a POC
• Primary values:
readability, navigability
• Example: Twilio
https://www.twilio.com/docs/howto/walkthrough/appointment-
reminders/ruby/rails
Q&A resources
• There will still be
unanswered questions
– Specific use cases
– Combinations of
resources
• Public answers
benefit the
community
• Primary values:
navigability,
simplicity
http://stackoverflow.com/tags
http://stackoverflow.com/help/product-support
https://developer.salesforce.com/forums/
https://twittercommunity.com/
A comprehensive, navigable resource
that provides users the information
to build a painless, maintainable,
successful integration to your
service.
• Technical Reference
• Sample Code/code snippets
• Tutorials (written, video,
interactive)
• Application Samples
• Q&A resources
Do I really
need all those
things?
Top 10 APIs
Article
• Facebook
• Google Maps
• Twitter
• YouTube
• AccuWeather
• LinkedIn
• Amazon Product
Advertising
• Pinterest
• Flickr
• Google Talk
http://www.programmableweb.com/news/most-popular-apis-least-one-will-surprise-you/2014/01/23
http://www.programmableweb.com/apis (As of 2015-02-09)
Popularity
• Facebook
• Kayak*
• Google Maps
• Skype
• Waze
• Netflix*
• Fresh Logic
Studios Atlas*
• Yahoo Weather
• AirBNB*
• Twitter
What documentation do they
offer?
Technical
Reference
Code
Snippets Tutorials
Interactive
Console SDK
Application
Samples Q&A
Facebook yes yes yes yes yes yes yes
Google Maps yes yes yes no yes no stack overflow
Twitter yes JSON only yes yes some no yes
YouTube yes yes yes yes yes no stack overflow
AccuWeather yes no* yes no no no no
LinkedIn yes yes yes yes 3rd party no yes
Amazon Product
Advertising yes 3rd party yes no 3rd party 3rd party yes
Pinterest yes no yes no yes no no
Flickr yes 3rd party yes yes 3rd party no yes
Google Talk** yes yes yes no yes no yes
Twilio yes yes yes no yes yes yes
Skype URI yes yes yes no no no yes
Waze yes yes yes no no no yes
Yahoo Weather yes yes yes yes no no yes
* Does provide a JavaScript sample for one resource
** Replaced May 2013, no longer updated
Comprehensive vs. Concise?
• Comprehensive
– Full coverage for technical references
– Common use cases for tutorials/samples
• Length becomes an issue
– affects navigation
- dilutes understanding
- impacts maintenance
Information that isn’t accessible
isn’t helpful.
Keep it up to date!
• Inaccurate is as
bad as missing
• Only way to make
integrations
maintainable
Creating Documentation
• Don’t build it from
scratch
• Evaluate the best
description format
for you
• Use existing tools
to make your site
all fancy
• Continue to evolve
investigate…
…and keep
investigating
http://developer.avalara.com
https://github.com/avadev
http://developer.avalara.com/api-reference
So much more!
• SDKs
• Developer Blog
• Posted Release Notes
• Formatting tools
• XML-based docs
• Auto-doc tools
• Open source docs
Thanks!
Anya Stettler
Developer Relations
Avalara
anyarms
anya.stettler@avalara.com
slides available at
http://www.slideshare.net/AnyaStettler

More Related Content

Viewers also liked

Engineering Anti-Patterns @JQueryTO 2014
Engineering Anti-Patterns @JQueryTO 2014Engineering Anti-Patterns @JQueryTO 2014
Engineering Anti-Patterns @JQueryTO 2014Nahim Nasser
 
Documenting code yapceu2016
Documenting code yapceu2016Documenting code yapceu2016
Documenting code yapceu2016Søren Lund
 
Tech Stack: Combining Powerful Technology & Funnel-Driven Content
Tech Stack: Combining Powerful Technology & Funnel-Driven ContentTech Stack: Combining Powerful Technology & Funnel-Driven Content
Tech Stack: Combining Powerful Technology & Funnel-Driven ContentLeadMD
 
Documentation Driven Development
Documentation Driven DevelopmentDocumentation Driven Development
Documentation Driven DevelopmentCorey Oordt
 
How developers write documentation
How developers write documentationHow developers write documentation
How developers write documentationSenthilkumar Gopal
 
To document or not to document? An exploratory study on developers' motivatio...
To document or not to document? An exploratory study on developers' motivatio...To document or not to document? An exploratory study on developers' motivatio...
To document or not to document? An exploratory study on developers' motivatio...Hayim Makabee
 
Docs as-code-missing.-manual
Docs as-code-missing.-manualDocs as-code-missing.-manual
Docs as-code-missing.-manualMargaret Eker
 
Thinking of Documentation as Code [YUIConf 2013]
Thinking of Documentation as Code [YUIConf 2013]Thinking of Documentation as Code [YUIConf 2013]
Thinking of Documentation as Code [YUIConf 2013]evangoer
 
Delivering High-Velocity Docs that Keep Pace with Rapid Release Cycles
Delivering High-Velocity Docs that Keep Pace with Rapid Release CyclesDelivering High-Velocity Docs that Keep Pace with Rapid Release Cycles
Delivering High-Velocity Docs that Keep Pace with Rapid Release CyclesRachel Whitton
 

Viewers also liked (14)

Clean code
Clean codeClean code
Clean code
 
Engineering Anti-Patterns @JQueryTO 2014
Engineering Anti-Patterns @JQueryTO 2014Engineering Anti-Patterns @JQueryTO 2014
Engineering Anti-Patterns @JQueryTO 2014
 
Documenting code yapceu2016
Documenting code yapceu2016Documenting code yapceu2016
Documenting code yapceu2016
 
Code documentation
Code documentationCode documentation
Code documentation
 
Tech Stack: Combining Powerful Technology & Funnel-Driven Content
Tech Stack: Combining Powerful Technology & Funnel-Driven ContentTech Stack: Combining Powerful Technology & Funnel-Driven Content
Tech Stack: Combining Powerful Technology & Funnel-Driven Content
 
Source Code Quality
Source Code QualitySource Code Quality
Source Code Quality
 
Pachara's portfolio
Pachara's portfolioPachara's portfolio
Pachara's portfolio
 
Documentation Driven Development
Documentation Driven DevelopmentDocumentation Driven Development
Documentation Driven Development
 
code documentation
code documentationcode documentation
code documentation
 
How developers write documentation
How developers write documentationHow developers write documentation
How developers write documentation
 
To document or not to document? An exploratory study on developers' motivatio...
To document or not to document? An exploratory study on developers' motivatio...To document or not to document? An exploratory study on developers' motivatio...
To document or not to document? An exploratory study on developers' motivatio...
 
Docs as-code-missing.-manual
Docs as-code-missing.-manualDocs as-code-missing.-manual
Docs as-code-missing.-manual
 
Thinking of Documentation as Code [YUIConf 2013]
Thinking of Documentation as Code [YUIConf 2013]Thinking of Documentation as Code [YUIConf 2013]
Thinking of Documentation as Code [YUIConf 2013]
 
Delivering High-Velocity Docs that Keep Pace with Rapid Release Cycles
Delivering High-Velocity Docs that Keep Pace with Rapid Release CyclesDelivering High-Velocity Docs that Keep Pace with Rapid Release Cycles
Delivering High-Velocity Docs that Keep Pace with Rapid Release Cycles
 

Similar to Documenting APIs with Cats

Keynote- We're going wrong: Choosing the web's future. Peter Paul Koch
Keynote- We're going wrong: Choosing the web's future. Peter Paul KochKeynote- We're going wrong: Choosing the web's future. Peter Paul Koch
Keynote- We're going wrong: Choosing the web's future. Peter Paul KochFuture Insights
 
Using Web 2.0 Tools inside Brightspace with an Eye on Accessibility
Using Web 2.0 Tools inside Brightspace with an Eye on AccessibilityUsing Web 2.0 Tools inside Brightspace with an Eye on Accessibility
Using Web 2.0 Tools inside Brightspace with an Eye on AccessibilityD2L
 
Using Web-based Tools in Brightspace, with an Eye on Accessibility accessibly
Using Web-based Tools in Brightspace, with an Eye on Accessibility accessiblyUsing Web-based Tools in Brightspace, with an Eye on Accessibility accessibly
Using Web-based Tools in Brightspace, with an Eye on Accessibility accessiblyD2L Barry
 
Richard Morgan, What is your museum good at and how do you build an API for it?
Richard Morgan, What is your museum good at and how do you build an API for it?Richard Morgan, What is your museum good at and how do you build an API for it?
Richard Morgan, What is your museum good at and how do you build an API for it?museums and the web
 
Building a REST API for Longevity
Building a REST API for LongevityBuilding a REST API for Longevity
Building a REST API for LongevityMuleSoft
 
Towards an Agile Authoring methodology: Learning from Lean
Towards an Agile Authoring methodology: Learning from LeanTowards an Agile Authoring methodology: Learning from Lean
Towards an Agile Authoring methodology: Learning from LeanEllis Pratt
 
Twin Redheaded Stepchildren of a Different Mother: The Usability of Accessibi...
Twin Redheaded Stepchildren of a Different Mother: The Usability of Accessibi...Twin Redheaded Stepchildren of a Different Mother: The Usability of Accessibi...
Twin Redheaded Stepchildren of a Different Mother: The Usability of Accessibi...Dylan Wilbanks
 
API Developer Experience: Why it Matters, and How Documenting Your API with S...
API Developer Experience: Why it Matters, and How Documenting Your API with S...API Developer Experience: Why it Matters, and How Documenting Your API with S...
API Developer Experience: Why it Matters, and How Documenting Your API with S...SmartBear
 
Tough Times Make Tougher Libraries
Tough Times Make Tougher LibrariesTough Times Make Tougher Libraries
Tough Times Make Tougher LibrariesSarah Houghton
 
Build Accessibly - Community Day 2012
Build Accessibly - Community Day 2012Build Accessibly - Community Day 2012
Build Accessibly - Community Day 2012Karen Mardahl
 
corePHP Usability Accessibility by Steven Pignataro
corePHP Usability Accessibility by Steven PignatarocorePHP Usability Accessibility by Steven Pignataro
corePHP Usability Accessibility by Steven PignataroJohn Coonen
 
Prototyping Accessibility: Booster 2019
Prototyping Accessibility: Booster 2019Prototyping Accessibility: Booster 2019
Prototyping Accessibility: Booster 2019Adrian Roselli
 
The Developer Experience
The Developer Experience The Developer Experience
The Developer Experience Pamela Fox
 
Prototyping Accessibility - WordCamp Europe 2018
Prototyping Accessibility - WordCamp Europe 2018Prototyping Accessibility - WordCamp Europe 2018
Prototyping Accessibility - WordCamp Europe 2018Adrian Roselli
 
NLJUG speaker academy 2023 - session 1
NLJUG speaker academy 2023 - session 1NLJUG speaker academy 2023 - session 1
NLJUG speaker academy 2023 - session 1Bert Jan Schrijver
 
Web Accessibility Top 10 - LCC (1/2 day workshop, August 2013)
Web Accessibility Top 10 - LCC (1/2 day workshop, August 2013)Web Accessibility Top 10 - LCC (1/2 day workshop, August 2013)
Web Accessibility Top 10 - LCC (1/2 day workshop, August 2013)Carrie Anton
 
Introduction to GraphQL (or How I Learned to Stop Worrying about REST APIs)
Introduction to GraphQL (or How I Learned to Stop Worrying about REST APIs)Introduction to GraphQL (or How I Learned to Stop Worrying about REST APIs)
Introduction to GraphQL (or How I Learned to Stop Worrying about REST APIs)Hafiz Ismail
 

Similar to Documenting APIs with Cats (20)

OS Accelerate London - 09/16/15
OS Accelerate London - 09/16/15OS Accelerate London - 09/16/15
OS Accelerate London - 09/16/15
 
Keynote- We're going wrong: Choosing the web's future. Peter Paul Koch
Keynote- We're going wrong: Choosing the web's future. Peter Paul KochKeynote- We're going wrong: Choosing the web's future. Peter Paul Koch
Keynote- We're going wrong: Choosing the web's future. Peter Paul Koch
 
Using Web 2.0 Tools inside Brightspace with an Eye on Accessibility
Using Web 2.0 Tools inside Brightspace with an Eye on AccessibilityUsing Web 2.0 Tools inside Brightspace with an Eye on Accessibility
Using Web 2.0 Tools inside Brightspace with an Eye on Accessibility
 
Using Web-based Tools in Brightspace, with an Eye on Accessibility accessibly
Using Web-based Tools in Brightspace, with an Eye on Accessibility accessiblyUsing Web-based Tools in Brightspace, with an Eye on Accessibility accessibly
Using Web-based Tools in Brightspace, with an Eye on Accessibility accessibly
 
Richard Morgan, What is your museum good at and how do you build an API for it?
Richard Morgan, What is your museum good at and how do you build an API for it?Richard Morgan, What is your museum good at and how do you build an API for it?
Richard Morgan, What is your museum good at and how do you build an API for it?
 
Building a REST API for Longevity
Building a REST API for LongevityBuilding a REST API for Longevity
Building a REST API for Longevity
 
Towards an Agile Authoring methodology: Learning from Lean
Towards an Agile Authoring methodology: Learning from LeanTowards an Agile Authoring methodology: Learning from Lean
Towards an Agile Authoring methodology: Learning from Lean
 
Twin Redheaded Stepchildren of a Different Mother: The Usability of Accessibi...
Twin Redheaded Stepchildren of a Different Mother: The Usability of Accessibi...Twin Redheaded Stepchildren of a Different Mother: The Usability of Accessibi...
Twin Redheaded Stepchildren of a Different Mother: The Usability of Accessibi...
 
API Developer Experience: Why it Matters, and How Documenting Your API with S...
API Developer Experience: Why it Matters, and How Documenting Your API with S...API Developer Experience: Why it Matters, and How Documenting Your API with S...
API Developer Experience: Why it Matters, and How Documenting Your API with S...
 
Tough Times Make Tougher Libraries
Tough Times Make Tougher LibrariesTough Times Make Tougher Libraries
Tough Times Make Tougher Libraries
 
Build Accessibly - Community Day 2012
Build Accessibly - Community Day 2012Build Accessibly - Community Day 2012
Build Accessibly - Community Day 2012
 
corePHP Usability Accessibility by Steven Pignataro
corePHP Usability Accessibility by Steven PignatarocorePHP Usability Accessibility by Steven Pignataro
corePHP Usability Accessibility by Steven Pignataro
 
Prototyping Accessibility: Booster 2019
Prototyping Accessibility: Booster 2019Prototyping Accessibility: Booster 2019
Prototyping Accessibility: Booster 2019
 
The Developer Experience
The Developer Experience The Developer Experience
The Developer Experience
 
Rapid prototyping and sketching
Rapid prototyping and sketchingRapid prototyping and sketching
Rapid prototyping and sketching
 
Prototyping Accessibility - WordCamp Europe 2018
Prototyping Accessibility - WordCamp Europe 2018Prototyping Accessibility - WordCamp Europe 2018
Prototyping Accessibility - WordCamp Europe 2018
 
NLJUG speaker academy 2023 - session 1
NLJUG speaker academy 2023 - session 1NLJUG speaker academy 2023 - session 1
NLJUG speaker academy 2023 - session 1
 
Web Accessibility Top 10 - LCC (1/2 day workshop, August 2013)
Web Accessibility Top 10 - LCC (1/2 day workshop, August 2013)Web Accessibility Top 10 - LCC (1/2 day workshop, August 2013)
Web Accessibility Top 10 - LCC (1/2 day workshop, August 2013)
 
Introduction to GraphQL (or How I Learned to Stop Worrying about REST APIs)
Introduction to GraphQL (or How I Learned to Stop Worrying about REST APIs)Introduction to GraphQL (or How I Learned to Stop Worrying about REST APIs)
Introduction to GraphQL (or How I Learned to Stop Worrying about REST APIs)
 
Accessibility Usability Professional Summry
Accessibility Usability Professional SummryAccessibility Usability Professional Summry
Accessibility Usability Professional Summry
 

Recently uploaded

Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...SelfMade bd
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...masabamasaba
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionOnePlan Solutions
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024Mind IT Systems
 
Generic or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisionsGeneric or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisionsBert Jan Schrijver
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfVishalKumarJha10
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Hararemasabamasaba
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfonteinmasabamasaba
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfonteinmasabamasaba
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is insideshinachiaurasa2
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park masabamasaba
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...masabamasaba
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrandmasabamasaba
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
SHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions PresentationSHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions PresentationShrmpro
 

Recently uploaded (20)

Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
Generic or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisionsGeneric or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisions
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
SHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions PresentationSHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions Presentation
 

Documenting APIs with Cats

Editor's Notes

  1. I'll talk about why good documentation is so important. I'll cover some different ways to engage with developers through documentation and what qualities you should look for in each of those methods. We'll take a look at some examples of good documentation for each of those. Then we'll take a look at some hypothetical, terrible documentation and refactor it into good documentation. That should be the fun part.
  2. Let's start easy. I hope you're all in agreement with me on this one: your API needs documentation.
  3. No API is entirely self-explanatory. You may have the most elegant, intuitive API possible, but you still need documentation. And I don't mean just a list of fields with descriptions. That's essential, but it needs to go deeper than that. There are complexities to your business. To your product. Those need to be clear to your users. There are a lot of other talks here about helping machines communicate with other machines. That's not what I mean here. This is communicating with humans.
  4. In practice…
  5. More specifically If your documentation is good, it can do some great things. Here are the easy ones: - It decreases barriers to entry. It's easier to use your product since it's well documented, so it takes less time and effort to get it up and running. - It decreases support burden and costs. Developers aren't calling or emailing with as many questions, and as they continue to modify or update their code, they have a reference to go back to. Even if you walk them through it step by step now, after six or eight months, they'll forget all that information. Write it down! Make it accessible. It's less expensive for you and for them. So, In addition to being purely informative, what else can documentation imply to your developer customers? It can reduce costs of implementation and support and all that, but it also works as a marketing tool.
  6. Often, you're selling a product to a business guy. This is a business cat – he is wearing a tie. He's going to make the decision that this product looks like it meets the business needs. He's not going to be writing the code, but he's maybe a tech-literate guy, and as part of the evaluation process, he wants to make sure that his dev will have what he needs to get the job done. If you can send him to documentation that is clearly easy to navigate and even just appears to be helpful, that goes a long way towards reassuring him. This is a developer cat – he is wearing a hoodie. When his dev looks at it, he also impressed and reassured, and the integration process looks easier.
  7. This marketing perspective isn’t a full evaluation of everything your API can do. Not yet. This is just 'can I make a request and get a response'? How does it feel when I kick the tires? If that incredibly basic request/response is easy, it makes me feel like a successful reader. It will certainly get trickier, but I have one easy win under my belt. I can do this - no problem. If the 'zero to hello world' seems too complicated, well, that was the easiest thing of all the things I will need to do. It's only going to get harder as I try to reflect more complicated use cases and look at more complicated representations. I'm defeated before I begin.
  8. If your documentation is bad, there are a couple of things users might think. They might think that if your documentation is shoddy, your product is also shoddy. That the quality of the documentation accurately reflects the state of your service. In that case, they will doubt that your product can actually deliver on what you promised in your much swankier marketing materials. Okay, let's call that the worse case. That your bad documentation undermines any perception of a quality product. That sounds pretty bad.
  9. In the very best case, they give you the benefit of the doubt that your product does, in fact, work as advertised (and as well as advertised). In that case, you must not care about engaging developers as an audience. Their success and ease of product use is not important to you as a business. And that's not nice either. That's our best case. That your readers assume that everything else is great, just not this one incredibly essential part of their engagement with you and your company. And that they are not important to you. So much so that you have not bothered to write down the answers to questions you know they will have. 'What are the resources I can call and how do I call them?' What will happen when they come up with other, more meaningful, questions? Harder questions? What kind of support should they expect in those cases?
  10. If you have bad documentation, it’s not the end of the world. When I started in my group, we emailed developers a 35-page PDF document. There was no central location where the PDF was available, so people were always asking each other “is this the latest one? Do you have the latest one?” which was kind of a joke, because the document had no relation to our service versioning.
  11. It had an index. So, that was our documentation. We’ve come a long way since then, but that’s where we started.
  12. So. Good documentation is good. Super. What makes documentation good? A feature-complete, self-service resource that provides users with all the information necessary to build a painless, maintainable, successful integration to your service. What do I mean here? Feature-complete. everything is documented. even things you don't really want people to use. If it's out there, and they could possibly find it, it needs to be documented. If you don't want them to use something, by all means, document that. Self-service. users can find what they need without assistance. Painless. that's bringing back our 'zero to hello world' concept, but bigger. This is all the things that are undeniably necessary (technical references), as well as the things that make integration much much easier. Things like sample code, tutorials that cover use cases, etc. This is the big content driver, we'll talk about this more later. Maintainable. in two years when some other dev opens up the integration code, will they be able to see what your API did then? Will they be able to make enhancements? Will they be able to udpate to the latest API version? Are you, as a documenter, confident that you are updating everything that needs to be updated when a new release is pushed to production? Successful. if there are industry concerns that you have - if there are particular use cases that require special attention, you need to make sure to cover all of them. If you are payment processor, and you need to impress upon your users the need to not store credit card information, that's something that needs to be included.
  13. So. Good documentation is good. Super. What makes documentation good? A feature-complete, self-service resource that provides users with all the information necessary to build a painless, maintainable, successful integration to your service. What do I mean here? Feature-complete. everything is documented. even things you don't really want people to use. If it's out there, and they could possibly find it, it needs to be documented. If you don't want them to use something, by all means, document that. Self-service. users can find what they need without assistance. Painless. that's bringing back our 'zero to hello world' concept, but bigger. This is all the things that are undeniably necessary (technical references), as well as the things that make integration much much easier. Things like sample code, tutorials that cover use cases, etc. This is the big content driver, we'll talk about this more later. Maintainable. in two years when some other dev opens up the integration code, will they be able to see what your API did then? Will they be able to make enhancements? Will they be able to udpate to the latest API version? Are you, as a documenter, confident that you are updating everything that needs to be updated when a new release is pushed to production? Successful. if there are industry concerns that you have - if there are particular use cases that require special attention, you need to make sure to cover all of them. If you are payment processor, and you need to impress upon your users the need to not store credit card information, that's something that needs to be included.
  14. So. Good documentation is good. Super. What makes documentation good? A feature-complete, self-service resource that provides users with all the information necessary to build a painless, maintainable, successful integration to your service. What do I mean here? Feature-complete. everything is documented. even things you don't really want people to use. If it's out there, and they could possibly find it, it needs to be documented. If you don't want them to use something, by all means, document that. Self-service. users can find what they need without assistance. Painless. that's bringing back our 'zero to hello world' concept, but bigger. This is all the things that are undeniably necessary (technical references), as well as the things that make integration much much easier. Things like sample code, tutorials that cover use cases, etc. This is the big content driver, we'll talk about this more later. Maintainable. in two years when some other dev opens up the integration code, will they be able to see what your API did then? Will they be able to make enhancements? Will they be able to update to the latest API version? Are you, as a documenter, confident that you are updating everything that needs to be updated when a new release is pushed to production? Successful. if there are industry concerns that you have - if there are particular use cases that require special attention, you need to make sure to cover all of them. If you are payment processor, and you need to impress upon your users the need to not store credit card information, that's something that needs to be included.
  15. So. Good documentation is good. Super. What makes documentation good? A feature-complete, self-service resource that provides users with all the information necessary to build a painless, maintainable, successful integration to your service. What do I mean here? Feature-complete. everything is documented. even things you don't really want people to use. If it's out there, and they could possibly find it, it needs to be documented. If you don't want them to use something, by all means, document that. Self-service. users can find what they need without assistance. Painless. that's bringing back our 'zero to hello world' concept, but bigger. This is all the things that are undeniably necessary (technical references), as well as the things that make integration much much easier. Things like sample code, tutorials that cover use cases, etc. This is the big content driver, we'll talk about this more later. Maintainable. in two years when some other dev opens up the integration code, will they be able to see what your API did then? Will they be able to make enhancements? Will they be able to update to the latest API version? Are you, as a documenter, confident that you are updating everything that needs to be updated when a new release is pushed to production? Successful. if there are industry concerns that you have - if there are particular use cases that require special attention, you need to make sure to cover all of them. If you are payment processor, and you need to impress upon your users the need to not store credit card information, that's something that needs to be included.
  16. So. Good documentation is good. Super. What makes documentation good? A feature-complete, self-service resource that provides users with all the information necessary to build a painless, maintainable, successful integration to your service. What do I mean here? Feature-complete. everything is documented. even things you don't really want people to use. If it's out there, and they could possibly find it, it needs to be documented. If you don't want them to use something, by all means, document that. Self-service. users can find what they need without assistance. Painless. that's bringing back our 'zero to hello world' concept, but bigger. This is all the things that are undeniably necessary (technical references), as well as the things that make integration much much easier. Things like sample code, tutorials that cover use cases, etc. This is the big content driver, we'll talk about this more later. Maintainable. in two years when some other dev opens up the integration code, will they be able to see what your API did then? Will they be able to make enhancements? Will they be able to update to the latest API version? Are you, as a documenter, confident that you are updating everything that needs to be updated when a new release is pushed to production? Successful. if there are industry concerns that you have - if there are particular use cases that require special attention, you need to make sure to cover all of them. If you are payment processor, and you need to impress upon your users the need to not store credit card information, that's something that needs to be included.
  17. So. Good documentation is good. Super. What makes documentation good? A feature-complete, self-service resource that provides users with all the information necessary to build a painless, maintainable, successful integration to your service. What do I mean here? Feature-complete. everything is documented. even things you don't really want people to use. If it's out there, and they could possibly find it, it needs to be documented. If you don't want them to use something, by all means, document that. Self-service. users can find what they need without assistance. Painless. that's bringing back our 'zero to hello world' concept, but bigger. This is all the things that are undeniably necessary (technical references), as well as the things that make integration much much easier. Things like sample code, tutorials that cover use cases, etc. This is the big content driver, we'll talk about this more later. Maintainable. in two years when some other dev opens up the integration code, will they be able to see what your API did then? Will they be able to make enhancements? Will they be able to update to the latest API version? Are you, as a documenter, confident that you are updating everything that needs to be updated when a new release is pushed to production? Successful. if there are industry concerns that you have - if there are particular use cases that require special attention, you need to make sure to cover all of them. If you are payment processor, and you need to impress upon your users the need to not store credit card information, that's something that needs to be included.
  18. If this is the goal we're trying to achieve, what are the elements we can use to reach this goal? I'm going to talk about five different types of documentation. You should offer all of them. Technical reference This is what most people think of when they think of API documentation. What are the bare facts of calling your API? what are the resources, methods, parameters, so on. Sample code/code snippets These are copy-pasteable bits of code that demonstrate a particular use. Just one call - not a whole use case. Tutorials (written, video, interactive) Explanation of particular use cases or workflows Application samples Sample code with context. This is often a (bare-bones) stand-alone application that includes integration to your API. Q&A resources Somewhere people can go when they're unsure.
  19. A description of something should follow the structure of the thing itself. In that way, even the structure of your documentation can imply the structure of your API. After all, your documentation is the human-discoverable representation of your API. If your API is well-designed and well-structured, if it really is intuitive, you can avoid some amount of volume in your documentation. Not because those things don't need documenting - they do! They're just documented elsewhere. The biggest pain points in usability are when things don't do what your user expects - you need to document those things incredibly carefully.
  20. Stellar is a decentralized protocol for sending and receiving money in any pair of currencies
  21. Documentation is iterative. And even a little can go a long way.
  22. Remember that PDF documentation?
  23. 3 ½ years ago…
  24. 86 cases (last August) to 12 cases (last month)
  25. With all these tools and resources available to you, I hope you’re inspired to brush up your documentation!