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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  8. WHY SHOULD YOU CARE?
    Thursday, October 24, 13

    View Slide

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

    View Slide

  10. WHY DOES DX MATTER?
    I like to use X.
    Good Experience
    Innovative Usage External Evangelism
    Thursday, October 24, 13

    View Slide

  11. LET’S BREAK IT DOWN...
    Thursday, October 24, 13

    View Slide

  12. Do I want to use it?
    Thursday, October 24, 13

    View Slide

  13. Documentation Interactive Explorer
    Does it have the features I need?
    Thursday, October 24, 13

    View Slide

  14. Can I safely build a business on top of it?
    Licensing Pricing
    Stability
    Thursday, October 24, 13

    View Slide

  15. Case Studies
    Thursday, October 24, 13

    View Slide

  16. How do I sign up?
    Thursday, October 24, 13

    View Slide

  17. How do I sign up?
    No signup! No key!
    Best answer:
    Thursday, October 24, 13

    View Slide

  18. Automated Key Signup
    Thursday, October 24, 13

    View Slide

  19. How do I get started?
    Thursday, October 24, 13

    View Slide

  20. Downloads for Every Environment
    Thursday, October 24, 13

    View Slide

  21. Client Libraries for Every Language
    Thursday, October 24, 13

    View Slide

  22. “Hello World”
    (From 0 to 60 in 15 minutes)
    Thursday, October 24, 13

    View Slide

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

    View Slide

  24. 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

    View Slide

  25. 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

    View Slide

  26. Documentation
    should include both Reference & Guide
    Thursday, October 24, 13

    View Slide

  27. Documentation
    should include Runnable Code
    Thursday, October 24, 13

    View Slide

  28. Documentation should be Easy to Navigate
    Thursday, October 24, 13

    View Slide

  29. Documentation should be Easy to Search
    Thursday, October 24, 13

    View Slide

  30. Documentation should be Easy to Search
    on Google, too
    Thursday, October 24, 13

    View Slide

  31. Familiarity
    Do I enjoy using it?
    API Design
    Simplicity
    Compatibility
    Debuggability
    Thursday, October 24, 13

    View Slide

  32. 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

    View Slide

  33. 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

    View Slide

  34. How do I get help?
    Thursday, October 24, 13

    View Slide

  35. Forum
    Email Subscription
    & Feeds
    Spam Handling &
    Moderation
    Poster Statistics
    & Badging
    Thursday, October 24, 13

    View Slide

  36. GETTING FEEDBACK
    Thursday, October 24, 13

    View Slide

  37. Documentation
    can have
    Comments
    can have
    Feedback Form
    Thursday, October 24, 13

    View Slide

  38. Issue Tracker
    Comments
    Status
    Votes
    Notification
    Categories
    Search
    Thursday, October 24, 13

    View Slide

  39. BUT WAIT, THERE’S MORE!
    http://developer-support-handbook.org
    http://blog.pamelafox.org/search/label/developerexperience
    http://blog.programmableweb.com
    http://developer-evangelism.com/
    Thursday, October 24, 13

    View Slide

  40. PROVIDERS:
    1. Care
    2. Prioritize
    3. Improve
    I
    Thursday, October 24, 13

    View Slide

  41. THE DEVELOPER EXPERIENCE
    pamelafox.org @pamelafox pamelafox@
    twitter.com/
    gmail.com
    http://
    IT MATTERS
    MAKE IT NOT SUCK
    Thursday, October 24, 13

    View Slide