Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
The Developer Experience            WHAT IT IS        WHY IT MATTERS  HOW TO MAKE IT NOT SUCK                     twitter....
User Experience“The sum of all interactions and events, both positive and negative, between a        user and a web site.”...
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?
DO I WANT TO USE IT?
HOW DO I SIGN UP?
HOW DO I SIGN UP?
HOW DO I GET STARTED?
HOW DO I USE IT?
HOW DO I GET HELP?
DEVELOPER EXPERIENCE“The sum of all interactions and events, both positive and negative, between a  developer and a librar...
DEVELOPER EXPERIENCE      Do I want to use it?      How do I sign up?     How do I get started?       How do I use it?    ...
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?
why should you care?
Who are you?        Developer Experience            (Library, Tool, API, ...)PROVIDERS                        CONSUMERS
...who am I?Childhood          University               hood          Now            2002                2006             ...
why does DX matter?               Bad Experience                      I have to use X.Bare Minimum Usage       Low Barrier...
why does DX matter?              Good Experience      I like to use X.Innovative Usage         External Evangelism
let’s break it down...
Do I want to use it?
Does it have the features I need?Documentation         Interactive Explorer
Can I safely build a business on top of it?  Licensing                   Pricing                Stability
Case Studies
How do I sign up?
How do I sign up?Best answer: No signup! No key!
Automated Key Signup
Usage Dashboard
How do I get started?
Downloads for Every Environment
Client Libraries for Every Language
“Hello World”(From 0 to 60 in 15 minutes)
How do I use it?How do I learn how to use it?     Do I enjoy using it?
How do I learn how to use it?       Documentation Comprehensive      Easy to NavigateReference & Guide    Easy to Search  ...
Documentation                      should be Comprehensive      Every method, parameter, return value, defaults,implementa...
Documentation    should include both Reference & Guide
Documentation       should include Runnable Code
Documentation should be   Easy to Navigate
Documentation should be   Easy to Search
Documentation should be   Easy to Search                             on Google, too
Do I enjoy using it?        API DesignFamiliarity      CompatibilitySimplicity       Debuggability
API Design:          HTTP   Familiarity           Compatibility   Use standards          Support both(when it makes sense)...
How do I get help?
ForumEmail & Feeds Stats & Badges   !Spam
Issue Tracker    Comments        Votes SearchStatus Categories   Notification
THE EXPERIENCE CURVE
THE FEEDBACK LOOP     ..should be infinite..
Feedback Forms
SurveysQT Survey   Mozilla Add-Ons SDK   Blackboard API Survey
Usability Testing              Did you complete the task?              How hard was it?              Would you recommend t...
Paying Attention Twitter                  Conference TalksBlog posts             Google Alerts
MAKEOVER TIME!
Google Maps API            v2                        v3           keys                   no keys!                         ...
ZeptoJS
NOW WHAT?
providers:                   1. CareI                 2. Prioritize                 3. Improve
CONSUMERS                               Thanks!It’d be great if you     changed X.       I’d use it more if it          ha...
The Developer Experience                     IT MATTERS              LETS MAKE IT NOT SUCKfor more...developerexperience.o...
Upcoming SlideShare
Loading in …5
×

The Developer Experience

2,033 views

Published on

What makes for a good developer experience? How do you improve yours? That's what I explore in this talk, given at Atlassian Summit 2012.

Published in: Technology, Education
  • Be the first to comment

The Developer Experience

  1. 1. The Developer Experience WHAT IT IS WHY IT MATTERS HOW TO MAKE IT NOT SUCK twitter.com/ pamelafox.org @pamelafox pamelafox@ http:// gmail.com
  2. 2. User Experience“The sum of all interactions and events, both positive and negative, between a user and a web site.” AKA “bla bla bla”
  3. 3. 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?
  4. 4. DO I WANT TO USE IT?
  5. 5. HOW DO I SIGN UP?
  6. 6. HOW DO I SIGN UP?
  7. 7. HOW DO I GET STARTED?
  8. 8. HOW DO I USE IT?
  9. 9. HOW DO I GET HELP?
  10. 10. DEVELOPER EXPERIENCE“The sum of all interactions and events, both positive and negative, between a developer and a library, tool, or API.”
  11. 11. 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?
  12. 12. DO I WANT TO USE IT?
  13. 13. HOW DO I SIGN UP?
  14. 14. HOW DO I GET STARTED?
  15. 15. HOW DO I USE IT?
  16. 16. HOW DO I GET HELP?
  17. 17. why should you care?
  18. 18. Who are you? Developer Experience (Library, Tool, API, ...)PROVIDERS CONSUMERS
  19. 19. ...who am I?Childhood University hood Now 2002 2006 2011 CONSUMER PROVIDER CONSUMER
  20. 20. why does DX matter? Bad Experience I have to use X.Bare Minimum Usage Low Barrier for Leaving
  21. 21. why does DX matter? Good Experience I like to use X.Innovative Usage External Evangelism
  22. 22. let’s break it down...
  23. 23. Do I want to use it?
  24. 24. Does it have the features I need?Documentation Interactive Explorer
  25. 25. Can I safely build a business on top of it? Licensing Pricing Stability
  26. 26. Case Studies
  27. 27. How do I sign up?
  28. 28. How do I sign up?Best answer: No signup! No key!
  29. 29. Automated Key Signup
  30. 30. Usage Dashboard
  31. 31. How do I get started?
  32. 32. Downloads for Every Environment
  33. 33. Client Libraries for Every Language
  34. 34. “Hello World”(From 0 to 60 in 15 minutes)
  35. 35. How do I use it?How do I learn how to use it? Do I enjoy using it?
  36. 36. How do I learn how to use it? Documentation Comprehensive Easy to NavigateReference & Guide Easy to Search Running Code Feedback Loop
  37. 37. Documentation should be Comprehensive Every method, parameter, return value, defaults,implementation notes, errors, side effects, deprecation notices. When in doubt, document.
  38. 38. Documentation should include both Reference & Guide
  39. 39. Documentation should include Runnable Code
  40. 40. Documentation should be Easy to Navigate
  41. 41. Documentation should be Easy to Search
  42. 42. Documentation should be Easy to Search on Google, too
  43. 43. Do I enjoy using it? API DesignFamiliarity CompatibilitySimplicity Debuggability
  44. 44. API Design: HTTP Familiarity Compatibility Use standards Support both(when it makes sense) JSON & XML. REST, RPC, OAuth. Simplicity Debuggability Don’t throttle. Give meaningful error messages. Most importantly: Never ever use SOAP.
  45. 45. How do I get help?
  46. 46. ForumEmail & Feeds Stats & Badges !Spam
  47. 47. Issue Tracker Comments Votes SearchStatus Categories Notification
  48. 48. THE EXPERIENCE CURVE
  49. 49. THE FEEDBACK LOOP ..should be infinite..
  50. 50. Feedback Forms
  51. 51. SurveysQT Survey Mozilla Add-Ons SDK Blackboard API Survey
  52. 52. 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? AT&T Usability Testing
  53. 53. Paying Attention Twitter Conference TalksBlog posts Google Alerts
  54. 54. MAKEOVER TIME!
  55. 55. Google Maps API v2 v3 keys no keys! MVC architecture bloated library (smaller download) GMap, GMarker,... google.maps.*GPolygon(latlngs, strokeColor,strokeWeight, strokeOpacity, google.maps.Polygon(options) fillColor, fillOpacity, opts)
  56. 56. ZeptoJS
  57. 57. NOW WHAT?
  58. 58. providers: 1. CareI 2. Prioritize 3. Improve
  59. 59. CONSUMERS Thanks!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!
  60. 60. The Developer Experience IT MATTERS LETS MAKE IT NOT SUCKfor more...developerexperience.org developer-support-handbook.org @pamelafox

×