Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

WHY SHOULD YOU CARE? Thursday, October 24, 13

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

Case Studies Thursday, October 24, 13

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

Automated Key Signup Thursday, October 24, 13

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

Downloads for Every Environment Thursday, October 24, 13

Slide 21

Slide 21 text

Client Libraries for Every Language Thursday, October 24, 13

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

Documentation should include Runnable Code Thursday, October 24, 13

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

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

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

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

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

GETTING FEEDBACK Thursday, October 24, 13

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

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

Slide 39

Slide 39 text

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

Slide 40

Slide 40 text

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

Slide 41

Slide 41 text

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