the developer experience

60
The Developer Experience WHAT IT IS WHY IT MATTERS HOW TO MAKE IT NOT SUCK pamelafox.org @pamelafox pamelafox@ twitter.com/ gmail.com http://

Upload: atlassian

Post on 19-Jun-2015

1.919 views

Category:

Technology


1 download

DESCRIPTION

We all know what “user experience” is and we know that it’s important. But we rarely talk about the “developer experience” - what we all go through each time we try to use a developer tool, library, or API. How do we decide what tool to use? Is it easy to integrate with our development environment? How flexible is the API? Where do we go when something goes wrong? Those are the sort of questions that we can ask to understand what it’s like for a developer to use a product - and where it can be improved. Whether you simply use developer products or you actually build one yourself, you should walk away from this talk with ideas on how to make a great developer experience - and why it matters.

TRANSCRIPT

Page 1: The Developer Experience

The Developer Experience WHAT IT IS

WHY IT MATTERS

HOW TO MAKE IT NOT SUCK���

���

pamelafox.org @pamelafox pamelafox@ twitter.com/

gmail.com http://

Page 2: The Developer Experience

User Experience

“The sum of all interactions and events, both positive and negative, between a

user and a web site.”

AKA “bla bla bla”

Page 3: The Developer Experience

User Experience 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?

Page 4: The Developer Experience

DO I WANT TO USE IT?

Page 5: The Developer Experience

HOW DO I SIGN UP?

Page 6: The Developer Experience

HOW DO I SIGN UP?

Page 7: The Developer Experience

HOW DO I GET STARTED?

Page 8: The Developer Experience

HOW DO I USE IT?

Page 9: The Developer Experience

HOW DO I GET HELP?

Page 10: The Developer Experience

DEVELOPER EXPERIENCE

“The sum of all interactions and events, both positive and negative, between a developer and a library, tool, or API.”

Page 11: The Developer Experience

DEVELOPER EXPERIENCE 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?

Page 12: The Developer Experience

DO I WANT TO USE IT?

Page 13: The Developer Experience

HOW DO I SIGN UP?

Page 14: The Developer Experience

HOW DO I GET STARTED?

Page 15: The Developer Experience

HOW DO I USE IT?

Page 16: The Developer Experience

HOW DO I GET HELP?

Page 17: The Developer Experience

why should you care?

Page 18: The Developer Experience

Who are you?

PROVIDERS CONSUMERS

Developer Experience

(Library, Tool, API, ...)

Page 19: The Developer Experience

...who am I?

CONSUMER PROVIDER

Childhood University hood Now

CONSUMER

2002 2006 2011 2006

Page 20: The Developer Experience

why does DX matter?

I have to use X.

Bad Experience

Low Barrier for Leaving Bare Minimum Usage

Page 21: The Developer Experience

why does DX matter?

I like to use X.

Good Experience

Innovative Usage External Evangelism

Page 22: The Developer Experience

let’s break it down...

Page 23: The Developer Experience

Do I want to use it?

Page 24: The Developer Experience

Documentation Interactive Explorer

Does it have the features I need?

Page 25: The Developer Experience

Can I safely build a business on top of it?

Licensing Pricing

Stability

Page 26: The Developer Experience

Case Studies

Page 27: The Developer Experience

How do I sign up?

Page 28: The Developer Experience

How do I sign up?

No signup! No key! Best answer:

Page 29: The Developer Experience

Automated Key Signup

Page 30: The Developer Experience

Usage Dashboard

Page 31: The Developer Experience

How do I get started?

Page 32: The Developer Experience

Downloads for Every Environment

Page 33: The Developer Experience

Client Libraries for Every Language

Page 34: The Developer Experience

“Hello World” (From 0 to 60 in 15 minutes)

Page 35: The Developer Experience

How do I use it?

How do I learn how to use it?

Do I enjoy using it?

Page 36: The Developer Experience

Documentation

How do I learn how to use it?

Comprehensive Easy to Navigate

Reference & Guide Easy to Search

Running Code Feedback Loop

Page 37: The Developer Experience

Documentation

When in doubt, document.

Comprehensive should be

Every method, parameter, return value, defaults, implementation notes, errors, side effects, deprecation notices.

Page 38: The Developer Experience

Documentation should include both Reference & Guide

Page 39: The Developer Experience

Documentation should include Runnable Code

Page 40: The Developer Experience

Documentation should be Easy to Navigate

Page 41: The Developer Experience

Documentation should be Easy to Search

Page 42: The Developer Experience

Documentation should be Easy to Search on Google, too

Page 43: The Developer Experience

Familiarity

Do I enjoy using it?

API Design

Simplicity

Compatibility

Debuggability

Page 44: The Developer Experience

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.

Page 45: The Developer Experience

How do I get help?

Page 46: The Developer Experience

Forum

Email & Feeds !Spam Stats & Badges

Page 47: The Developer Experience

Issue Tracker

Comments

Status

Votes

Notification Categories

Search

Page 48: The Developer Experience

THE EXPERIENCE CURVE

Page 49: The Developer Experience

THE FEEDBACK LOOP���..should be infinite..

Page 50: The Developer Experience

Feedback Forms

Page 51: The Developer Experience

Surveys

QT Survey

Mozilla Add-Ons SDK Blackboard API Survey

Page 52: The Developer Experience

Usability Testing

AT&T Usability Testing

Did you complete the task? How hard was it? Would you recommend this API? What would have made the experience of using the API better? Whose API does it better than we do?

Page 53: The Developer Experience

Paying Attention

Twitter

Google Alerts

Conference Talks

Blog posts

Page 54: The Developer Experience

MAKEOVER TIME!

Page 55: The Developer Experience

Google Maps API

v2 v3

keys no keys!

bloated library MVC architecture (smaller download)

GMap, GMarker,... google.maps.*

GPolygon(latlngs, strokeColor, strokeWeight, strokeOpacity,

fillColor, fillOpacity, opts)

google.maps.Polygon(options)

Page 56: The Developer Experience

ZeptoJS

Page 57: The Developer Experience

NOW WHAT?

Page 58: The Developer Experience

providers:

1. Care

2. Prioritize

3. Improve

I

Page 59: The Developer Experience

CONSUMERS

It’d be great if you changed X.

I’d use it more if it had feature Y.

Thanks - look what I made with it!

Thanks!

Page 60: The Developer Experience

The Developer Experience IT MATTERS

LETS MAKE IT NOT SUCK

developerexperience.org developer-support-handbook.org

for more...

@pamelafox