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.
35. How do I use it?
How do I learn how to use it?
Do I enjoy using it?
36. How do I learn how to use it?
Documentation
Comprehensive
Easy to Navigate
Reference Guide
Easy to Search
Running Code
Feedback Loop
37. Documentation
should be
Comprehensive
Every method, parameter, return value, defaults,
implementation notes, errors, side effects, deprecation notices.
When in doubt, document.
43. Do I enjoy using it?
API Design
Familiarity
Compatibility
Simplicity
Debuggability
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.
51. Surveys
QT Mozilla Add-Ons SDK
Blackboard API Survey
Survey
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?
ATT Usability Testing
53. Paying Attention
Twitter
Conference Talks
Blog posts
Google Alerts