Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Developer Experience

Pamela Fox
October 24, 2013

Developer Experience

A talk at API Strategy conference, 2013, about what developer experience is and how to make it not suck.

Pamela Fox

October 24, 2013
Tweet

More Decks by Pamela Fox

Other Decks in Technology

Transcript

  1. THE DEVELOPER EXPERIENCE WHAT IT IS WHY IT MATTERS HOW

    TO MAKE IT NOT SUCK pamelafox.org @pamelafox pamelafox@ twitter.com/ gmail.com http:// Thursday, October 24, 13
  2. USER EXPERIENCE “The sum of all interactions and events, both

    positive and negative, between a user and a web site.” User Experience (Website, Mobile App, etc.) PROVIDER USER Thursday, October 24, 13
  3. Do I want to use it? How do I sign

    up? How do I get started? How do I use it? How do I get help? USER EXPERIENCE Thursday, October 24, 13
  4. DEVELOPER EXPERIENCE “The sum of all interactions and events, both

    positive and negative, between a developer and a library, tool, or API.” Developer Experience (Library, Tool, API, ...) PROVIDER CONSUMER Thursday, October 24, 13
  5. Do I want to use it? How do I sign

    up? How do I use it? How do I get help? DEVELOPER EXPERIENCE How do I get started? Thursday, October 24, 13
  6. ...WHY DO I CARE? CONSUMER PROVIDER Childhood University Hermit 2002

    2011 2006 2012 Google Coursera Khan Academy 2013 CONSUMER PROVIDER Thursday, October 24, 13
  7. ...WHY DO I CARE? CONSUMER PROVIDER Childhood University Hermit 2002

    2011 2006 2012 Google Coursera Khan Academy 2013 CONSUMER PROVIDER Thursday, October 24, 13
  8. WHY DOES DX MATTER? I have to use X. Bad

    Experience Low Barrier for Leaving Bare Minimum Usage Thursday, October 24, 13
  9. WHY DOES DX MATTER? I like to use X. Good

    Experience Innovative Usage External Evangelism Thursday, October 24, 13
  10. Can I safely build a business on top of it?

    Licensing Pricing Stability Thursday, October 24, 13
  11. How do I sign up? No signup! No key! Best

    answer: Thursday, October 24, 13
  12. How do I use it? How do I learn how

    to use it? Do I enjoy using it? Thursday, October 24, 13
  13. Documentation How do I learn how to use it? Comprehensive

    Easy to Navigate Reference & Guide Easy to Search Running Code Feedback Loop Thursday, October 24, 13
  14. Documentation When in doubt, document. Comprehensive should be Every method,

    parameter, return value, defaults, implementation notes, errors, side effects, deprecation notices. Thursday, October 24, 13
  15. API Design: HTTP Familiarity Simplicity Compatibility Debuggability Use standards (when

    it makes sense) REST, RPC, OAuth. Support both JSON & XML. Give meaningful error messages. Don’t throttle. Most importantly: Never ever use SOAP. Thursday, October 24, 13
  16. API Design: JavaScript Familiarity Simplicity Compatibility Debuggability Use object literals

    for method options, not additional arguments. Use a namespace. Don’t extend native objects. Offer a debugging extension. Offer common methods in core API, everything else as plugins. Do all that while keeping file size small. Thursday, October 24, 13
  17. Forum Email Subscription & Feeds Spam Handling & Moderation Poster

    Statistics & Badging Thursday, October 24, 13