creating a great developer experience through sdks

35
CREATING A GREAT DEVELOPER EXPERIENCE THROUGH SDKS

Upload: taylor-barnett

Post on 18-Jan-2017

46 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Creating a Great Developer Experience Through SDKs

CREATING A GREAT DEVELOPER EXPERIENCE

THROUGH SDKS

Page 2: Creating a Great Developer Experience Through SDKs

Developer Evangelist at Keen IO [email protected]

@taylor_atx

TAYLOR BARNETT

Page 3: Creating a Great Developer Experience Through SDKs

@taylor_atx

Page 4: Creating a Great Developer Experience Through SDKs

Collect & store data from users, websites, apps &

smart devices.

Query instantly to share results with teams &

customers, anywhere.

@taylor_atx

Page 5: Creating a Great Developer Experience Through SDKs

LET’S BE REAL ABOUT SDKS

@taylor_atx

Page 6: Creating a Great Developer Experience Through SDKs

Most API providers aren’t updating their SDKs enough

😞

@taylor_atx

Page 7: Creating a Great Developer Experience Through SDKs

Get the most attention when they are 🔥broken🔥

@taylor_atx

Page 8: Creating a Great Developer Experience Through SDKs

Many of SDKs are now open source, which is great, but…

@taylor_atx

Page 9: Creating a Great Developer Experience Through SDKs

There are a lot of great HTTP request libraries out there now

🎉

@taylor_atx

Page 10: Creating a Great Developer Experience Through SDKs

We could talk for a really long time about why using SDKs aren’t great

@taylor_atx

Page 11: Creating a Great Developer Experience Through SDKs

WHY SHOULD YOU PROVIDE SDKS?

@taylor_atx

Page 12: Creating a Great Developer Experience Through SDKs

Most of the time using an API is important, but peripheral to why the

software is being written

@taylor_atx

Page 13: Creating a Great Developer Experience Through SDKs

Your SDKs are your API

@taylor_atx

Page 14: Creating a Great Developer Experience Through SDKs

SDKs give quick feedback on how your API works

@taylor_atx

Page 15: Creating a Great Developer Experience Through SDKs

There’s a business case for putting resources into SDKs

@taylor_atx

Page 16: Creating a Great Developer Experience Through SDKs

OTHER REASONS

• When there’s no good built in HTTP request library

• Error handling

• Building clients with 100% API coverage

• Helping users with authentication

• Best practices with complex APIs

@taylor_atx

Page 17: Creating a Great Developer Experience Through SDKs

CREATING A GREAT DEVELOPER EXPERIENCE

@taylor_atx

Page 18: Creating a Great Developer Experience Through SDKs

PRODUCT VS COMMUNITY SDKS

• Clearly define the two to set better expectations

• If you don’t build them, Community SDKs will appear

• Leads to a scattered developer experience

• Community SDK bugs will appear in your Support channels

@taylor_atx

Page 19: Creating a Great Developer Experience Through SDKs

DOCUMENTATION

• Write the SDK documentation first

• Consistency

• Helps evaluate the experience

@taylor_atx

Page 20: Creating a Great Developer Experience Through SDKs

DOCUMENTATION

• Include sections for

• Troubleshooting, with common errors and issues users run into —> Your Support team will love you for this

• Changelog or release notes

@taylor_atx

Page 21: Creating a Great Developer Experience Through SDKs

SCARY WORLD OF DEPENDENCIES

• Help your users navigate it

• Users need to know changes between SDK versions

• Survey your options

😱

@taylor_atx

Page 22: Creating a Great Developer Experience Through SDKs

DANGERS OF NOT MAKING YOUR OWN SDKS

• Not eating your own dog food is dangerous

• Helps you understand the cost of building with your own API

• It’s also encouragement to add new API features into your SDK when they released, not later

@taylor_atx

Page 23: Creating a Great Developer Experience Through SDKs

NATIVE AS POSSIBLE

• Please do not auto generate SDKs badly from your API

• Example: Go find a Go developer to write your Go SDK

• Start with the languages that are the most popular for your target audience and that your team is familiar with

@taylor_atx

Page 24: Creating a Great Developer Experience Through SDKs

COMMON DATA STRUCTURES

• Avoid inconsistency in your users’ code

• Example: JSON is a great option for representing data

• Want to map well to data structures in many different languages

@taylor_atx

Page 25: Creating a Great Developer Experience Through SDKs

USAGE TRACKING

• Great opportunity to learn about your users

• Critical statistics for developing, maintaining, and improving your SDKs

• Every popular API company today is tracking this: SendGrid, Twilio, Stripe, Dropbox, etc.

@taylor_atx

📊

Page 26: Creating a Great Developer Experience Through SDKs

# Example from the Twilio Python module # https://github.com/twilio/twilio-python

user_agent = "twilio-python %s (python-%s)" % ( LIBRARY_VERSION, platform.python_version(), )

headers = { "User-Agent": user_agent, "Accept-Charset": "utf-8", }

USAGE TRACKING

@taylor_atx

Page 27: Creating a Great Developer Experience Through SDKs

EXAMPLES

@taylor_atx

Page 28: Creating a Great Developer Experience Through SDKs
Page 29: Creating a Great Developer Experience Through SDKs
Page 30: Creating a Great Developer Experience Through SDKs
Page 31: Creating a Great Developer Experience Through SDKs
Page 32: Creating a Great Developer Experience Through SDKs
Page 33: Creating a Great Developer Experience Through SDKs
Page 34: Creating a Great Developer Experience Through SDKs
Page 35: Creating a Great Developer Experience Through SDKs

💖 THANK YOU!

[email protected] @taylor_atx