SlideShare a Scribd company logo
1 of 80
Download to read offline
10ReasonsDevelopers
HateYourAPI
(andwhattodoaboutit)
John	
  Musser	
  @johnmusser	
  	
  /	
  	
  API	
  Science	
  @apiscience	
  
GlueCon,	
  2014	
  
(private	
  beta)	
  
Your
documentation
sucks
REASON #1
ISSUES
Static
Unloved
Nogettingstarted
Inaccurate
Unprofessional
Incomplete
Outofdate
Bigpicture
https://www.twilio.com/docs!
FIX #1
Clarity
https://stripe.com/docs/api!
FIX #2
Find-ability
https://stripe.com/docs/!
FIX #3
LiveDocsFIX #4
Interactivedocumentation,
like...
Swagger
https://github.com/wordnik/swagger-core!
I/ODocs
https://github.com/mashery/iodocs!
RAML
RESTful API Modeling Language!
raml.org!
Yourcommunication
skillsneedwork
REASON #2
Youdon’tkeep
yourdevelopers
informed
REASON #2B
ISSUES
WheredoIgetsupportagain?
Toomany/fewchannels
Infrequentcommunication
Youbrokemycodewithoutwarning
ChangeLog
http://developer.github.com/changes/!
FIX #1
Roadmap
https://developers.facebook.com/roadmap/!
FIX #2
ReleaseNotes
http://techblog.constantcontact.com/api/release-updates!
FIX #3
Blog
http://aws.typepad.com/!
FIX #4
Forum
http://stackoverflow.com/questions/tagged/soundcloud!
FIX #5
EmailFIX #6
Youdon’t
makeiteasy
REASON #3
ISSUES
HowdoIgetmykeys?
Nogettingstartedguide
NoSDKs/samplesinmylanguage
Nothingtocopy&paste…
No“helloworld”
Whatdoyoudo?
https://www.twilio.com/voice/api!
FIX #1
Fastsignup
https://manage.stripe.com/register!
FIX #2
(so fast, you can even skip this
step till you’re convinced…)
The1-2-3
http://developer.constantcontact.com/get-started.html!
FIX #3
Quickstarts
https://www.twilio.com/docs/quickstart!
FIX #4
Free&Trial
https://parse.com/plans!
FIX #5
CopiousSDKsFIX #6
UseGitHub
https://github.com/OneNoteDev!
FIX #7
Lawyers
REASON #4
ISSUES
Commercialrestrictions
Notsetupforwin-win
NoSLA
Ratelimit/throttlingissues
It’sallaboutyou
BeclearFIX #1
http://500px.com/terms!
SetthetoneFIX #2
https://www.etsy.com/developers/terms-of-use!
Shorter=BetterFIX #3
http://googledevelopers.blogspot.com!
“Beginning	
  today,	
  most	
  of	
  our	
  APIs	
  use	
  a	
  single	
  Terms	
  of	
  
Service.	
  We	
  have	
  rewri%en	
  these	
  terms	
  from	
  the	
  ground	
  
up	
  with	
  the	
  goals	
  of	
  making	
  them	
  concise	
  and	
  easier	
  to	
  
understand.	
  	
  
….	
  
In	
  this	
  rewrite,	
  we	
  have	
  removed	
  over	
  125,000	
  words	
  
from	
  the	
  combined	
  previous	
  terms	
  
…”	
  
Page	
  23	
  
ThinklongtermFIX #4
https://developers.google.com/youtube/terms!
Sharethewealth
http://slideshare.net/jmusser!
FIX #5
YourAPIis
unreliable
REASON #5
YourAPIis
slow,buggyand
unreliable
REASON #5
ISSUES
Bugs
Unannouncedchanges
Performanceissues
APIoutages
Inconsistency
Change
(planned)
BugOutage
APIs can break
Rate limit
ToS violation
Change
(undocumented)
Provider biz
change
Network
Breaking bad
Don’t let this happen to you
GET http://api.yourcompany.com/resource/142!
!
Or this…
GET http://api.yourcompany.com/resource/142!
!
StatusPage
http://status.aws.amazon.com/!
FIX #1
MonitorFIX #2
http://www.apiscience.com!
Don’thide
http://blog.akismet.com!
FIX #3
Youdon’tgiveme
thetoolstohelp
mesucceed
REASON #6
ISSUES
Testconsole?
OAuth,ouch
HowdoIdebug?
What’smyusage?Spend?
DevDashboard
https://manage.stripe.com/test/dashboard!
FIX #1
Debug/Log
www.twilio.com/user/account/developer-tools/app-monitor!
FIX #2
TestSandbox
https://www.twilio.com/user/account!
FIX #3
Playground
https://developers.google.com/oauthplayground!
FIX #4
TestConsole
https://apigee.com/providers!
FIX #5
You’remarketing
tome,
nothelpingme
REASON #7
ISSUES
Youdon’tlisten
Code,notwhitepapers
Developershatemarketing
Self-service,not“callus”
Evangelists
http://sendgrid.com/developers!
FIX #1
EventsFIX #2
https://www.twilio.com/conference!
HackathonsFIX #3
YourAPIistoo
complex
REASON #8
Youhaveyourown
customs
(auth,protocol,formats)
REASON #8B
ISSUES
Terse,crypticerrormessages
NoJSONsupport
Your“REST”APIdoesn’tuseHTTPrules
YoustilluseSOAP
UseRESTFIX #1
API protocols and styles
Based on directory of 5,100 web APIs listed at ProgrammableWeb, February 2012
UseJSONFIX #2
Percentage of APIs supporting JSON vs XML
Based on directory 11,000 web APIs listed at ProgrammableWeb, Dec 2013
XML vs. JSON in new APIs
Based on new APIs listed at ProgrammableWeb in 2013
BepragmaticFIX #3
http://apigee.com/about/content/web-api-design!
Web API Design,
Brian Mulloy
YourTTFHW
istoolong
REASON #9
What’s your TTFHW?
Time To First “Hello World”
aka: how long from zero to 60?
GreatDXFIX #1
http://developerexperience.org!
FIX #2
Allprior
“fixes”
inthistalk:-)
Youhaven’t
learned
REASON #10
Youhaven’t
learned
(fromthebest)
REASON #10
UserolemodelsFIX #1
Twilio,Stripe,Github,
SendGrid
KeeplearningFIX #2
apidays.io	
  apistrategyconference.com	
  
www.gluecon.com	
  
apicon.programmableweb.com	
  iloveapis2013.com	
   apiconference.com	
  
FIX #3
Remember:
An API is a journey,
not a destination
Thank You
QuesMons,	
  ideas,	
  comments?
john@apiscience.com	
  
@johnmusser	
  
	
  
Photo	
  credits	
  
Race	
  car:	
  hQp://www.flickr.com/photos/lim_lik_wei/3270522646/	
  
Winding	
  road:	
  hQp://www.flickr.com/photos/maQhewthecoolguy/7518274258/	
  
	
  
	
  

More Related Content

What's hot

API Maturity Model (Webcast with Accenture)
API Maturity Model (Webcast with Accenture)API Maturity Model (Webcast with Accenture)
API Maturity Model (Webcast with Accenture)Apigee | Google Cloud
 
API Business Models
API Business ModelsAPI Business Models
API Business ModelsJohn Musser
 
WSO2 API Manager - Product Overview
WSO2 API Manager - Product OverviewWSO2 API Manager - Product Overview
WSO2 API Manager - Product OverviewWSO2
 
API Best Practices
API Best PracticesAPI Best Practices
API Best PracticesSai Koppala
 
API Best Practices Webinar: Metrics - What to Measure
API Best Practices Webinar:  Metrics - What to MeasureAPI Best Practices Webinar:  Metrics - What to Measure
API Best Practices Webinar: Metrics - What to MeasureApigee | Google Cloud
 
API Management Within a Microservices Architecture
API Management Within a Microservices Architecture API Management Within a Microservices Architecture
API Management Within a Microservices Architecture Nadeesha Gamage
 
apidays Paris 2022 - API design best practices, Ryan Clifford & Ros Bennis, F...
apidays Paris 2022 - API design best practices, Ryan Clifford & Ros Bennis, F...apidays Paris 2022 - API design best practices, Ryan Clifford & Ros Bennis, F...
apidays Paris 2022 - API design best practices, Ryan Clifford & Ros Bennis, F...apidays
 
The Five API Monetization Models - Rob Zazueta, RESTFest 2016
The Five API Monetization Models - Rob Zazueta, RESTFest 2016The Five API Monetization Models - Rob Zazueta, RESTFest 2016
The Five API Monetization Models - Rob Zazueta, RESTFest 2016Rob Zazueta
 
What do you mean by “API as a Product”?
What do you mean by “API as a Product”?What do you mean by “API as a Product”?
What do you mean by “API as a Product”?Nordic APIs
 
What is API Product Management by PayPal Director of Product
What is API Product Management by PayPal Director of ProductWhat is API Product Management by PayPal Director of Product
What is API Product Management by PayPal Director of ProductProduct School
 
API Frenzy: API Strategy 101
API Frenzy: API Strategy 101API Frenzy: API Strategy 101
API Frenzy: API Strategy 101Akana
 
Introduction to API
Introduction to APIIntroduction to API
Introduction to APIrajnishjha29
 

What's hot (20)

Architecture for the API-enterprise
Architecture for the API-enterpriseArchitecture for the API-enterprise
Architecture for the API-enterprise
 
API Maturity Model (Webcast with Accenture)
API Maturity Model (Webcast with Accenture)API Maturity Model (Webcast with Accenture)
API Maturity Model (Webcast with Accenture)
 
API Business Models
API Business ModelsAPI Business Models
API Business Models
 
API Docs with OpenAPI 3.0
API Docs with OpenAPI 3.0API Docs with OpenAPI 3.0
API Docs with OpenAPI 3.0
 
WSO2 API Manager - Product Overview
WSO2 API Manager - Product OverviewWSO2 API Manager - Product Overview
WSO2 API Manager - Product Overview
 
API Best Practices
API Best PracticesAPI Best Practices
API Best Practices
 
Apigee Edge Overview and Roadmap
Apigee Edge Overview and RoadmapApigee Edge Overview and Roadmap
Apigee Edge Overview and Roadmap
 
API Best Practices Webinar: Metrics - What to Measure
API Best Practices Webinar:  Metrics - What to MeasureAPI Best Practices Webinar:  Metrics - What to Measure
API Best Practices Webinar: Metrics - What to Measure
 
An Introduction To REST API
An Introduction To REST APIAn Introduction To REST API
An Introduction To REST API
 
API Testing for everyone.pptx
API Testing for everyone.pptxAPI Testing for everyone.pptx
API Testing for everyone.pptx
 
API Management Within a Microservices Architecture
API Management Within a Microservices Architecture API Management Within a Microservices Architecture
API Management Within a Microservices Architecture
 
Effective API Design
Effective API DesignEffective API Design
Effective API Design
 
apidays Paris 2022 - API design best practices, Ryan Clifford & Ros Bennis, F...
apidays Paris 2022 - API design best practices, Ryan Clifford & Ros Bennis, F...apidays Paris 2022 - API design best practices, Ryan Clifford & Ros Bennis, F...
apidays Paris 2022 - API design best practices, Ryan Clifford & Ros Bennis, F...
 
Guide to an API-first Strategy
Guide to an API-first StrategyGuide to an API-first Strategy
Guide to an API-first Strategy
 
Api presentation
Api presentationApi presentation
Api presentation
 
The Five API Monetization Models - Rob Zazueta, RESTFest 2016
The Five API Monetization Models - Rob Zazueta, RESTFest 2016The Five API Monetization Models - Rob Zazueta, RESTFest 2016
The Five API Monetization Models - Rob Zazueta, RESTFest 2016
 
What do you mean by “API as a Product”?
What do you mean by “API as a Product”?What do you mean by “API as a Product”?
What do you mean by “API as a Product”?
 
What is API Product Management by PayPal Director of Product
What is API Product Management by PayPal Director of ProductWhat is API Product Management by PayPal Director of Product
What is API Product Management by PayPal Director of Product
 
API Frenzy: API Strategy 101
API Frenzy: API Strategy 101API Frenzy: API Strategy 101
API Frenzy: API Strategy 101
 
Introduction to API
Introduction to APIIntroduction to API
Introduction to API
 

Similar to Ten Reasons Developers Hate Your API

もし青森の女子WebデザイナーがAndroidと出会ったら。
もし青森の女子WebデザイナーがAndroidと出会ったら。もし青森の女子WebデザイナーがAndroidと出会ったら。
もし青森の女子WebデザイナーがAndroidと出会ったら。keiko kudo
 
React native vs flutter
React native vs flutterReact native vs flutter
React native vs flutterJhonthSmith
 
JBoss Forge - Breaking new ground in developer productivity
JBoss Forge - Breaking new ground in developer productivityJBoss Forge - Breaking new ground in developer productivity
JBoss Forge - Breaking new ground in developer productivityVineet Reynolds
 
Build your own Language - Why and How?
Build your own Language - Why and How?Build your own Language - Why and How?
Build your own Language - Why and How?Markus Voelter
 
Faster Secure Software Development with Continuous Deployment - PH Days 2013
Faster Secure Software Development with Continuous Deployment - PH Days 2013Faster Secure Software Development with Continuous Deployment - PH Days 2013
Faster Secure Software Development with Continuous Deployment - PH Days 2013Nick Galbreath
 
The Ring programming language version 1.5.1 book - Part 4 of 180
The Ring programming language version 1.5.1 book - Part 4 of 180The Ring programming language version 1.5.1 book - Part 4 of 180
The Ring programming language version 1.5.1 book - Part 4 of 180Mahmoud Samir Fayed
 
Single Page Web Apps
Single Page Web AppsSingle Page Web Apps
Single Page Web AppsJan Monschke
 
Awesome application in 2014
Awesome application in 2014Awesome application in 2014
Awesome application in 2014Codemotion
 
FAKE (F# Make) & Automation
FAKE (F# Make) & AutomationFAKE (F# Make) & Automation
FAKE (F# Make) & AutomationSergey Tihon
 
The Ring programming language version 1.5.2 book - Part 5 of 181
The Ring programming language version 1.5.2 book - Part 5 of 181The Ring programming language version 1.5.2 book - Part 5 of 181
The Ring programming language version 1.5.2 book - Part 5 of 181Mahmoud Samir Fayed
 
What Are Your Options If You Can’t Use Flutter_.pdf
What Are Your Options If You Can’t Use Flutter_.pdfWhat Are Your Options If You Can’t Use Flutter_.pdf
What Are Your Options If You Can’t Use Flutter_.pdfMoon Technolabs Pvt. Ltd.
 
The Ring programming language version 1.5.4 book - Part 5 of 185
The Ring programming language version 1.5.4 book - Part 5 of 185The Ring programming language version 1.5.4 book - Part 5 of 185
The Ring programming language version 1.5.4 book - Part 5 of 185Mahmoud Samir Fayed
 
The Ring programming language version 1.10 book - Part 6 of 212
The Ring programming language version 1.10 book - Part 6 of 212The Ring programming language version 1.10 book - Part 6 of 212
The Ring programming language version 1.10 book - Part 6 of 212Mahmoud Samir Fayed
 
Converging Big Data and Application Infrastructure by Steven Poutsy
Converging Big Data and Application Infrastructure by Steven PoutsyConverging Big Data and Application Infrastructure by Steven Poutsy
Converging Big Data and Application Infrastructure by Steven PoutsyBig Data Spain
 
PhoneGap/PhoneGap Build - Amsterdam Adobe Camp
PhoneGap/PhoneGap Build - Amsterdam Adobe CampPhoneGap/PhoneGap Build - Amsterdam Adobe Camp
PhoneGap/PhoneGap Build - Amsterdam Adobe CampMihai Corlan
 
The Ring programming language version 1.5.3 book - Part 5 of 184
The Ring programming language version 1.5.3 book - Part 5 of 184The Ring programming language version 1.5.3 book - Part 5 of 184
The Ring programming language version 1.5.3 book - Part 5 of 184Mahmoud Samir Fayed
 
Which Programming Languages To Choose For Android App Development_.pdf
Which Programming Languages To Choose For Android App Development_.pdfWhich Programming Languages To Choose For Android App Development_.pdf
Which Programming Languages To Choose For Android App Development_.pdfOZONESOFT Solutions
 

Similar to Ten Reasons Developers Hate Your API (20)

もし青森の女子WebデザイナーがAndroidと出会ったら。
もし青森の女子WebデザイナーがAndroidと出会ったら。もし青森の女子WebデザイナーがAndroidと出会ったら。
もし青森の女子WebデザイナーがAndroidと出会ったら。
 
React native vs flutter
React native vs flutterReact native vs flutter
React native vs flutter
 
JBoss Forge - Breaking new ground in developer productivity
JBoss Forge - Breaking new ground in developer productivityJBoss Forge - Breaking new ground in developer productivity
JBoss Forge - Breaking new ground in developer productivity
 
Build your own Language - Why and How?
Build your own Language - Why and How?Build your own Language - Why and How?
Build your own Language - Why and How?
 
Faster Secure Software Development with Continuous Deployment - PH Days 2013
Faster Secure Software Development with Continuous Deployment - PH Days 2013Faster Secure Software Development with Continuous Deployment - PH Days 2013
Faster Secure Software Development with Continuous Deployment - PH Days 2013
 
The Ring programming language version 1.5.1 book - Part 4 of 180
The Ring programming language version 1.5.1 book - Part 4 of 180The Ring programming language version 1.5.1 book - Part 4 of 180
The Ring programming language version 1.5.1 book - Part 4 of 180
 
Flutter study jam 2019
Flutter study jam 2019Flutter study jam 2019
Flutter study jam 2019
 
Single Page Web Apps
Single Page Web AppsSingle Page Web Apps
Single Page Web Apps
 
Awesome application in 2014
Awesome application in 2014Awesome application in 2014
Awesome application in 2014
 
FAKE (F# Make) & Automation
FAKE (F# Make) & AutomationFAKE (F# Make) & Automation
FAKE (F# Make) & Automation
 
The Ring programming language version 1.5.2 book - Part 5 of 181
The Ring programming language version 1.5.2 book - Part 5 of 181The Ring programming language version 1.5.2 book - Part 5 of 181
The Ring programming language version 1.5.2 book - Part 5 of 181
 
Don't screw it up! How to build durable API
Don't screw it up! How to build durable API Don't screw it up! How to build durable API
Don't screw it up! How to build durable API
 
What Are Your Options If You Can’t Use Flutter_.pdf
What Are Your Options If You Can’t Use Flutter_.pdfWhat Are Your Options If You Can’t Use Flutter_.pdf
What Are Your Options If You Can’t Use Flutter_.pdf
 
The Ring programming language version 1.5.4 book - Part 5 of 185
The Ring programming language version 1.5.4 book - Part 5 of 185The Ring programming language version 1.5.4 book - Part 5 of 185
The Ring programming language version 1.5.4 book - Part 5 of 185
 
The Ring programming language version 1.10 book - Part 6 of 212
The Ring programming language version 1.10 book - Part 6 of 212The Ring programming language version 1.10 book - Part 6 of 212
The Ring programming language version 1.10 book - Part 6 of 212
 
Converging Big Data and Application Infrastructure by Steven Poutsy
Converging Big Data and Application Infrastructure by Steven PoutsyConverging Big Data and Application Infrastructure by Steven Poutsy
Converging Big Data and Application Infrastructure by Steven Poutsy
 
PhoneGap/PhoneGap Build - Amsterdam Adobe Camp
PhoneGap/PhoneGap Build - Amsterdam Adobe CampPhoneGap/PhoneGap Build - Amsterdam Adobe Camp
PhoneGap/PhoneGap Build - Amsterdam Adobe Camp
 
The Ring programming language version 1.5.3 book - Part 5 of 184
The Ring programming language version 1.5.3 book - Part 5 of 184The Ring programming language version 1.5.3 book - Part 5 of 184
The Ring programming language version 1.5.3 book - Part 5 of 184
 
ruby pentest
ruby pentestruby pentest
ruby pentest
 
Which Programming Languages To Choose For Android App Development_.pdf
Which Programming Languages To Choose For Android App Development_.pdfWhich Programming Languages To Choose For Android App Development_.pdf
Which Programming Languages To Choose For Android App Development_.pdf
 

More from John Musser

What Makes a Great Open API?
What Makes a Great Open API?What Makes a Great Open API?
What Makes a Great Open API?John Musser
 
Open APIs: What's Hot, What's Not?
Open APIs: What's Hot, What's Not?Open APIs: What's Hot, What's Not?
Open APIs: What's Hot, What's Not?John Musser
 
Open APIs: What's Hot, What's Not?
Open APIs: What's Hot, What's Not?Open APIs: What's Hot, What's Not?
Open APIs: What's Hot, What's Not?John Musser
 
Open APIs and the Semantic Web 2011
Open APIs and the Semantic Web 2011Open APIs and the Semantic Web 2011
Open APIs and the Semantic Web 2011John Musser
 
Open APIs - State of the Market 2011
Open APIs - State of the Market 2011Open APIs - State of the Market 2011
Open APIs - State of the Market 2011John Musser
 
Open API Ecosystem Overview: December 2010
Open API Ecosystem Overview: December 2010Open API Ecosystem Overview: December 2010
Open API Ecosystem Overview: December 2010John Musser
 
Open APIs: State of the Market, May 2010
Open APIs: State of the Market, May 2010Open APIs: State of the Market, May 2010
Open APIs: State of the Market, May 2010John Musser
 

More from John Musser (7)

What Makes a Great Open API?
What Makes a Great Open API?What Makes a Great Open API?
What Makes a Great Open API?
 
Open APIs: What's Hot, What's Not?
Open APIs: What's Hot, What's Not?Open APIs: What's Hot, What's Not?
Open APIs: What's Hot, What's Not?
 
Open APIs: What's Hot, What's Not?
Open APIs: What's Hot, What's Not?Open APIs: What's Hot, What's Not?
Open APIs: What's Hot, What's Not?
 
Open APIs and the Semantic Web 2011
Open APIs and the Semantic Web 2011Open APIs and the Semantic Web 2011
Open APIs and the Semantic Web 2011
 
Open APIs - State of the Market 2011
Open APIs - State of the Market 2011Open APIs - State of the Market 2011
Open APIs - State of the Market 2011
 
Open API Ecosystem Overview: December 2010
Open API Ecosystem Overview: December 2010Open API Ecosystem Overview: December 2010
Open API Ecosystem Overview: December 2010
 
Open APIs: State of the Market, May 2010
Open APIs: State of the Market, May 2010Open APIs: State of the Market, May 2010
Open APIs: State of the Market, May 2010
 

Ten Reasons Developers Hate Your API